目标数据脚本处理详解

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

目标数据脚本处理详解

目标数据脚本处理


使用说明:目标处理脚本最终的返回值应为Map,里面应包含id值和操作类型type,操作类型有SAVE, INSERT, UPDATE, DELETE, NOP,FAILED, UNKNOWN。详情可以参考kd.isc.iscb.util.connector.SaveDataType类。 注意:目标处理脚本、目标处理类、以及原有目标单操作是互斥的。使用了目标处理脚本或目标处理类,原有的目标单操作就失效了,需要在脚本里另外处理。例如:如果需要在目标处理脚本调单据保存操作,可参考$action的用法。


一、功能函数

1 $service(serviceName,params)

2 $action(entity,actions,data,judgeFields)

二、使用场景及配置说明

方案配置示例(以苍穹微服务为例)

一、功能函数

1 $service(serviceName,params)

参数名

参数类型

必填

说明

serviceName

String

在集成云系统中登记好的服务类型的集成对象,

如在集成云中登记好的苍穹微服务,格式形如

mservice://cloudid.appid.service.method

params

Map

服务方法调用参数

函数功能说明

集成服务调用,可调用苍穹微服务:

格式形如:mservice://cloudid.appid.service.method,

具体例子:mservice://isc.iscb.ISCDataCopyService.queryExecutionLogs

也可以调用eas façade类型服务,

格式形如:facade://façade全限定名:方法名

具体例子:

facade://com.kingdee.eas.basedata.master.cssp.app.SyncSupplierFacade:syncSupplier

2 $action(entity,actions,data,judgeFields)

参数名

参数类型

必填

说明

entity

String

实体名

actions

List

操作列表

data

Map

转换生成的目标数据

judgeFields

List

候选键,单头的候选键使用 $ 作为 Key,分录的候选键使用分录字段名为key

函数功能说明

调用目标系统实体的操作功能,如调用苍穹、eas实体的保存、提交等方法。多个操作列表会被封装在一个事务中进行调用,失败时会全部回滚。

 

注:如果希望执行操作产生异常时,根据异常信息执行不同逻辑,则可以参考以下脚本

catch(e){

if(e.message contains '编码' && e.message contains '已存在'){

    // 执行更新

}

throw e;

}

  

二、使用场景及配置说明

业务方希望在写数阶段需要完成多个服务或操作的调用,可以在目标脚本处理中完成服务编排逻辑。

方案配置示例(以苍穹微服务为例)

(1)先将服务所需参数作为属性字段配置好结构类型的集成对象

(2)将该集成对象作为目标对象配置好集成方案

(3)在集成方案的目标数据处理脚本中编写需要调用服务的脚本代码

注意:如上图所示,在脚本中调用的微服务

mservice://isc.iscb.ISCDataCopyService.queryExecutionLogs 应先在集成对象中登记如下图

(4)调用脚本编写示例

如在业务中已经注册对应微服务如下所示

则$service函数调用脚本代码编写示例如下:

var params = {“executionId”:”111111111”,”limit”:10};

var result = $service(“mservice://isc.iscb.ISCDataCopyService.queryExecutionLogs”,params);

注意:

在目标脚本编写中只允许访问目标系统;

如果是研发环境调试,可直接断点自己开发的服务实现方法中,执行启动方案后,若能正确调用到方法,则证明已经调通。若进入方法的参数不符合期望,则调整方案配置即可。

如果是希望在目标脚本中调用实体的操作列表,则$action函数脚本调用样例如下:

var entity = "isc_demo_basedata_1";

var actions = ['save'];

var data = tar;

var judgeFields = {'$':['id'],'entryentity':['id']};

var result = $action(entity,actions,data,judgeFields);

return result;

注意:实体要先在集成对象中登记。

目标数据脚本处理详解

目标数据脚本处理使用说明:目标处理脚本最终的返回值应为Map,里面应包含id值和操作类型type,操作类型有SAVE, INSERT, UPDATE, DELETE...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息