GeneralJournalAccountEntry 和 LedgerJournalTrans_Project 之间的关系

Relationship between GeneralJournalAccountEntry and LedgerJournalTrans_Project

我们正在尝试将 GL 事务 GeneralJournalAccountEntry 与其适当的项目类别 ID LedgerJournalTrans_Project 相关联,但很难将这两个表相关联。

我们可以通过这条路线到达那里:

但是在多对一和一对多关系中,交易的个别部分会丢失。我们知道这些表格来自不同 "modules",但希望有某种方法可以将两者联系起来,而不依赖于像交易金额这样混乱的事情。

这可能吗,或者有其他方法可以实现我们的目标吗?

没有一对一的关系。

最接近的是在 LedgerJournalTrans 上使用 Voucher 和 TransDate 来获取分类帐交易。

参见this post

有一篇白皮书描述了AX 2012 ledger posting framework

我不确定我是否已经完全弄明白了,但我认为这可以用来创建类似的 link。我正在尝试 link generaljournalaccountentry 行项目到 inventjounrnaltrans 行项目。这应该根据凭证和行项目编号在两个表之间提供 link,并给我 itemid。我认为该项目必然会有类似的 link,因为能够在前端应用程序中以这种方式导航。在前端执行操作时跟踪 SQL 查询也可能会有所帮助。

SELECT itp.[PARTITION]
     , itp.[DATAAREAID]
     , itp.[TRANSDATE]
     , itp.[VOUCHER]
     , itp.[ITEMID]
     , itojt.[INVENTJOURNALLINENUM]
     , MAX(ito.[REFERENCEID]) AS [REFERENCEID]
FROM [dbo].[INVENTTRANSPOSTING] itp WITH(NOLOCK)
    INNER JOIN [dbo].[INVENTTRANSORIGIN] ito WITH(NOLOCK)
        ON ito.[RECID] = itp.[INVENTTRANSORIGIN]
    INNER JOIN [dbo].[INVENTTRANSORIGINJOURNALTRANS] itojt WITH(NOLOCK)
        ON itojt.[INVENTTRANSORIGIN] = ito.[RECID]
WHERE (itp.[INVENTTRANSPOSTINGTYPE] = 1 OR itp.[INVENTTRANSPOSTINGTYPE] = 0)
      AND itp.[ISPOSTED] = 1
GROUP BY itp.[PARTITION]
       , itp.[DATAAREAID]
       , itp.[TRANSDATE]
       , itp.[VOUCHER]
       , itp.[ITEMID]
       , itojt.[INVENTJOURNALLINENUM]