使用轻易云平台实现跨境电商数据ETL与金蝶云星空对接

  • 轻易云集成顾问-蔡威

二期-旺店通跨境其他入库单&星空其他入库单---11 案例分享

在系统集成项目中,快速实现数据的无缝对接是业务流程优化的一大关键。本案例详细讲解如何将旺店通·跨境版的数据高效、准确地集成到金蝶云星空,实现两大系统间的协同运作。

一、确保数据完整性的关键:API 调用设置及分页与限流处理

为了确保所有需要的数据不漏单,我们首先要通过调用旺店通·跨境版提供的接口 /api/openservices/stock/v1/getStockInOrderDetails 来获取库存入库单信息。此接口支持分页查询,通过合理设置分页参数,可以有效解决限流问题并确保完整性。例如,当我们每次请求200条记录时,我们要不断调整起始查询位置直到全部数据拉取完成。

def fetch_wangdiantong_data(api_url, headers, start_page=1):
    data_collected = []
    while True:
        response = requests.get(api_url, params={'page': start_page}, headers=headers)
        if response.status_code != 200 or not response.json()['data']:
            break
        data_collected.extend(response.json()['data'])
        start_page += 1
    return data_collected

二、大量数据快速写入金蝶云星空:批量操作和错误重试机制

从旺店通·跨境版获取到大量库存入库单后,为提升效率,我们可以使用金蝶云星空提供的 batchSave 接口进行批量写入。在实际操作中,需要注意的是,在网络波动或服务故障情况下如何可靠地进行错误重试,以保障数据一致性和成功率。

def batch_save_to_kingdee(data_batches):
    for batch in data_batches:
        try:
            response = requests.post('https://kingdee.api.url/batchSave', json=batch)
            if response.status_code != 200:
                log_error(response.content) # 持久化存储便于追踪失败原因,并手动或自动重试。
                continue 
        except Exception as e:  
            log_error(str(e)) # 网络异常等情况导致请求失败,也需捕获日志以便后续诊断。

三、定制化标准映射和实时监控:保证过程透明与可控

由于两个系统的数据格式可能存在差异,因此我们需要针对特定字段做定制化映射。同时引入实时监控与日志记录,使得整个过程清晰透明。当出现异常情况时,可以通过分析详细日志迅速定位并解决问题,从而避免业务停滞。

这里展示一个简单的映射函数示例:

