这个功能是将某一个单据中的数据下推到另一个单据中。

如果是正常下推是没有问题的,但是在下推过程中会遇到原单据有子单据体,子单据体还要满足某些条件才能下推,下退后,还要获取子单据中基础数据里面的值,有时候基础数据还会有子单据。

这样就会出现很多各种各样的问题,我下面将我遇到的问题记录下来 ,欢迎各位友友,一起补充,毕竟在金蝶云社区确实查不到对应的问题。

问题如下:

一、原单据中子单据体要满足某些条件

只下推采纳的数据。

有两种方法:

第一种是自己在转换流程中配置。

1.在关联实体的源单关联实体中选择对应的子单据体

2.然后在数据范围中新增一个条件,把自己的条件写上就行了。

这个的意思就源单据只有满足这个条件的数据才会下推,前提是只能配置关联实体(步骤一)中的条件。

第二种方法就是自己硬写插件,获取数据然后推送了。

先说优点,就是很容易理解,毕竟对于开发者来说,写后台逻辑还是比较简单的,而且可以避开关联实体,以为如果源单据中有多个子单据体,这样在下推其他子单据体的时候就可能出现实体冲突(这个冲突问题,目前我只知道使用插件解决)。

再说缺点,很显而易见,这样写会很费时间,而且不知道怎么获取源单数据的新手来说根本就没法写。

新建一个java文件,然后写代码就好了,我下面会附上我写的代码并加上详细注解,希望可以有所理解吧。如果实在是理解不了,可以评论和私信我一起谈论哦。


//再插件的时候必须继承AbstractConvertPlugIn public class ContractPush extends AbstractConvertPlugIn {//在这个方法中写上获取数据的路径@Overridepublic void afterBuildQueryParemeter(AfterBuildQueryParemeterEventArgs e) {e.addSrcField("yfgt_customer_name.entry_linkman");e.addSrcField("yfgt_customer_name.entry_linkman.contactperson");e.addSrcField("yfgt_customer_name.entry_bank.bank");e.addSrcField("yfgt_customer_name.entry_bank.bankaccount");e.addSrcField("yfgt_adopt_not");e.addSrcField("yfgt_customer_name");e.addSrcField("yfgt_customer_name.name");e.addSrcField("yfgt_customer_name.tx_register_no");e.addSrcField("yfgt_customer_name.artificialperson");e.addSrcField("yfgt_customer_name.yfgt_contact");//e.addSrcField("yfgt_customer_name.entry_address.addfulladdress");}//这里就是详细的取值逻辑了@Overridepublic void afterCreateTarget(AfterCreateTargetEventArgs e) {// 取目标单String targetEntityNumber = this.getTgtMainType().getName();   //取源单数据ExtendedDataEntity[] billDataEntitys = e.getTargetExtDataEntitySet().FindByEntityKey(targetEntityNumber);for (ExtendedDataEntity billDataEntity : billDataEntitys) {// 获取到具体的单据的值List<DynamicObject> srcRows = (List<DynamicObject>) billDataEntity.getValue((ConvertConst.ConvExtDataKey_SourceRows));//定义需要获取的值long yfgt_customer_name = 0;String contactperson = "";long bank = 0;String bankaccount = "";String yiname = "";String yfgt_legal_people = "";String yfgt_register_no = "";String yfgt_contact = "";long reclinkman = 0;String yfgt_address = "";//循环获取子单据中的数据for(DynamicObject dynamicObject : srcRows) {//判断是否是自己需要的数据Boolean bool = e.getFldProperties().get("yfgt_adopt_not").getDTValue(dynamicObject);if (bool) {// 取单数据reclinkman = e.getFldProperties().get("yfgt_customer_name.entry_linkman").getDTValue(dynamicObject);yfgt_contact = e.getFldProperties().get("yfgt_customer_name.yfgt_contact").getDTValue(dynamicObject);yfgt_register_no =  e.getFldProperties().get("yfgt_customer_name.tx_register_no").getDTValue(dynamicObject);yfgt_legal_people = e.getFldProperties().get("yfgt_customer_name.artificialperson").getDTValue(dynamicObject);yfgt_customer_name = e.getFldProperties().get("yfgt_customer_name").getDTValue(dynamicObject);yiname = e.getFldProperties().get("yfgt_customer_name.name").getDTValue(dynamicObject);contactperson = (String) e.getFldProperties().get("yfgt_customer_name.entry_linkman.contactperson").getDTValue(dynamicObject);bank = e.getFldProperties().get("yfgt_customer_name.entry_bank.bank").getDTValue(dynamicObject);bankaccount = (String) e.getFldProperties().get("yfgt_customer_name.entry_bank.bankaccount").getDTValue(dynamicObject);}}// 赋值billDataEntity.setValue("reclinkman_id", reclinkman);billDataEntity.setValue("phone1st", yfgt_contact);billDataEntity.setValue("yfgt_contact", yfgt_contact);billDataEntity.setValue("yfgt_register_no", yfgt_register_no);billDataEntity.setValue("yfgt_legal_people", yfgt_legal_people);billDataEntity.setValue("customer_id", yfgt_customer_name);//billDataEntity.setValue("reclinkman", contactperson);billDataEntity.setValue("party1st", yiname);billDataEntity.setValue("yfgt_bank_id", bank);billDataEntity.setValue("yfgt_bankaccount", bankaccount);billDataEntity.setValue("contactperson1st", contactperson);}}}

将写好的插件配置到此处就好。

二、需要获取原单据中的基础数据中的数据

