集成平台与OpenAPI联合集成场景(以弹性域集成为例)

1 业务场景
集成方案可以直接调用实体操作完成数据写入,但在某些场景下,业务单据没有提供标准的操作服务,只提供了OpenAPI服务(2.0版本)。因此,可以将集成和开放能力组合起来使用,具体场景包括:
目标有复杂逻辑,没有实体的具体操作,但是对外提供了OepnAPI;
目标业务字段较多,并且接口的默认值很多,一些需要使用接口界面的值转换事件;
目标单据已经开发好了一套API,可以直接复用降低开发成本;
目标单据、单据体、子单据体有弹性域字段。
注意:数据集成方案使用本贴特性需要升级到6.0.10及之后。
2 解决方案
下面介绍如何从零开发一个OpenAPI,并且应用在集成管理中。本文中以im_adjustbill形态转换单为例,介绍如何在集成云中各调用形态转换单的OpenAPI。以下是具体步骤:
2.1 新增API
在开放平台新增一个操作API,实体选择im_adjustbill,在OpenAPI执行API测试成功将单据保存,则API开发成功。这里介绍一个技巧,如果不清楚API保存时需要哪些数据,可以先配置一个操起API读取一个单据,然后仿照读取出的实体来改写,即可生成一份保存数据。
基本信息:

必要字段:

2.2 拷贝测试数据
点击API测试,拷贝API测试数据报文,进入集成管理-集成云数据-数据集中发布一个集成对象。
下图是测试数据的部分截图:

2.3 创建数据集并发布集成对象
在集成服务云下,打开【集成管理】-【集成元数据】-【数据集】,列表新增下拉点击json导入,移除最外层的data部分粘贴API测试数据后参考截图配置保存、发布。


2.4 创建集成方案
使用创建的集成对象im_adjustbill_struct配置服务流程或者启动方案,演示中以启动方案为案例。
注意:如果是服务流程服务流程中组装好{“data”:数据}的格式,使用OpenAPI.invokeOperation(apiUrl, data)调用即可,注意调用oepnAPI时最外层的data需要自己补充以适配API的入参格式
下文演示数据集成方案,源对象按照实际情况自己配置,本文以im_adjustbill实体作为源对象,注意自动映射和近似映射可能不会映射弹性域字段,需要认为写脚本处理。

由于不同的单据转换逻辑不相同,此处假定数据已通过字段映射及转换脚本映射成功,需要进入目标处理脚本进行最后一步的配置。

目标处理脚本中,tar对象是前置转换处理后能拿到的完整对象,此上下文中src未注入,因此需要的对象需要在转换脚本中处理好。
注意:如果有弹性域对象,则需要明确弹性域维度。组装好数据后在目标数据处理脚本中,OpenAPI.invokeOperation(apiUrl, {data:data})调用即可成功写入;
下面提供一个参考文本,组装
{
"billno": "XTZH-240709-000002",
"billstatus": "A",
"billstatus_title": "暂存",
"auditdate": null,
"modifytime": "2024-07-09 08:08:28",
"createtime": "2024-07-09 08:02:08",
"biztime": "2024-07-09 00:00:00",
"comment": null,
"billcretype": "",
"billcretype_title": "",
"bookdate": "2024-07-09 00:00:00",
"ischargeoffed": false,
"ischargeoff": false,
"lastupdatetime": "2024-07-09 08:08:28",
"unitsrctype": "",
"unitsrctype_title": "",
"asyncstatus": "B",
"asyncstatus_title": "已完成",
"billentry": [
{
"seq": 1,
"materialmasterid_number": "FLEX_BTRIGGER",
"material_number": "FLEX_BTRIGGER",
"auxpty": {
"颜色": {
"number": "blue"
}
},
"lotnumber": "",
"producedate": null,
"expirydate": null,
"qty": 1,
"qtyunit2nd": 0,
"baseqty": 1,
"ownertype": "bos_org",
"keepertype": "bos_org",
"entrycomment": "",
"invaccid": "0",
"srcbillentity": "",
"srcbillentryid": 集成平台与OpenAPI联合集成场景(以弹性域集成为例)
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