def map
![金蝶与MES系统接口开发配置](https://pic.qeasy.cloud/D27.png~tplv-syqr462i7n-qeasy.image)
### 调用旺店通·跨境版接口获取并加工数据的技术案例

在数据集成的生命周期中,调用源系统接口是关键的第一步。本文将深入探讨如何通过轻易云数据集成平台调用旺店通·跨境版的接口`/api/openservices/stock/v1/getStockInOrderDetails`来获取并加工数据。

#### 接口调用配置

该接口主要用于查询入库单详情。以下是元数据配置中的关键字段和参数:

- **请求方法**:POST
- **API路径**:`/api/openservices/stock/v1/getStockInOrderDetails`
- **请求参数**:
  - `stockin_no_list`:入库单号列表(字符串类型)
  - `order_status`:入库单状态,固定值为"80"(已完成)
  - `src_order_type`:业务类型,固定值为"6"(其他入库)
  - `spec_no`:SKU编码(字符串类型)
  - `start_time`:起始时间,动态值为上次同步时间
  - `end_time`:结束时间,动态值为当前时间
  - `status`:时间状态,固定值为"1"(按创建时间)

此外,还有分页参数:
- `pageNo`:当前页码,初始值为1
- `pageSize`:分页大小,根据需求设置

#### 数据请求与清洗

在实际操作中,我们首先需要构建一个有效的请求体。以下是一个示例请求体:

```json
{
    "stockin_no_list": ["123456"],
    "order_status": "80",
    "src_order_type": "6",
    "spec_no": "",
    "start_time": "{{LAST_SYNC_TIME|datetime}}",
    "end_time": "{{CURRENT_TIME|datetime}}",
    "status": "1",
    "pageNo": "_function {PAGINATION_START_PAGE}+1",
    "pageSize": "{PAGINATION_PAGE_SIZE}"
}

在这个请求体中,我们使用了动态变量来填充起始时间和结束时间,以确保每次请求的数据都是最新的。

数据转换与写入

一旦我们成功获取到数据,需要对其进行清洗和转换,以便后续处理。轻易云平台提供了自动填充响应的功能,这意味着我们可以直接将响应的数据映射到目标系统所需的格式。

例如,假设我们获取到的响应数据如下:

{
    "data": [
        {
            "stockin_no": "123456",
            "order_status": "80",
            "src_order_type": "6",
            "spec_no": "SKU12345",
            "create_time": "2023-10-01T12:00:00Z"
        }
    ],
    "pagination": {
        "total_count": 100,
        "page_size": 10,
        "current_page": 1
    }
}

我们可以通过轻易云平台将这些字段映射到目标系统所需的字段。例如,将stockin_no映射到目标系统中的入库单号,将create_time映射到创建时间等。

实时监控与错误处理

在整个过程中,实时监控和错误处理至关重要。轻易云平台提供了详细的日志记录和错误报告功能,可以帮助我们及时发现并解决问题。例如,如果某个请求失败,我们可以通过日志查看具体的错误信息,并进行相应的调整。

总结

通过上述步骤,我们可以高效地调用旺店通·跨境版接口获取入库单详情,并对数据进行清洗和转换。这不仅提高了数据处理的效率,还确保了数据的一致性和准确性。在实际操作中,根据具体需求调整配置参数,可以实现更灵活的数据集成方案。 金蝶与CRM系统接口开发配置

利用轻易云数据集成平台实现金蝶云星空API接口的数据ETL转换

在数据集成的生命周期中,第二步至关重要,即将已经集成的源平台数据进行ETL(提取、转换、加载)转换,并转为目标平台金蝶云星空API接口所能够接收的格式,最终写入目标平台。本文将详细探讨这一过程中的技术细节和实现方法。

1. API接口配置

在进行数据转换之前,首先需要配置好金蝶云星空的API接口。本文使用的是batchSave接口,该接口支持批量保存操作。以下是该接口的主要配置项:

  • API名称: batchSave
  • 请求方法: POST
  • 是否检查ID: true
  • 业务对象表单ID: STK_MISCELLANEOUS
  • 提交并审核: true

2. 请求参数配置

请求参数是API调用的核心部分,需要根据金蝶云星空的要求进行精确配置。以下是关键字段及其配置说明:

  • 单据编号 (FBillNo)

    • 类型:字符串
    • 来源:{stockinNo}
  • 单据类型 (FBillTypeID)

    • 类型:字符串
    • 固定值:QTRKD01_SYS
    • 解析器:ConvertObjectParser,参数为FNumber
  • 库存组织 (FStockOrgId)

    • 类型:字符串
    • 来源:{warehouseNo}
    • 映射目标:64e841cc245ee840e93c54dc
  • 库存方向 (FStockDirect)

    • 类型:字符串
    • 固定值:GENERAL
  • 日期 (FDate)

    • 类型:字符串
    • 来源:{checkTime}
  • 货主类型 (FOwnerTypeIdHead)

    • 类型:字符串
    • 固定值:BD_OwnerOrg
  • 货主 (FOwnerIdHead)

    • 类型:字符串
    • 来源:{warehouseNo}
    • 映射目标:64e841cc245ee840e93c54dc
  • 部门 (FDEPTID)

    • 类型:字符串
    • 固定值:BM000002

3. 明细信息配置

明细信息是整个请求体中最复杂的一部分,需要逐条配置每个字段。以下是主要字段及其配置说明:

  • 物料编码 (FMATERIALID)

    • 类型:字符串
    • 来源:{{stockInOrderDetailsVOList.specNo}}
  • 收货仓库 (FSTOCKID)

    • 类型:字符串
    • 来源:{warehouseNo}
  • 实收数量 (FQty)

    • 类型:字符串
    • 来源:{{stockInOrderDetailsVOList.num}}
  • 旺店通成本价 (FPrice)

    • 类型:字符串
    • 来源:{{stockInOrderDetailsVOList.costPrice}}
  • 含税单价 (F_ZMKJ_Price)

    • 类型:字符串
    • 来源:{{stockInOrderDetailsVOList.costPrice}}

4. 操作设置

为了确保数据能够正确写入金蝶云星空,还需要进行一些操作设置:

  • 验证基础资料有效性: 设置为 true
  • 执行操作: 设置为 Save

这些设置确保了在数据写入前会对基础资料进行验证,并且在数据写入后会自动提交并审核。

实际案例应用

在实际应用中,我们通常会从源系统(如旺店通跨境其他入库单)提取数据,然后通过轻易云数据集成平台进行清洗和转换,最终调用上述配置好的API,将数据写入到金蝶云星空系统中。

例如,一个典型的JSON请求体可能如下所示:

{
    "FormId": "STK_MISCELLANEOUS",
    "IsVerifyBaseDataField": true,
    "Operation": "Save",
    "IsAutoSubmitAndAudit": true,
    "Model": {
        "FBillNo": "20231001",
        "FBillTypeID": {"FNumber": "QTRKD01_SYS"},
        "FStockOrgId": {"FNumber": "ORG001"},
        ...
        "FEntity": [
            {
                "FMATERIALID": {"FNumber": "MAT001"},
                ...
            }
        ]
    }
}

通过这种方式,我们可以高效地将源系统的数据转换并加载到目标系统中,实现不同系统间的数据无缝对接。 如何对接用友BIP接口

更多系统对接方案