金蝶云单据下推,转换规则
这个功能是将某一个单据中的数据下推到另一个单据中。
如果是正常下推是没有问题的,但是在下推过程中会遇到原单据有子单据体,子单据体还要满足某些条件才能下推,下退后,还要获取子单据中基础数据里面的值,有时候基础数据还会有子单据。
这样就会出现很多各种各样的问题,我下面将我遇到的问题记录下来 ,欢迎各位友友,一起补充,毕竟在金蝶云社区确实查不到对应的问题。
问题如下:
一、原单据中子单据体要满足某些条件
只下推采纳的数据。
有两种方法:
第一种是自己在转换流程中配置。
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.子单据体标识.属性)。。。。这个子单据体只能是表单形式的,并且要存在表名。以为是通过数据库进行查询的。如果子单据体是列表的话,好像是只能获取第一行,具体的没整明白。
金蝶云单据下推,转换规则相关推荐
- java金蝶云单据查询_凭证查询
凭证查询的工具栏菜单提供多个凭证维护的功能菜单,用户可以对凭证进行新增.复制.修改以及删除等多个操作.需要注意的是,所有的功能必须是已授权用户才能操作. 工具栏的通用操作同本产品的单据操作一致,相关说 ...
- java金蝶云单据查询_金蝶云苍穹单据列表开发demo
控件使用 列表分组字段 在左侧大纲中选择表格视图后在实体列表元素中选择列表字段分组,而后将申请数据和已订货数量拖进列表分组字段中,并更改列表分组字段名称为数量 合并列表字段 同上述步骤一样,只不过在实 ...
- 金蝶云星空使用WebAPI来新增单据
有很多客户需求在后台自动生成某张单据,金蝶云星空提供了WebApi,包含了保存,提交,审核,删除单据的接口,下面以生产订单的保存,提交,审核为例,说明一下应用WebApi后台自动生成生产订单的功能,下 ...
- 金蝶云星空和金蝶云星空单据接口对接
金蝶云星空和金蝶云星空单据接口对接 接通系统:金蝶云星空 金蝶K/3Cloud结合当今先进管理理论和数十万家国内客户最佳应用实践,面向事业部制.多地点.多工厂等运营协同与管控型企业及集团公司,提供一个 ...
- 金蝶云星辰和旺店通企业版奇门单据接口集成
金蝶云星辰V1和旺店通·企业奇门单据接口集成 对接源平台:旺店通·企业奇门 慧策(原旺店通)是一家技术驱动型智能零售服务商,基于云计算PaaS.SaaS模式,以一体化智能零售解决方案,帮助零售企业数字 ...
- 赛意SMOM和金蝶云星空单据接口对接
赛意SMOM和金蝶云星空单据接口对接 数据源系统:金蝶云星空 金蝶K/3Cloud在总结百万家客户管理最佳实践的基础上,提供了标准的管理模式:通过标准的业务架构:多会计准则.多币别.多地点.多组织.多 ...
- 金蝶云星空通过python插件向钉钉同步单据
一.方案 由于办公协同系统负责审批事件为主,而传统ERP系统缺乏多样的审批流程,不能完成多人对一个事件进行审批同意实施,不方便采购.销售.出库申请单的审批,以及费用报销.出差.合同签订等申请,结合两者 ...
- 金蝶云星空与金蝶云星空对接集成逐个单据查询打通凭证新增
金蝶云星空与金蝶云星空对接集成逐个单据查询打通凭证新增 接通系统:金蝶云星空 金蝶K/3Cloud在总结百万家客户管理最佳实践的基础上,提供了标准的管理模式:通过标准的业务架构:多会计准则.多币别.多 ...
- 钉钉对接金蝶云星空单据模板-日常费用报销
以下是钉钉对接金蝶云星空的"日常费用报销"单据模板介绍. 模板截图 模板特点 包含日常费用报销审批流程需要的各类基本字段信息. 包含人员.部门.组织.项目等字段信息,在对接金蝶云星 ...
最新文章
- 电子商务之表示层分析(九)
- python3.7.2教程-centos7系统下python2与python3共存
- C++模板:模板简述,函数模板详细说明【C++模板】(56)
- windows server 2008解决无法PING通问题
- modelandview使用过程_深入源码分析SpringMVC执行过程
- 300plc与组态王mpi通讯_MPI(DP)-ETH以太网转换器使用手册
- C# 实现简易的串口监视上位机功能附源码下载
- 用125行C语言编写一个简单的16位虚拟机
- 【6G】算力网络技术白皮书整理
- 计算机论文格式要求吗,论文格式
- 代码运行:CornerNet源码
- Is your horseshoe on the other hoof?
- 本体论:Gene Ontology (基因本体)
- 在线支付功能的设计及其实现
- ov7725摄像头--图像中间亮四周暗
- 读书有益——》今日简史
- nvivo是什么,为什么要学习nvivo,如何学?
- 电子称DIY(贴应变片+写代码)
- 混合面向目标的机器人
- 分众养虎梯影们,楼宇广告没有护城河