目标单据保存反写到源单,实现单据体增行原创
金蝶云社区-张璋张
张璋张
0人赞赏了该文章 491次浏览 未经作者许可,禁止转载编辑于2023年10月17日 15:20:35

实现功能:

源单下推目标单据后,目标单据保存时反写相关信息到源单的单据体,通过增行填充数据

思路方案:

  1. 目标单新增隐藏字段记录源单id

  2. 在目标单据的保存操作上注册操作插件,通过源单id查询源单信息,实现增行操作

具体实现:

public class billSaveOp extends AbstractOperationServicePlugIn {
    @Override
    public void onPreparePropertys(PreparePropertysEventArgs e) {
        super.onPreparePropertys(e);
        List<String> fieldKeys = e.getFieldKeys();
        fieldKeys.add("billno");
        fieldKeys.add("bizdate");
        fieldKeys.add("sourcebillid");//记录源单id
    }

    @Override
    public void beginOperationTransaction(BeginOperationTransactionArgs e) {
        super.beginOperationTransaction(e);
        DynamicObject[] datas = e.getDataEntities();
        for(DynamicObject obj:datas){
            //获取源单信息
            Long sourcebill = obj.getLong("sourcebillid");
            if(!sourcebill.equals("0")){
                DynamicObject load = BusinessDataServiceHelper.loadSingle(sourcebill,"testsourcebill");
                DynamicObjectCollection entryentity = load.getDynamicObjectCollection("entryentity");
                //新增行,记录目标单据信息
                DynamicObject newRow = new DynamicObject(entryentity.getDynamicObjectType());
                newRow.set("bill",obj.getString("billno"));
                newRow.set("bizdate",obj.getDate("bizdate"));
                entryentity.add(newRow);
                SaveServiceHelper.save(new DynamicObject[]{load});
            }
        }
    }
}



图标赞 0
0人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0