当我创建采购订单并创建与该采购订单关联的采购订单行时,我可以打开该行的行详细信息,然后单击该行的“财务维度”选项卡并选择财务维度与采购订单行关联。
完成此操作后,如果我在SQL Server中检查数据库,我可以在PURCHTABLE中看到我的采购订单的条目,以及相关表PURCHLINE中的相应行,该表使用PURCHID字段将多个PURCHLINE行与一个PURCHTABLE相关联行。
然而 - 虽然在客户端,我可以看到与我的PURCHLINE相关的财务维度,通过查看采购订单屏幕的行详细信息部分,我找不到此信息存储在数据库中的哪个位置将其链接到我的PURCHLINE行。
PURCHLINE表有一个LEDGERDIMENSION字段,[我可以通过查看AOT确定]将它与DIMENSIONATTRIBUTEVALUECOMBINATION中的行相关联,但是在PURCHLINE的所有行中,LEDGERDIMENSION字段设置为0。 PURCHLINE表中的DEFAULTDIMENSION字段具有值,但是它所关联的表(DIMENSIONATTRIBUTEVALUESET)只有一个HASH作为其内容 - 并且与任何其他表没有明显的关系,这将允许我找出它代表的维度。
有没有人知道数据库中存储哪些数据允许Dynamics AX将一组财务维度属性与采购订单行相关联?
答案 0 :(得分:4)
谢谢你Jan的建议 - 他们让我朝着正确的方向前进。在阅读白皮书后,根据第24页的信息[特别],我能够将以下SQL汇总在一起,该SQL通过单个采购订单行提取给定采购订单的财务维度。它根据采购订单编号提取财务维度。请注意,如果采购订单中有多行,您需要做更多工作才能将行分开 - 但这段代码可以为您提供很多方法:
select
ddv.DISPLAYVALUE,
ddv.NAME
from
PURCHLINE pl
inner join DEFAULTDIMENSIONVIEW ddv on (ddv.DEFAULTDIMENSION = pl.DEFAULTDIMENSION )
where
pl.PURCHID = '<put purchase order number here>'
幸运的是,有一个视图可以帮助您导航财务维度的相当复杂的表结构,因为它们存在于与动态轴安装相关联的SQL服务器数据库中。
要分离给定采购订单中多行的财务维度,以下sql可以完成这项工作:
select
ddv.DISPLAYVALUE,
ddv.NAME,
pl.LINENUMBER
from
PURCHLINE pl
inner join DEFAULTDIMENSIONVIEW ddv on (ddv.DEFAULTDIMENSION = pl.DEFAULTDIMENSION )
where
pl.PURCHID = '<put purchase order number here>'
order by
pl.LINENUMBER, ddv.NAME
答案 1 :(得分:1)
使用DefaultDimension
字段链接购买行的默认尺寸。
LedgerDimension
字段链接帐号,但通常不会设置。
DimensionAttributeValueSet
表还有一个RecId
字段,这是一个有趣的字段。它与DimensionAttributeValueSetItem
表格相关联等更多复杂情况。
要了解有关AX 2012中新维度框架的更多信息,请尝试阅读有关新维度框架的whitepaper。