EAS调用苍穹执行启动方案和服务流程
变更记录
产品版本 | 更新内容 | 更新日期 |
V6.0.3 | 支持EAS同步调用启动方案和服务流程 | 2023年12月12日 |
V7.0.0 | 支持EAS同步调用自定义API | 2024年7月10日 |
业务场景
在某些事件触发不支持或者实时性要求较高的场景,需要在EAS业务操作结束后立即调用集成接口,实现数据集成。
由于集成云已经实现了EAS链路打通,因此可以直接在EAS编写代码调用集成基础设施,实现数据推送或者触发集成。目前,对应的集成接口提供了同步和异步两种模式,可供不同场景使用。
注意:
集成方案、服务流程、自定义API等基础资源的启用、禁用状态控制的是前端操作,业务通过API(包括微服务等)调用不受启用禁用控制。
如果使用了eas连接多数据中心的新特性将不支持反调。
EAS调用苍穹执行启动方案接口
/**
* 调用集成云服务
*
* @param dataCenter 账套名
* @param iscService 集成云服务名,参考kd.isc.iscb.connector.ierp.svc包下的Service类。
* @param params 集成云服务调用参数
* @return
* @throws Exception
*/
kd.isc.iscb.util.connector.server.ConnectorCallback.call(String dataCenter, String iscService, Map<String, Object> map) throws Exception
参数:
名称 | 类型 | 说明 |
datacenter | String | 已经完成集成部署的eas数据中心名,替换下面代码调用示例中的第一个参数“dc” |
iscService | String | 苍穹集成云服务名,如需要根据启动方案编码执行方案时,则填写StartTriggerService |
map | Map | 参考对应kd.isc.iscb.connector.ierp.svc包下的Service微服务类填写对应参数. |
代码示例
1、异步调用
1.1 EAS异步调用苍穹执行启动方案接口时调用示例如下:
Map<String, Object> execute_params = new HashMap<>(); execute_params.put("启动方案的参数key", "参数value"); Map<String, Object> map = new HashMap(); map.put("trigger_number", "启动方案编码");// map.put("params", execute_params); kd.isc.iscb.util.connector.server.ConnectorCallback.call("dc","StartTriggerService",map);
1.2 EAS异步调用苍穹启动服务流程调用示例如下:
EAS端可能因为方法不支持事件触发、或者可能有一些其他特殊原因不支持事件触发,导致服务流程无法根据实际需要事件触发启动,因此提供一种通过代码调用服务流程的方法,参考下述代码:
Map<String, Object> execute_params = new HashMap<>(); execute_params.put("服务流程输入变量名", "服务流程变量值"); Map<String, Object> map = new HashMap(); map.put("flowDefNum", "服务流程的编码"); map.put("data", execute_params); kd.isc.iscb.util.connector.server.ConnectorCallback.call("dc","StartFlowService",map);
2、同步调用
2.1 EAS同步调用苍穹执行启动方案接口时调用示例如下:
Map<String, Object> execute_params = new HashMap<>(); execute_params.put("启动方案的参数key", "参数value"); Map<String, Object> map = new HashMap(); map.put("trigger_number", "启动方案编码"); map.put("params", execute_params); kd.isc.iscb.util.connector.server.ConnectorCallback.call("dc","syncExecuteTriggerService",map);
2.2 EAS同步调用苍穹启动服务流程调用示例如下:
Map<String, Object> execute_params = new HashMap<>(); execute_params.put("服务流程输入变量名", "服务流程变量值"); Map<String, Object> map = new HashMap(); map.put("flowDefNum", "服务流程的编码"); map.put("data", execute_params); map.put("need_procid", true);//如果不需要返回流程实例id则不传该参数或者传false kd.isc.iscb.util.connector.server.ConnectorCallback.call("dc","ExecuteFlowService",map);
2.3 EAS同步调用苍穹自定义API的调用示例如下:
Map<String, Object> map = new HashMap(); map.put("number", "test06211_FOR_EAS"); //自定义API编码(后缀只能是_FOR_EAS) Map<String, Object> execute_params = new HashMap();//自定义API入参 execute_params.put("a", 4); execute_params.put("b", 8); map.put("params", execute_params); kd.isc.iscb.util.connector.server.ConnectorCallback.call("Pneworcl","CallScriptApiService",map);//Pneworcl:EAS数据中心的代码
注意事项:
其他所需微服务请参考对应类参考苍穹kd.isc.iscb.connector.ierp.svc包
EAS调用苍穹执行启动方案和服务流程
本文2024-09-23 00:47:47发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-141791.html