第一种方法就是自己在转化规则中配置。

1.在源单据中配置,在引用属性中配置上自己需要的属性。

2.转换规则----字段映射----源单字段中就能找到了

第二种方法就是自己写插件

方法给上面的插件写法一样;

例如:要是使用基础资料用户(user)下面的性别(age),获取数据的路径就是(user.age)

注意:要是需要获取子单据体的话,就是(user.子单据体标识.属性)。。。。这个子单据体只能是表单形式的,并且要存在表名。以为是通过数据库进行查询的。如果子单据体是列表的话,好像是只能获取第一行,具体的没整明白。

金蝶云单据下推,转换规则相关推荐

  1. java金蝶云单据查询_凭证查询

    凭证查询的工具栏菜单提供多个凭证维护的功能菜单,用户可以对凭证进行新增.复制.修改以及删除等多个操作.需要注意的是,所有的功能必须是已授权用户才能操作. 工具栏的通用操作同本产品的单据操作一致,相关说 ...

  2. java金蝶云单据查询_金蝶云苍穹单据列表开发demo

    控件使用 列表分组字段 在左侧大纲中选择表格视图后在实体列表元素中选择列表字段分组,而后将申请数据和已订货数量拖进列表分组字段中,并更改列表分组字段名称为数量 合并列表字段 同上述步骤一样,只不过在实 ...

  3. 金蝶云星空使用WebAPI来新增单据

    有很多客户需求在后台自动生成某张单据,金蝶云星空提供了WebApi,包含了保存,提交,审核,删除单据的接口,下面以生产订单的保存,提交,审核为例,说明一下应用WebApi后台自动生成生产订单的功能,下 ...

  4. 金蝶云星空和金蝶云星空单据接口对接

    金蝶云星空和金蝶云星空单据接口对接 接通系统:金蝶云星空 金蝶K/3Cloud结合当今先进管理理论和数十万家国内客户最佳应用实践,面向事业部制.多地点.多工厂等运营协同与管控型企业及集团公司,提供一个 ...

  5. 金蝶云星辰和旺店通企业版奇门单据接口集成

    金蝶云星辰V1和旺店通·企业奇门单据接口集成 对接源平台:旺店通·企业奇门 慧策(原旺店通)是一家技术驱动型智能零售服务商,基于云计算PaaS.SaaS模式,以一体化智能零售解决方案,帮助零售企业数字 ...

  6. 赛意SMOM和金蝶云星空单据接口对接

    赛意SMOM和金蝶云星空单据接口对接 数据源系统:金蝶云星空 金蝶K/3Cloud在总结百万家客户管理最佳实践的基础上,提供了标准的管理模式:通过标准的业务架构:多会计准则.多币别.多地点.多组织.多 ...

  7. 金蝶云星空通过python插件向钉钉同步单据

    一.方案 由于办公协同系统负责审批事件为主,而传统ERP系统缺乏多样的审批流程,不能完成多人对一个事件进行审批同意实施,不方便采购.销售.出库申请单的审批,以及费用报销.出差.合同签订等申请,结合两者 ...

  8. 金蝶云星空与金蝶云星空对接集成逐个单据查询打通凭证新增

    金蝶云星空与金蝶云星空对接集成逐个单据查询打通凭证新增 接通系统:金蝶云星空 金蝶K/3Cloud在总结百万家客户管理最佳实践的基础上,提供了标准的管理模式:通过标准的业务架构:多会计准则.多币别.多 ...

  9. 钉钉对接金蝶云星空单据模板-日常费用报销

    以下是钉钉对接金蝶云星空的"日常费用报销"单据模板介绍. 模板截图 模板特点 包含日常费用报销审批流程需要的各类基本字段信息. 包含人员.部门.组织.项目等字段信息,在对接金蝶云星 ...

最新文章

  1. 电子商务之表示层分析(九)
  2. python3.7.2教程-centos7系统下python2与python3共存
  3. C++模板:模板简述,函数模板详细说明【C++模板】(56)
  4. windows server 2008解决无法PING通问题
  5. modelandview使用过程_深入源码分析SpringMVC执行过程
  6. 300plc与组态王mpi通讯_MPI(DP)-ETH以太网转换器使用手册
  7. C# 实现简易的串口监视上位机功能附源码下载
  8. 用125行C语言编写一个简单的16位虚拟机
  9. 【6G】算力网络技术白皮书整理
  10. 计算机论文格式要求吗,论文格式
  11. 代码运行:CornerNet源码
  12. Is your horseshoe on the other hoof?
  13. 本体论:Gene Ontology (基因本体)
  14. 在线支付功能的设计及其实现
  15. ov7725摄像头--图像中间亮四周暗
  16. 读书有益——》今日简史
  17. nvivo是什么,为什么要学习nvivo,如何学?
  18. 电子称DIY(贴应变片+写代码)
  19. 混合面向目标的机器人
  20. 分众养虎梯影们,楼宇广告没有护城河

热门文章

  1. 支付宝支付和微信支付的记录和总结
  2. 帆软报表开发学习笔记(八)
  3. java数组中删除元素或一个数组元素
  4. 容错服务器有什么特别之处
  5. Assembly 收视率
  6. SpringBoot(模板Thymeleaf)
  7. 适配 Android P之非SDK接口限制的排查方法
  8. 如何在服务器端开启X Display(本地可操作远程界面)
  9. PC微信视频号下载视频研究
  10. oracle数据泵效率,oracle技术之oracle 10g数据泵和导入导出性能对比(五)