使用轻易云平台实现聚水潭盘点单到金蝶云星辰转换

  • 轻易云集成顾问-钟家寿

聚水潭数据集成到金蝶云星辰V2案例分享

在一个实际的系统对接案例中,我们成功实现了聚水潭盘点单数据与金蝶云星辰V2盘盈单之间的高效集成。通过调用聚水潭API接口/open/inventory/count/query获取数据,并将其批量快速写入到金蝶云星辰V2 API接口/jdy/v2/scm/inv_check_gail_bill,我们完成了从数据抓取、转换到存储的一整套自动化流程。

首先,为确保每一份盘点单都无遗漏地被集成,我们采取了定时可靠的数据抓取策略。借助轻易云平台的实时监控和日志记录功能,可以全程跟踪每个请求和响应状态,从而及时发现并处理潜在的问题。

大量数据快速写入是该项目中的另一个关键技术挑战。在设计方案时,通过分页及限流机制合理控制每次请求的数据量,避免因过大负载导致集成过程阻塞或失败。同时,对接过程中仔细处理两端系统之间的数据格式差异也是至关重要的一步,这样可以确保发送至金蝶云星辰V2的所有数据信息都完全符合其规范要求。

为了增强稳定性,我们还设计并实施了一套完善的异常处理与错误重试机制,当遇到网络波动、服务器超载等异常情况时,可以灵活应对,保证整个集成过程不断续且高度可靠。

总之,此次聚水潭到金蝶云星辰V2的成功对接,得益于周密合理的信息流管理、高效可靠的数据传输通道,以及严格严谨的异常检测和纠错机制。这些技术要素共同保障了不同系统间信息交互工作的高效执行,为进一步拓展未来更多复杂系统间的数据融合打下坚实基础。 如何对接钉钉API接口

调用聚水潭接口获取并加工数据

在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用聚水潭接口/open/inventory/count/query,并对获取的数据进行初步加工。

接口配置与请求参数

首先,我们需要配置元数据,以便正确调用聚水潭的盘点单查询接口。以下是该接口的元数据配置:

{
  "api": "/open/inventory/count/query",
  "effect": "QUERY",
  "method": "POST",
  "number": "io_id",
  "id": "io_id",
  "idCheck": true,
  "request": [
    {"field": "page_index", "label": "第几页", "type": "string", "describe": "第几页,从第一页开始,默认1", "value": "1"},
    {"field": "page_size", "label": "每页多少条", "type": "string", "describe": "每页多少条,默认30,最大50", "value": "10"},
    {"field": "modified_begin", "label": "修改起始时间", "type": "string", "describe": "修改起始时间,和结束时间必须同时存在,时间间隔不能超过七天,与线上单号不能同时为空", 
        "value":"{{DAYS_AGO_1|datetime}}"},
    {"field": "modified_end", 
        "label":"修改结束时间","type":"string","describe":"修改结束时间,和起始时间必须同时存在,时间间隔不能超过七天,与线上单号不能同时为空","value":"{{CURRENT_TIME|datetime}}"},
    {"field":"status","label":"单据状态","type":"string","describe":"单据状态,Confirmed=生效,WaitConfirm待审核,Creating=草拟,Archive=归档,Cancelled=作废","value":"Confirmed"},
    {"field":"wms_co_id","label":"仓库编号","type":"string","value":"13599842"}
  ],
    "autoFillResponse": true,
    "condition_bk":[[{"field":"items.qty","logic":"gt","value":"0"}]],
    "beatFlat":["items"],
    "condition":[[{"field":"items.qty","logic":"gt","value":"0"},{"field":"warehouse","logic":"in","value":"恩比仓主仓,恩比仓销退仓,恩比仓次品仓,恩比仓报废仓,恩比仓返修仓,恩比仓进货仓"}]]
}

数据请求与清洗

在发送请求时,我们使用POST方法,并传递上述配置中的参数。特别注意的是modified_beginmodified_end字段,这两个字段用于指定查询的时间范围,并且必须同时存在。

{
    "page_index": 1,
    "page_size": 10,
    "modified_begin": "{{DAYS_AGO_1|datetime}}",
    "modified_end": "{{CURRENT_TIME|datetime}}",
    "status": "Confirmed",
    "wms_co_id": 13599842
}

发送请求后,我们会收到一个包含盘点单信息的响应。由于平台支持自动填充响应(autoFillResponse),我们可以直接获取并处理返回的数据。

数据转换与写入

在数据清洗阶段,我们需要根据特定条件过滤数据。例如,根据元数据配置中的条件:

[
    {"field":"items.qty","logic":"gt","value":"0"},
    {"field":"warehouse","logic":"in","value":"恩比仓主仓,恩比仓销退仓,恩比仓次品仓,恩比仓报废仓,恩比仓返修仓,恩比仓进货仓"}
]

这意味着我们只保留数量大于零且位于指定仓库中的盘点单项。通过这些条件过滤后的数据将更加精准,为后续的数据转换和写入提供了可靠的基础。

实践案例

假设我们从聚水潭接口获取到如下响应数据:

{
    "io_id":12345,
    "items":[
        {"qty":10,"warehouse":"恩比仓主仓"},
        {"qty":-5,"warehouse":"其他"}
    ]
}

根据条件过滤后,我们将只保留第一项:

{
    "io_id":12345,
    "items":[
        {"qty":10,"warehouse":"恩比仓主仓"}
    ]
}

接下来,我们可以将这些清洗后的数据转换为目标系统所需的格式,并写入星辰系统中的盘盈单。

总结

