本文介绍了如何在单据转换过程中,通过插件干预将上游单据的附件面板内容携带到下游单据。由于字段映射不包括附件属性,需通过插件在转换后手动查询并赋值。详细步骤包括创建单据、配置转换规则、编写插件逻辑并注册,最终实现附件的携带。同时指出附件处理的特殊性和插件的使用细节。
如何实现附件面板内容从上游单据下推携带到下游单据
相信大家都接触过单据转换,在单据转换的过程中如何将附件面板的内容从上游带到下游呢?
首先新建两张包含附件的简单单据,
打开业务控制-参与单据转换
配置单据转换规则:
发现字段映射并没有附件的属性,所以我们单纯通过转换规则是无法携带上游附件到下游中的
我们通过插件干预,在转换后将原单据的附件查出来,赋值在转换后的单据对应的字段即可。
查阅单据转换的文档(https://dev.kingdee.com/index/docsNew/f45e5446-cdd4-4ae9-a89c-da93fd27c844),我们按照文档说明继承AbstractConvertPlugIn父类,重写afterConvert事件:
查阅附件相关文档(https://dev.kingdee.com/index/docsNew/d1c44bdf-4af9-410d-96c4-a18165610f10),文档比较简陋,我们猜测加尝试编写附件取值和赋值逻辑
注册插件:
原单增加下推按钮,绑定操作代码为push:
新建单据,上传附件,保存
点击下推:
可以看见附件成功被携带至下游单据!
总结:
1. 附件面板的取值和赋值跟普通的单据属性不同,它和单据通过表关联进行映射
2. 附件面板是控件类,没有数据模型,数据库表为t_bas_attachment,不支持在单据体中使用
3. 单据转换插件基类AbstractConvertPlugIn,afterConvert 事件在目标单据生成完毕后触发,插件可以在这个事件对生成的目标单数据进行最后的调整
4. 附件常用帮助类:AttachmentServiceHelper
注:该种实现方式上游单据删除附件后,下游单据也会不可用,如需互不影响,请查看https://club.kdcloud.com/article/181059364914786048
推荐阅读