axapta - 在 Dynamics AX 2012 中从采购线获取线的尺寸

标签 axapta dimensions dynamics-ax-2012

当我创建采购订单并创建与该采购订单关联的采购订单行时,我可以打开该行的“行详细信息”,然后单击该行的“财务维度”选项卡并选择一个财务维度来与采购订单行关联。

完成此操作后,如果我检查 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/

相关文章:

axapta - 如何捕获内部异常?

javascript - 为新创建的 DOM 对象获取准确的尺寸

android - 如果 ScrollView 仅支持一个直接子级,我应该如何使整个布局可滚动?

axapta - 如何获取表格中所有显示方法的列表?

axapta - 根据字段值显示枚举值

lookup - 如何在 Lookup ax 2012 中选择名称(或其他字段)而不是 ID

Axapta 用户权限

t-sql - UTC 日期时间偏移量

axapta - 生成客户价目表

c - 如何在C中创建一个函数来检查两个矩阵是否具有相同的维度