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

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

集成平台与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": "0",
            "srcbillid": "0",
            "noupdateinvfields": "",
            "srcbillno": "",
            "srcbillentryseq": "0",
            "inspdemandbillid": "0",
            "inspdemandbillentryid": "0",
            "groupnumber": "",
            "groupseq": "",
            "afterentity": [
                {
                    "material1_number": "FLEX_BTRIGGER",
                    "materialmasterid1_number": "FLEX_BTRIGGER",
                    "seq": 1,
                    "auxpty1": {
                        "颜色": {
                            "number": "blue"
                        }
                    },
                    "lotnumber1": "",
                    "producedate1": null,
                    "expirydate1": null,
                    "qty1": 1,
                    "qtyunit2nd1": 0,
                    "baseqty1": 1,
                    "ownertype1": "bos_org",
                    "keepertype1": "bos_org",
                    "entrycomment1": "",
                    "subsrcbillentity": "",
                    "subsrcbillentryid": "0",
                    "subsrcbillid": "0",
                    "noupdateinvfields1": "",
                    "subsrcbillno": "",
                    "subsrcbillentryseq": "0",
                    "subinspdemandbillid": "0",
                    "subinspdemandbillentryid": "0",
                    "subgroupnumber": "",
                    "subgroupseq": ""
                }
            ]
        }
    ]
}


这是根据上述描述成功保存的形态转换单,其中弹性域字段也成功写入


3 注意事项

  • 启动方案使用本贴特性需要升级到6.0.10及以上版本

  • 以上方案仅供参考,具体业务具体分析



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

1 业务场景集成方案可以直接调用实体操作完成数据写入,但在某些场景下,业务单据没有提供标准的操作服务,只提供了OpenAPI服务(2.0版本...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息