当我创建采购订单并创建与该采购订单关联的采购订单行时,我可以打开该行的“行详细信息”,然后单击该行的“财务维度”选项卡并选择一个财务维度来与采购订单行关联。
完成此操作后,如果我检查 SQL Server 中的数据库,我可以在 PURCHTABLE 中看到我的采购订单的一个条目,以及相关表 PURCHLINE 中的相应行,该表使用 PURCHID 字段将多个 PURCHLINE 行与一个 PURCHTABLE 相关联行。
但是 - 尽管在客户端中,我可以通过查看采购订单屏幕的行详细信息部分来查看与我的 PURCHLINE 相关的财务维度,但我找不到此信息存储在数据库中的位置以将其链接到我的PURCHLINE 行。
PURCHLINE 表有一个 LEDGERDIMENSION 字段,[根据我通过查看 AOT 可以确定]应该将其与 DIMENSIONATTRIBUTEVALUECOMBINATION 中的一行关联,但是在 PURCHLINE 中的所有行中,LEDGERDIMENSION 字段都设置为 0。 PURCHLINE 表中的 DEFAULTDIMENSION 字段具有值,但是与它相关的表 (DIMENSIONATTRIBUTEVALUESET) 只有 HASH 作为其内容 - 并且与任何其他表没有明显的关系,无法让我弄清楚它代表什么维度。
有谁知道数据存储在数据库中的哪个位置,以允许 Dynamics AX 将一组财务维度属性关联到采购订单行?
最佳答案
谢谢 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>'
幸运的是,有一个 View 可以帮助您完成大量导航财务维度相当复杂的表结构的工作,因为它们存在于与 Dynamics ax 安装相关的 SQL Server 数据库中。
要分离出给定采购订单中多行的财务维度,可以使用以下 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
关于axapta - 在 Dynamics AX 2012 中从采购线获取线的尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22804552/