无法在AX 2009中显示SSRS中的维度扩展数据类型

时间:2012-05-02 18:56:50

标签: ssrs-2008 reporting-services dynamics-ax-2009 x++ microsoft-dynamics

如果您使用AX2009的内置查询(EmplTableListPage)并尝试使用它构建SSRS报告并使用字段Dimension [1](或任何维度字段),Visual Studio 2008中的报表预览将正确呈现。将报告部署到SSRS服务器后,将无法加载,其错误类似于:

 An error has occurred during report processing. (rsProcessingAborted)
Query execution failed for dataset 'Dataset1'. (rsErrorExecutingCommand)
The AX query string 'SELECT EmplTable.1.Dimension[1],EmplTable.1.EmplId,DirPartyTable.1.Name FROM EmplTableListPage' is invalid. The valid format is 'SELECT [fields] FROM [AX query name]', where [fields] can be either '*' or a comma separated field list.

如果从报告中删除Dimension [1]字段并重新部署,则错误消失并且报告呈现正确。

我已经尝试在AOT中向查询添加一个字段并专门添加Dimension [1],但这也不起作用(相同的错误消息)。

如何在SSRS报告中的维度字段中显示数据?为什么它在Visual Studio中有效,但在AX或Report Manager网站中却无效?

3 个答案:

答案 0 :(得分:2)

根据微软在What's New in Microsoft Dynamics AX 2012 for Developers白皮书中的说法,2012年进行了增强,以支持AX 2009不支持的维度,这意味着您无法在SSRS报告中显示维度字段中的数据: enter image description here

答案 1 :(得分:0)

我使用了这种方法(加入所有可能的Dimensions表组合)请注意,该示例仅适用于前两个维度: LedgerTransSRS query

比来自ssrs:

SELECT LedgerTable.1.AccountName,Dimensions.1.DimensionCode:NAME(SysDimension),Dimensions.2.DimensionCode:NAME(SysDimension) FROM LedgerTransSRS

顺便说一句,我的原始查询名称不是LedgerTransSRS,我的原始查询名称是LedgerTransSRS_companySufix,我删除了此示例的_companySufix。因此,请勿修改原始LedgerTransSRS查询(因为它存在于SYS层中并在SYS层中使用)。

答案 2 :(得分:0)

有同样的问题,但能够解决它。 在SSRS中添加数据集时,必须添加维度中的所有字段(您的查询在字段中列出了维度) - 而不仅仅是您要访问的维度字段。

因此,ssrs中数据集的查询应为:

SELECT * FROM EmplTable

导致错误的查询部分是:EmplTable.1.Dimension[1]

在SSRS的数据集中获取查询中的所有字段,它应该可以解决问题。