如何通过服务流程调用BOTP下推触发工作流

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

如何通过服务流程调用BOTP下推触发工作流


服务流程是集成云推出的面向复杂集成场景的低代码服务编排工具,能够把已有的集成对象、集成方案、消息服务、API接口等集成资源,通过流程化设计编排成全新的应用服务,以支持更加复杂的业务场景。


例如基础数据分发到多个系统、数据消费需要从多源取数、基于某个数据参数处理不同的集成过程等等。


为了帮助大家快速掌握服务流程的使用方法,我们推出了系列文章,通过11个典型案例向大家介绍服务流程的高级技巧。


在上期集成服务流程典型案例系列文章中,我们为大家介绍了服务流程的第8个典型案例:如何通过服务流程进行接口幂等与重试


本期,小编继续为大家介绍第9个案例:如何通过服务流调用BOTP下推触发工作流,包括以下4个要点:


  • 需求场景介绍-费用申请单同步到EAS;

  • 针对该场景如何配置流程属性与变量;

  • 配置流程节点以调用BOTP触发工作流;

  • 服务流程调用BOTP的应用。


需求场景介绍


以苍穹的费用申请单同步到EAS系统为例:


首先,在苍穹工作流节点“审批通过”费用申请单时进行事件监听,把该费用申请单同步到EAS的费用申请单;


然后,调用EAS费用申请单的审核通过操作,并在EAS调用费用申请单时,根据BOTP规则生成费用报销单;


最后,通过EAS费用报销单的“提交”操作,启动费用报销单的工作流。


本文以上述场景为例,简述服务流程在该场景下的应用示例,具体的流程原理如下图所示:


流程原理


配置流程属性与变量

2.1启动方式


由于需要监听实体上的事件,因此设置服务流程的【启动方式】为“事件触发”。


启动方式设置


2.2 流程变量


流程变量类别主要有集成对象简单值两种其中:


集成对象: 


tar_otherBill (EAS端) 用于加载数据;

tar_bizAccountBill(EAS端) 用于加载数据;

src_dailyApplyBill(苍穹端) 用于取数。


简单值: 


字符串tar_Otherbill_Id 为目标EAS的费用申请单ID;

任意值wf用于接收工作流启动的流程信息;

字符串tarIds为根据BOTP规则生成的费用报销单id列表等。


流程变量


2.3 依赖资源


在【依赖资源】处引入以下资源:


1. “EAS数据源”:如预置EAS850数据源;

2. “集成对象”:苍穹的费用申请单、EAS的费用申请单。



依赖资源


配置服务流程节点


该案例的服务流程如下:


服务流程概览


接下来,小编为大家详细讲解各流程节点的配置方法。


3.1 开始节点 - 事件触发


配置“事件触发(审批通过)苍穹_费用申请”节点时,设置【集成对象(事件源)】为“费用申请单(ierp_dailyapplybill)”,【赋值变量】为“src_费用申请单(src_dailyApplyBill) ”,【单据事件】为“审核通过(audit)”,【取值字段】则选择“自动填充”即可。


开始节点-事件触发配置


3.2 字段映射节点


配置“字段映射(苍穹费用申请单-EAS费用申请单)”时,设置【源对象变量】为“src_费用申请单(src_dailyApplyBill)”,【目标对象变量】为tar_费用申请单(tar_otherBill)”。


注意事项:


使用字段映射、自动映射后,目标对象字段需要进行手动配置。


本实例服务流程配置部分,对F7字段直接进行赋值,仅供参考。真正运行此服务流程之前,需要选择对应的值转换规则。


字段映射节点配置


3.3 数据加载 - 同步EAS费用申请单


在配置“数据加载-同步EAS_费用申请单(审批通过)”节点的基本信息时,设置【目标集成对象】为“费用申请单(eas_otherBill)”,【目标数据(变量)】为“tar_费用申请单(tar_otherBill)”。


填写【操作列表】的【操作名称】时,选择“审核通过_集成云”,即可自动带出【操作编码】和【操作类型】,其中【操作编码】为“ngisc_audit”,【操作类型】为“update”。


然后,【目标单ID输出变量】设置为“tar_Otherbill_Id”,【候选键(组合候选键)】包括“number”和“entries.seq”。


数据加载-操作列表

数据加载-候选键


3.4 脚本节点 - 调用BOTP


在配置“(生成下游单据)BOTP生成EAS费用报销单”节点时,调用集成云的脚本“EAS_BOTP”,根据EAS的费用申请单BOTP规则“sq-002”生成下游单据费用报销单。相应的脚本如下:


//sq-002为费用申请单生成费用报销单的BOTP;
//由费用申请单生成的费用报销单集合
tarIds  = EAS_BOTP(EAS_CN, "sq-002", tar_Otherbill_Id);


脚本节点


3.5 数据获取节点


在配置“数据获取--EAS费用报销单” 节点时,设置【集成对象】为“费用报销单(eas_bizAccountBill)”,【赋值变量】为“费用报销单(tar_bizAccountBill)” ,【取数字段】选择“自动填充”,【过滤条件】为“id在变量名tarIds中”。


数据获取-取数设置

