如何在关联追踪表填充数据,以支持上下查?

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

如何在关联追踪表填充数据,以支持上下查?

问题描述

下游单据审核时,上游单据会有其它符合条件的单据和当前单据建立关联关系,点击上查可以查到这些单据,就需要往关联追踪表里填充数据,但是不知道这个关联追踪表的标识是什么,怎么处理?

解决方法

读取下游单据的数据包,修改其中的关联子单据体数据,填写好源单内码。

调用下游单据保存操作,由系统自动创建关联关系、反写。

请不要自行直接更新关联关系表。


示例:

场景一:只记录单据级追踪,支持上下查即可,无需反写。


示例说明:

手工创建发货通知单,需要关联上查到销售订单,不需要反写,只要支持上下查即可。


事前准备:

扩展发货通知单,修改关联配置属性,反写与记录源单表格,增加新行,选择关联实体为"单据头";


示意代码

Java  

// 取销售订单单据头的表格编码

Long srcTableId = ConvertMetaServiceHelper.loadTableDefine("sm_salorder","sm_salorder").getTableId();


// 取单据头的关联子实体行

DynamicObjectCollection linkRows = (DynamicObjectCollection )billObj.get("billhead_lk");


// 添加新的关联子实体行,记录源单内码

DynamicObject linkRow = new DynamicObject(linkRows.getDataEntityType());

linkRow.set("billhead_lk_stableid", srcTableId );  // 表格编码,可唯一对应源单类型+分录

linkRow.set("billhead_lk_sbillid", srcBillId);  // 源单单据内码

linkRow.set("billhead_lk_sid", srcBillId);     // 源单分录内码。本示例只需对单据进行追踪,此属性填写单据内码即可。如果按分录行追踪,此处要填明细的分录行内码


linkRows.add(linkRow);



场景二:分录行之间追踪,需要在单据体下的关联子实体中,记录源单行信息


示例说明:以发货通知单的物料明细单据体,记录销售订单物料明细单据体行为例

Java  

// 读取源单(销售订单)物料明细单据体的表格编码

Long srcTableId = ConvertMetaServiceHelper.loadTableDefine("sm_salorder", "billentry").getTableId();


// 获取目标单(发货通知单)全部单据体行

DynamicObjectCollection targetEntryRows = (DynamicObjectCollection )targetObj.get("billentry");


// 逐行添加关联信息

for (DynamicObject targetEntryRow : targetEntryRows) {

    // 获取单据体行下级关联子实体

    DynamicObjectCollection linkRows = (DynamicObjectCollection )targetEntryRow .get("billentry_lk");

    

    // 添加关联行,记录源单单据体表格编码、源单单据内码、源单分录行内码

    DynamicObject linkRow = new DynamicObject(linkRows.getDataEntityType());

    linkRow.set("billentry_lk_stableid", srcTableId );  // 表格编码,可唯一对应源单类型+分录

    linkRow.set("billentry_lk_sbillid", srcBillId);  // 源单单据内码

    linkRow.set("billentry_lk_sid", srcEntryId);  // 源单分录内码

    linkRows.add(linkRow);

}


如何在关联追踪表填充数据,以支持上下查?

问题描述下游单据审核时,上游单据会有其它符合条件的单据和当前单据建立关联关系,点击上查可以查到这些单据,就需要往关联追踪表里填充数...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息