通过轻易云数据集成平台调用聚水潭接口并进行初步的数据清洗,是实现不同系统间无缝对接的重要步骤。本文详细介绍了如何配置元数据、发送请求、清洗和转换数据,为后续的数据处理奠定了坚实基础。在实际操作中,通过灵活应用这些技术,可以极大提升业务流程的效率和透明度。 用友BIP接口开发配置

使用轻易云数据集成平台将聚水潭盘点单转换为金蝶云星辰盘盈单

在数据集成的过程中,ETL(提取、转换、加载)是至关重要的一环。本文将详细介绍如何利用轻易云数据集成平台,将聚水潭的盘点单数据转换为金蝶云星辰V2 API接口所能接收的格式,并最终写入目标平台。

数据请求与清洗

在进行ETL之前,首先需要从源系统聚水潭中提取盘点单数据,并对其进行清洗和预处理。这一步骤确保了数据的准确性和一致性,为后续的转换和写入打下基础。

数据转换与写入

接下来,我们重点讨论如何将已经清洗好的数据通过ETL过程,转换为金蝶云星辰V2 API接口所能接收的格式,并写入目标平台。

元数据配置解析

根据提供的元数据配置,我们需要将聚水潭盘点单的数据字段映射到金蝶云星辰盘盈单API所需的字段。以下是具体的字段映射关系:

  • bill_date(单据日期):对应聚水潭中的io_date
  • bill_no(单据编码):对应聚水潭中的io_id
  • trans_type_id(业务类型id):固定值为14
  • operation_key(操作类型):固定值为audit
  • remark(备注):对应聚水潭中的remark
  • material_entity(商品分录):这是一个数组,包含多个商品分录,每个分录包括以下字段:
    • material_id(商品):通过SKU ID查找对应的商品ID
    • qty(数量):对应聚水潭中的数量
    • unit_id(单位):固定值为4
    • stock_id(仓库):通过仓库名称查找对应的仓库ID
    • cost(入库成本)
    • unit_cost(入库单位成本)
示例代码

以下是一个示例代码片段,展示如何使用轻易云数据集成平台将这些字段进行映射和转换:

{
    "api": "/jdy/v2/scm/inv_check_gail_bill",
    "effect": "EXECUTE",
    "method": "POST",
    "number": "id",
    "id": "id",
    "name": "id",
    "idCheck": true,
    "request": [
        {
            "field": "bill_date",
            "label": "单据日期",
            "type": "string",
            "describe": "单据日期",
            "value": "{io_date}"
        },
        {
            "field": "bill_no",
            "label": "单据编码",
            "type": "string",
            "describe": "单据编码",
            "value": "{io_id}"
        },
        {
            "field": "trans_type_id",
            "label": "业务类型id",
            "type": "string",
            "value": 14
        },
        {
            "field": "operation_key",
            "label": "操作类型",
            "type": "string",
            "describe": "",
数据加载

在完成上述字段映射和转换之后,我们需要将这些转换后的数据通过API接口POST请求发送到金蝶云星辰V2平台。具体实现如下:

{
    ...
    {
        {
          ...
          {
              ...
              {
                  ...
                  {
                      ...
                      {
                          ...
                          {
                              ...
                              {
                                  ...
                                  {
                                      ...
                                      {
                                          ...
                                          {
                                              ...
                                              {
                                                  ...
                                                  }
                                              ]
                                          }
                                      ]
                                  }
                              ]
                          }
                      ]
                  }
              ]
          }
      ]
}

实际应用案例

假设我们从聚水潭提取到一条盘点单记录,其内容如下:

{
    io_date: '2023-10-01',
    io_id: 'PD202310010001',
    remark: '月度盘点',
    items: [
        { sku_id: 'SKU123', qty: 100, warehouse: '主仓库' },
        { sku_id: 'SKU456', qty: 200, warehouse: '次仓库' }
    ]
}

经过ETL过程,该记录被转换为金蝶云星辰API所需的格式,并发送POST请求:


{
    api: "/jdy/v2/scm/inv_check_gail_bill",
    effect: EXECUTE,
    method: POST,
    number: id,
    id: id,
    name: id,
    idCheck: true,
    request: [
        { field: bill_date, label: 单据日期, type: string, describe: 单据日期, value: '2023-10-01' },
        { field: bill_no, label: 单据编码, type: string, describe: 单据编码, value:'PD202310010001' },
        { field: trans_type_id, label: 业务类型id, type:string,value:'14'},
        { field:"operation_key", label:"操作类型", type:"string", describe:"操作类型,审核audit、提交submit", value:"audit"},
        { field:"remark", label:"备注", type:"string", value:"月度盘点"},
        { 
          field:"material_entity", 
          label:"商品分录", 
          type:"array", 
          describe:"商品分录", 
          value:[
             {"material_id":"_findCollection find id from a481458e-26be-330f-a8ab-69c01d1837e1 where number='SKU123'", 
              qty:'100', 
              unit_id:'4', 
              stock_id:'_findCollection find id from 6346526e-1f90-33cf-8c77-05d1fc7d9134 where name='主仓库''},
             {"material_id":"_findCollection find id from a481458e-26be-330f-a8ab-69c01d1837e1 where number='SKU456'", 
              qty:'200', 
              unit_id:'4', 
              stock_id:'_findCollection find id from 6346526e-1f90-33cf-8c77-05d1fc7d9134 where name='次仓库''}
          ]  
       }  
     ]  
}
![金蝶与外部系统打通接口](https://pic.qeasy.cloud/T1.png~tplv-syqr462i7n-qeasy.image)
更多系统对接方案