如何获取 dbo.CUSTTRANS 中一行的位置?
How do I get the location for a row in dbo.CUSTTRANS?
我正在为使用 Dynamics AX (2012) 的客户构建一个小型 AR 数据集市。来自集市的数据将输入到 Power BI 报告中。我对AX几乎一无所知
dbo.CUSTTRANS table 中有一列名为 DEFAULTDIMENSION。客户告诉我,此值可用于使用以下查询检索事务行的位置描述:
SELECT
T.DEFAULTDIMENSION
,T3.Name AS Location
FROM dbo.CUSTTRANS T
INNER JOIN dbo.DEFAULTDIMENSIONVIEW T2 ON T2.DEFAULTDIMENSION = T.DEFAULTDIMENSION
INNER JOIN dbo.DIMATTRIBUTEOMBUSINESSUNIT T3 ON T3.RECID = T2.ENTITYINSTANCE
WHERE T.DEFAULTDIMENSION = 5637168346
但是,对于 DEFAULTDIMENSION 的某些值,如上面的值,返回多行具有不同的描述。我的查询不正确吗?还是他们的数据不好?顺便说一句,我会问客户,但知道这件事的人要到下周才能找到。
我认为查询不正确。
tableCustTrans
(以及其他)中的字段DefaultDimension
用于存储对一组财务维度及其值的引用(这是一个相当复杂的数据结构和逻辑,这就是为什么我不会详细介绍,但 Implementing the Account and Financial Dimensions Framework (White paper) 可以作为更多研究的起点)。
您的客户似乎将业务单位财务维度解释为 "location" 并希望您报告该财务维度的值。请注意,术语 "location" 通常与 Dynamics AX 中的库存维度关联,而不是财务维度。
通过筛选 T.DEFAULTDIMENSION = 5637168346
,您将选择共享完全相同的一组财务维度和值的所有 CustTrans
记录。
通过加入 dbo.DimAttributeOMBusinessUnit
,该集合中的每个财务维度都被视为业务单位财务维度。
对于引用仅包含业务单位维度的一组财务维度的 DefaultDimension
值,查询将仅 return 一个(正确的)值。但是对于引用具有多个维度的集合的 DefaultDimension
值,查询会将每个维度解释为业务单位维度,从而产生不正确的结果。
如果我之前的假设是正确的,即您的客户只想报告业务单位维度的值,则您需要向查询添加一个额外的过滤器。它会将 dbo.DefaultDimensionView.BackingEntityType
过滤为与 table dbo.DimAttributeOMBusinessUnit
.
的 table id 相对应的值
我想补充一点,AX 已经带有一个用于 BI 目的的数据集市,并且包含几个开箱即用的 BI 多维数据集,包括一个用于 AR 的多维数据集。 Management Reporter 是另一种可用于报告财务数据和维度的解决方案。定制的数据集市可能不是这里的最佳选择。
我正在为使用 Dynamics AX (2012) 的客户构建一个小型 AR 数据集市。来自集市的数据将输入到 Power BI 报告中。我对AX几乎一无所知
dbo.CUSTTRANS table 中有一列名为 DEFAULTDIMENSION。客户告诉我,此值可用于使用以下查询检索事务行的位置描述:
SELECT
T.DEFAULTDIMENSION
,T3.Name AS Location
FROM dbo.CUSTTRANS T
INNER JOIN dbo.DEFAULTDIMENSIONVIEW T2 ON T2.DEFAULTDIMENSION = T.DEFAULTDIMENSION
INNER JOIN dbo.DIMATTRIBUTEOMBUSINESSUNIT T3 ON T3.RECID = T2.ENTITYINSTANCE
WHERE T.DEFAULTDIMENSION = 5637168346
但是,对于 DEFAULTDIMENSION 的某些值,如上面的值,返回多行具有不同的描述。我的查询不正确吗?还是他们的数据不好?顺便说一句,我会问客户,但知道这件事的人要到下周才能找到。
我认为查询不正确。
tableCustTrans
(以及其他)中的字段DefaultDimension
用于存储对一组财务维度及其值的引用(这是一个相当复杂的数据结构和逻辑,这就是为什么我不会详细介绍,但 Implementing the Account and Financial Dimensions Framework (White paper) 可以作为更多研究的起点)。
您的客户似乎将业务单位财务维度解释为 "location" 并希望您报告该财务维度的值。请注意,术语 "location" 通常与 Dynamics AX 中的库存维度关联,而不是财务维度。
通过筛选 T.DEFAULTDIMENSION = 5637168346
,您将选择共享完全相同的一组财务维度和值的所有 CustTrans
记录。
通过加入 dbo.DimAttributeOMBusinessUnit
,该集合中的每个财务维度都被视为业务单位财务维度。
对于引用仅包含业务单位维度的一组财务维度的 DefaultDimension
值,查询将仅 return 一个(正确的)值。但是对于引用具有多个维度的集合的 DefaultDimension
值,查询会将每个维度解释为业务单位维度,从而产生不正确的结果。
如果我之前的假设是正确的,即您的客户只想报告业务单位维度的值,则您需要向查询添加一个额外的过滤器。它会将 dbo.DefaultDimensionView.BackingEntityType
过滤为与 table dbo.DimAttributeOMBusinessUnit
.
我想补充一点,AX 已经带有一个用于 BI 目的的数据集市,并且包含几个开箱即用的 BI 多维数据集,包括一个用于 AR 的多维数据集。 Management Reporter 是另一种可用于报告财务数据和维度的解决方案。定制的数据集市可能不是这里的最佳选择。