You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将AX系统中DOCUVALUE表与关联业务元数据关联以提取文档对应凭证批次号

Dynamics AX 文档关联Journal/批次号正确关联方案

  • 核心问题定位
    你之前的查询出现错配的核心原因是未过滤DOCUREF表的REFTABLEID字段:DOCUREF.REFRECID存储的是所有业务表的记录ID,不同业务表可能存在相同RECID,直接关联LEDGERJOURNALTABLE.RECID会把其他业务表的关联文档也匹配到总账日记账上,导致关联错误。
  • 第一步:获取对应业务表的TABLEID
    AX中每个业务表都有唯一的TABLEID,关联前需要先查询你环境中对应日记账表的ID,以总账日记账表LEDGERJOURNALTABLE为例,查询SQL如下:
SELECT TABLEID FROM SQLDICTIONARY WHERE NAME = 'LEDGERJOURNALTABLE' AND TABLEID = 0

AX2012默认环境中该表ID为257,不同版本或定制化环境可能有差异,以实际查询结果为准。

  • 第二步:修正关联逻辑
    关联时增加REFTABLEID匹配和跨公司过滤,修正后的总账日记账关联SQL如下:
SELECT 
    ljt.journalnum, 
    dv.filename + '.' + dv.filetype AS full_filename, 
    ljt.name AS journal_name,
    dr.refcompanyid, 
    CONVERT(VARCHAR(10), ljt.posteddatetime, 111) AS posted_date,
    ljt.createdby, 
    CONVERT(NUMERIC(18,2), ljt.journaltotalcredit) AS journalamount
FROM 
    DOCUVALUE dv
INNER JOIN DOCUREF dr 
    ON dv.RECID = dr.VALUERECID
INNER JOIN LEDGERJOURNALTABLE ljt 
    ON dr.REFRECID = ljt.RECID 
    AND dr.REFTABLEID = 257 -- 替换为第一步查询到的实际TABLEID
    AND dr.REFCOMPANYID = ljt.DATAAREAID
ORDER BY 
    ljt.journalnum, full_filename
  • 覆盖多类型Journal/批次的扩展方案
    如果需要匹配其他类型的批次/日记账,可通过UNION ALL拼接不同业务表的关联逻辑,每段关联都加上对应表的REFTABLEID过滤即可,常见的日记账表对应关系如下:
    • 销售发票日记账:CUSTINVOICEJOUR
    • 采购发票日记账:VENDINVOICEJOUR
    • 库存日记账:INVENTJOURNALTABLE
  • 验证方法
    先选取3-5个已知明确关联了文档的日记账号,用上述逻辑查询结果交用户核对,确认匹配准确后再全量导出数据即可。

内容的提问来源于stack exchange,提问作者Simon Weekley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 11:30:07