引入的应收应付单据如何与上游建立关联关系

栏目:云星瀚知识作者:金蝶来源:金蝶云社区发布:2024-09-22浏览:1

引入的应收应付单据如何与上游建立关联关系

业务场景:XXX集团公司,下游单据是通过api接口引入的,与源单没有关联关系,现希望能构建上下游单据的关联关系并能正常触发标品的反写规则。(以引入应付单与入库单建立关联为例)

实现分析:在afterImportData方法中创建关联子实体行数据,此方法在引入字段值填写完毕,保存之前触发,构建完关系后即可在保存时正常触发反写规则。(根据平台介绍的实现方式实现)

调用时机:

上传图片

代码示例:

/**

* @param targetBill 目标单据

* @param srcTableDefine     源单单据体表格定义:包含了源单标识、单据体标识、tableid

* @param targetTableDefine  目标单单据体表格定义:包含了源单标识、单据体标识、tableid

* @param srcBillIdKey       源单id标识

* @param srcBillEntryIdKey  源单分录id标识

*/

private void createLinkEntity(DynamicObject targetBill, TableDefine srcTableDefine, TableDefine targetTableDefine, String srcBillIdKey, String srcBillEntryIdKey) {

  //源单实体表格编码

  Long srcTableId = srcTableDefine.getTableId();

  // 拼接处关联子实体标识:如果是单据头下的lk子表,固定使用billhead_lk;如果是单据体下的lk子表,用单据体标识+lk

  String lkEntryKey = targetTableDefine.getEntityKey() + "_lk";

  //引入单据的分录

  DynamicObjectCollection targetEntrys = targetBill.getDynamicObjectCollection(targetTableDefine.getEntityKey());

           for (DynamicObject entry : targetEntrys) {

DynamicObjectCollection linkRows = entry.getDynamicObjectCollection(lkEntryKey);

if (!linkRows.isEmpty()) {

            continue;

}

//创建一条_lk子实体上数据,记录源单内码

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

linkRows.add(linkRow);

// 在lk行中,记录源单分录表格编码、源单内码、源单分录内码

linkRow.set(lkEntryKey + "_stableid", srcTableId);        // 源单分录表格编码:以此标识源单类型及单据体

linkRow.set(lkEntryKey + "_sbillid", entry.getString(srcBillIdKey));        // 源单内码

linkRow.set(lkEntryKey + "_sid", entry.getString(srcBillEntryIdKey));        // 源单分录行内码

          }

}

注意事项 :

                   表头.源单类型:记录上游单据的单据类型

                   分录.源单id:关联生成时,上游单据的单据id

                   分录.源单分录id:关联生成时,上游单据的单据分录id

                   如果调用api接口引入前就可以知道上下游单据分录对应关系,那么调用引入接口时需要将上面三个字段引入。

                   如果现场记录行关系的字段为其他字段,那么也需要在afterImportData中根据现场业务找到行级对应关系后给上面字段赋值。

社区文档参考链接:https://vip.kingdee.com/knowledge/specialDetail/241164705052806912?category=315451171731230720&id=428136719330883840&productLineId=29

引入的应收应付单据如何与上游建立关联关系

业务场景:XXX集团公司,下游单据是通过api接口引入的,与源单没有关联关系,现希望能构建上下游单据的关联关系并能正常触发标品的反写规则...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息