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

业务场景: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
引入的应收应付单据如何与上游建立关联关系
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



