电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

启动方案支持事件处理(回调通知)

来源:金蝶云社区作者:金蝶2024-09-234

启动方案支持事件处理(回调通知)

新特性:启动方案支持事件处理

说明:启动方案,任务编排页签新增事件处理功能

启动方案可以配置单据同步成功时、单据同步失败时、集成任务成功时、集成任务失败时等事件处理。

单据同步成功时,参数提供:源单ID(可能为空),源单候选键值,目标单ID(可能为空),目标单候选键值,目标单操作,集成任务ID,启动方案ID,启动方案编码         

单据同步失败时,参数提供:源单ID(可能为空),源单候选键值,目标单ID(可能为空),目标单候选键值(可能为空),集成任务ID,启动方案ID,启动方案编码

         集成任务成功时,参数提供:集成任务ID,启动方案ID,启动方案编码,总行数,成功行数,失败行数,忽略行数

         集成任务失败时(在重试次数用完后触发),参数提供:集成任务ID,启动方案ID,启动方案编码,总行数,成功行数,失败行数,忽略行数


KEY

类型

说明

event

String

单据集成成功时 OnRowSuccess

单据集成失败时 OnRowFailed

集成任务成功时 OnTaskSuccess

集成任务失败时 OnTaskFailed

error

String

错误信息

action

String

目标单操作  

/**

          * 保存,连接器端应尽可能区分是INSERT还是UPDATE,实在无法区分时才使用SAVE

          */

         SAVE,

         /**

          * 新增

          */

         INSERT,

         /**

          * 修改

          */

         UPDATE,

         /**

          * 删除,一个单据或一行数据被删除后,接下来不能做其他任何操作。

          */

         DELETE,

         /**

          * 什么也没做,此单据行为被忽略,接下来也不应做其他操作。

          */

         NOP,

         /**

          * 输出失败

          */

         FAILED,

         /**

          * 未知,在某些情况下不能确定目标系统的实际行为时,使用此选项。

          */

         UNKNOWN

source_id

String

源单id

source_selector

Map

源单候选键

target_id

String

目标单id

target_selector

Map

目标单候选键

trigger_id

String

启动方案id

trigger_number

String

启动方案编码

task_id

String

集成任务id

total_count

int

总行数

success_count

int

成功行数

failed_count

int

失败行数

ignored_count

int

忽略行数


src_data            Map  源单数据(不包括分录字段)                                                             
tar_dataMap目标单数据(不包括分录字段)

1.    EAS事件处理

事件处理方所对应系统为eas的配置说明:

配置的事件处理器为业务所编写的eas后台事务类(可参考样例类kd.isc.connector.eas.e.HandlerDemo),实现eas后台事务接口类com.kingdee.bos.service.job.core.IJobHandler,在execute方法中编写业务逻辑,通过job.getParameters()获取集成云回调的参数值。Demo类详见下文“HandlerDemo.java”,代码片段如下图所示:


如需要根据回调数据中的某些参数值创建上下文,可以通过调用核心引擎工具类进行创建 com.kingdee.bos.service.job.util.Ctx 

调用示例: 

 Map<String, Object> tarData = (Map<String, Object>)data.get("tar_data");//获取目标单数据 String userId = (String)tarData.get("creator");//从目标单数据中取出创建人id值

 Context newCtx = com.kingdee.bos.service.job.util.Ctx.newShadowContext(job.getContext().getAIS(),userId); 

//根据创建人id构造上下文


代码HandlerDemo.java

package kd.isc.connector.eas.e;


import java.util.Map;


import com.kingdee.bos.service.job.core.IJobHandler;

import com.kingdee.bos.service.job.core.Job;


/**

 * 处理集成事件后台事务样例

 * @author rd_huazhong_yang

 *

 */

public class HandlerDemo implements IJobHandler{


/**

*/

private static final long serialVersionUID = 1L;


@Override

public Object execute(Job job) throws Exception {

@SuppressWarnings("unchecked")

Map<String,Object>data = (Map<String,Object>)job.getParameters();//获取回调参数map;

/*参数map中包含key:

* // 事件

event

// 错误信息

error

// 目标单操作

action

// 源单关键信息

source_id

source_selector

// 目标单关键信息

target_id

target_selector

// 启动方案

trigger_id

trigger_number

// 集成任务信息

task_id

// 任务统计计数

total_count

success_count

failed_count

ignored_count

单据同步成功时,提供:源单ID(可能为空),源单候选键值,目标单ID(可能为空),目标单候选键值,目标单操作,集成任务ID,启动方案ID,启动方案编码

单据同步失败时,提供:源单ID(可能为空),源单候选键值,目标单ID(可能为空),目标单候选键值(可能为空),集成任务ID,启动方案ID,启动方案编码

集成任务成功时,提供:集成任务ID,启动方案ID,启动方案编码,总行数,成功行数,失败行数,忽略行数

集成任务失败时(在重试次数用完后触发),提供:集成任务ID,启动方案ID,启动方案编码,总行数,成功行数,失败行数,忽略行数


*/

System.out.println(data);

return null;

}


}


EAS端apusic日志测试样例:

启动方案分别配置事件处理 - kd.isc.connector.eas.e.HandlerDemo,事件处理方 - 源系统

1.单据集成成功时 OnRowSuccess 

(EAS日志:{event=OnRowSuccess, action=UPDATE, source_id=MegAAAAR8cretY/c, source_selector={number=AM121701}, target_id=7217352157011820009, target_selector={number=AM121701}, trigger_id=696133736244306944, trigger_number=KD_CurrencyAddUpdate(EAS-IERP), task_id=844100011242719232})

2.单据集成失败时 OnRowFailed 

(EAS日志:{event=OnRowFailed, action=FAILED, source_id=IikQ/aTNRTCKYd/Vdtkn/t61j9w=, source_selector={number=EIP90}, trigger_id=696133736244306944, trigger_number=KD_CurrencyAddUpdate(EAS-IERP), task_id=844102878888365056, error={#message=保存 EIP90: “名称”已存在,请修改, #stack_trace=保存 EIP90: “名称”已存在,请修改)

3.集成任务成功时 OnTaskSuccess 

(EAS日志:{event=OnTaskSuccess, trigger_id=844066524682947584, trigger_number=KD_Currency(EAS-IERP)_3, task_id=844066706128538624, total_count=298, success_count=189, failed_count=109, ignored_count=0})

4.集成任务失败时 OnTaskFailed

(EAS日志:{event=OnTaskFailed, trigger_id=824567361246865408, trigger_number=BC122A7F(EAS-EAS), task_id=843925356791678976, total_count=1, success_count=0, failed_count=1, ignored_count=0, error={#message=赋值字段[id]时异常:

kd.isc.connector.eas.meta.AssignValueException: 赋值字段[id]时异常:)


2.    苍穹及连接器

目前苍穹及连接器端的事件处理,可以通过发送MQ或者调用微服务的方式,将数据发送到相应苍穹系统进行处理。具体如下:

方式一: 发送MQ消息

通过MQ将执行结果等信息发送到指定的应用和队列,业务方根据需要进行消费。具体配置如下:

(1)      配置事件处理类

在启动方案的【任务编排】-【事件处理】根据不同的事件配置相应的

启动方案支持事件处理(回调通知)

新特性:启动方案支持事件处理说明:启动方案,任务编排页签新增事件处理功能启动方案可以配置单据同步成功时、单据同步失败时、集成任务成...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信