3 Replies Latest reply on Aug 16, 2012 9:12 AM by Tracy Rodgers

    Why do I get a 'class DataSourceException' when trying to use a calculation from a published datasource which uses calculations in other published datasources?

    iain.bowes

      To reproduce the issue.

      After creating two datasouces and some calculations in them I publish each datasource to server (herein called a and b with calculations x and y).

      I create a new workbook and load the datasources seperately (a contains x and b contains y).

      I create a third datasource and write a calculation (z) that uses a calculation in each published datasource (z is simply the sum of a.x + the sum of b.y). The calculated field works fine.

       

      Then I publish the third (c) datasource to the server. Create a new workbook, and load in all 3 datasources from server (a b and c).

      Upon dragging in the calculated field that references the other two published datasources I receive the error:

       

           Invalid field formula due to limitations in the data source.

           prepare.xml

           class DataSourceException

       

      Work around for the issue:

      To resolve the problem I right click the Calculated field and click duplicate, the duplicate then works perfectly fine. The formula is identical and other than the appended (copy) the calculated field is obviously identical. But this work around isn't an ideal or a satisfactory resolution.

       

      I am welcome to any alternatives or suggestions to the issue above however we would prefer similar. The potential use for this to us is long term:

      • Updating individual datasources so end users are prompted that it is outdated. I.e if a KPI has changed - saving the need to edit many individual workbooks/booksmarks.
      • Should tables change or topology changes occur down the line, and joins need to be revisited or updated to tables, similarly to above, the update could be prompted to the end user. Atleast to make them aware of the changes.

       

      Thank you for your time.