数据获取-过滤条件


3.6 脚本节点 - 计算付现金额 | 收款金额


脚本类型的节点“计算付现金额 | 收款金额”,用于处理业务逻辑并将费用报销单的状态设置为“已提交”,相关脚本如下:


var amountEncashed;
//计算付现金额
for (var i =0;i<tar_bizAccountBill.entries.length;i++){
  amountEncashed += tar_bizAccountBill.entries[i].amountOriWithoutTax;
}
//表头的付现金额赋值
tar_bizAccountBill.amountEncashed = amountEncashed;
tar_bizAccountBill.amount = amountEncashed;
//收款信息的付款金额赋值
for (var i =0;i<tar_bizAccountBill.collectionEntries.length;i++){
  tar_bizAccountBill.collectionEntries[i].amount = amountEncashed;
  tar_bizAccountBill.collectionEntries[i].amountOri = amountEncashed;
}
//设置费用报销单的状态为已提交
tar_bizAccountBill.state = 25;


脚本节点-计算付现金额 | 收款金额


3.7 数据加载 - 提交费用报销单


在配置“数据加载--EAS费用报销单--提交”节点时,将【目标集成对象】设置为“费用报销单(eas_bizAccountBill)”,【目标数据(变量)】为“费用报销单(tar_bizAccountBill)”。


填写【操作列表】的【操作名称】时,选择“ngisc_submit-update”,即可自动带出【操作编码】和【操作类型】,其中【操作编码】为“ngisc_submit”,【操作类型】为“update”。


然后,【目标单ID输出变量】设置为“tar_bizAccountBill_id”,【候选键(组合候选键)】包括以下九个:

“number、entries.seq、accountRecords.seq、collectionEntries.seq、tickeEntries.seq、payEntries.seq、loanCheckEntries.seq、reqCheckEntries.seq、entries.invoiceEntryId.seq”。


数据加载-操作列表

数据加载-候选键


3.8 时间等待节点


在配置该案例的时间等待类型节点时,设置【等待计划】为“30秒”。


时间等待


3.9 脚本节点 - 检查EAS报销单流程是否触发成功


脚本类型的节点“检查EAS报销单流程是否触发成功”用于检查是否触发EAS的工作流,相应脚本如下:


var  entity=null;//实体名称
var operation=null;//操作
var idList=[];//单据id列表
idList += tar_bizAccountBill_id;

wf = queryWorkflowState(EAS_CN, entity, operation, idList);


脚本节点-检查EAS报销单流程是否触发成功


3.10 通知发送节点


通知发送类型的节点分为“成功——通知发送”和“失败——通知发送”两种。


若检查到启动了工作流,则发送成功通知,将【通知方式】设置为“系统消息”,【接收人变量-苍穹用户】设置为“src_dailyApplyBill.creator”。


通知发送成功-基本信息

通知发送成功-消息设置


若检查到没有启动工作流,则发送失败通知,【通知方式】设置为“系统消息”,【接收人变量-苍穹用户】设置为“src_dailyApplyBill.creator”。


通知发送失败-基本信息

通知发送失败-消息设置


服务流程应用

4.1 发布服务流程


选中需要发布的服务流程,点击“发布”按钮进行发布。


服务流程发布


4.2 苍穹—费用申请单审批通过


在苍穹【消息中心】→【待办任务列表】,选中待审批费用申请单,对费用申请单进行审批。


批量审批


4.3 服务流程实例


苍穹的费用申请单在审批通过时,事件触发服务流程实例,如下所示:


服务流程实例


服务流程实例中的变量值如下:


流程实例变量值


4.4 EAS — 费用申请单


目标系统EAS的费用申请单如下:


EAS-费用申请单


4.5 EAS — 费用报销单


通过在服务流程中的脚本函数“EAS_BOTP”调用BOTP规则生成的费用报销单。


注意:需要提前确认EAS有可用的“费用申请单生成费用报销单”相关的BOTP规则。


EAS-费用报销单


4.6 EAS — 费用报销单工作流


通过EAS费用报销单提交操作,启动费用报销单工作流。


注意:需要提前确认EAS费用报销单在界面上提交时,也可以正常启动费用报销单的工作流。


EAS-费用报销单工作流


4.7 苍穹 — 消息中心


服务流程的通知消息,可在苍穹【消息中心】进行查看。


苍穹 — 消息中心


参考资料


更多关于集成服务云的知识,可参考下述资料:


集成服务流程操作指南




#往期推荐#


# 如何使用服务流程进行基础资料初始化

# 如何在服务流程中进行API集成

# 如何在服务流程中使用消息集成

# 如何使用服务流程对启动方案失败进行自动补偿

# 如何通过服务流程进行单据反写

# 如何使用服务流程进行数据一致性补偿同步

# 如何通过服务流程进行异常处理与状态通知

# 如何通过服务流程进行接口幂等与重试


更多精彩内容,“码”上了解!↓


如何通过服务流程调用BOTP下推触发工作流

服务流程是集成云推出的面向复杂集成场景的低代码服务编排工具,能够把已有的集成对象、集成方案、消息服务、API接口等集成资源,通过流程...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息