销售出库单无缝集成:轻易云平台实战分享

  • 轻易云集成顾问-吕修远

领星ERP数据集成到金蝶云星空:实战案例分享

在本技术案例中,我们将探讨如何高效地将领星ERP系统中的销售出库单自发货数据集成到金蝶云星空平台。通过使用轻易云数据集成平台,我们实现了一个定时可靠、批量处理的解决方案,以确保数据流动的精准和实时性。本次方案命名为“领星销售出库单=>金蝶销售出库单(自发货)”。

首先,通过调用领星ERP接口/erp/sc/routing/wms/order/wmsOrderList,我们能够定时抓取最新的销售信息。在这过程中,我们特别注意了分页和限流问题,确保每次请求的数据量恰当,同时防止因频繁请求造成接口超载。

接下来的关键步骤是大量数据快速写入到金蝶云星空。这一步骤利用了其提供的batchSave API,有效地缩短了大规模数据同步所需时间。同时,为保证多元化业务需求,这里还实现了一套灵活且高效的数据映射机制,将不同格式的数据进行转换与匹配。

在整个对接过程中,不可避免会遇到异常情况。例如,当某一API请求失败时,可以触发错误重试机制。这不仅提高了对接的鲁棒性,也减少了手工干预。同时,在两者之间存在显著差异的数据格式方面,通过编写特定转换脚本来处理,使得数据一致性得到保障,并最终成功对接至目标系统。

最后,所有操作都具备实时监控与日志记录功能,让管理人员可以随时掌握任务执行状态、大致进度以及可能出现的问题,从而极大提升运维效率。这种全透明可视化管理就是轻易云平台最显著的特点之一,但同样重点是实际应用给业务带来的便利。

此次分享旨在通过具体实例展示复杂系统间无缝衔接,实现从源头获取、处理再到目标存储的一整套完整解决方案。关于更多细节及代码实现,请参阅后续部分内容。 如何开发金蝶云星空API接口

调用源系统领星ERP接口/erp/sc/routing/wms/order/wmsOrderList获取并加工数据

在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用领星ERP接口/erp/sc/routing/wms/order/wmsOrderList,并对获取的数据进行初步加工处理。

API接口调用配置

首先,我们需要配置API接口的元数据,以便正确地请求数据。以下是元数据配置的详细信息:

{
  "api": "/erp/sc/routing/wms/order/wmsOrderList",
  "method": "POST",
  "number": "wo_number",
  "id": "wo_id",
  "idCheck": true,
  "request": [
    {"label": "店铺ID", "field": "sid", "type": "int"},
    {"label": "时间查询类型", "field": "time_type", "type": "string", "value": "stock_delivered_at"},
    {"label": "开始日期", "field": "start_date", "type": "string", "value": "{{LAST_SYNC_TIME|date}}"},
    {"label": "结束日期", "field": "end_date", "type": "string", "value": "{{CURRENT_TIME|date}}"},
    {"label": "页数", "field": "page", "type": "string", "value":"1"},
    {"label":"行数","field":"page_size","type":"string","value":"50"},
    {"field":"status_arr","label":"状态","type":"string","value":"3"},
    {"field":"logistics_status_arr","label":"物流状态","type":"string"}
  ]
}

请求参数解析

  • 店铺ID (sid): 用于指定需要查询的店铺。
  • 时间查询类型 (time_type): 固定值为stock_delivered_at,表示按出库时间查询。
  • 开始日期 (start_date)结束日期 (end_date): 分别表示查询的时间范围。这里使用了模板变量{{LAST_SYNC_TIME|date}}{{CURRENT_TIME|date}},确保每次请求都能获取最新的数据。
  • 页数 (page)行数 (page_size): 用于分页请求,默认值分别为1和50。
  • 状态 (status_arr): 固定值为3,表示只查询特定状态的数据。
  • 物流状态 (logistics_status_arr): 可选参数,用于进一步过滤物流状态。

数据请求与清洗

在完成API配置后,我们可以通过轻易云平台发起POST请求以获取数据。以下是一个示例请求体:

{
  "sid": 123,
  "time_type": "stock_delivered_at",
  "start_date": "{{LAST_SYNC_TIME|date}}",
  "end_date": "{{CURRENT_TIME|date}}",
  "page": 1,
  "page_size": 50,
  "status_arr": [3],
  // 可选字段
  // “logistics_status_arr”: [1,2,3]
}

收到响应后,需要对数据进行初步清洗和转换,以便后续处理。常见的数据清洗操作包括:

  1. 字段映射:将API返回的数据字段映射到目标系统所需的字段。例如,将wo_number映射到金蝶系统中的订单编号字段。
  2. 格式转换:确保日期、数字等字段格式符合目标系统要求。
  3. 数据过滤:根据业务需求过滤掉不必要的数据,例如只保留特定状态或物流状态的订单。

数据转换与写入

在完成数据清洗后,下一步是将数据转换为目标系统所需的格式,并写入目标系统。在本案例中,我们需要将领星ERP的销售出库单数据转换并写入金蝶系统。

以下是一个简单的数据转换示例:

{
  // 原始数据
  {
    "_id" : ObjectId("5f4e8b9b7c213e6a6a5d5e8b"),
    ...
    // 清洗后的数据
    {
      ...
      // 映射后的字段
      “orderNumber”: “wo_number”,
      “orderDate”: “stock_delivered_at”,
      ...
    }
}

通过轻易云平台,可以实现自动化的数据转换和写入过程,大大提高了效率和准确性。

实时监控与异常处理

为了确保整个流程顺利进行,需要实时监控数据流动和处理状态。一旦发现异常(如API请求失败、数据格式错误等),应及时记录日志并发送告警通知,以便快速定位问题并解决。

以上就是调用领星ERP接口获取并加工数据的详细技术方案,通过合理配置API元数据、精细化的数据清洗与转换,以及实时监控与异常处理,可以有效提升业务透明度和效率。 泛微OA与ERP系统接口开发配置

使用轻易云数据集成平台进行ETL转换并写入金蝶云星空API接口

在数据集成生命周期的第二步,我们将已经集成的源平台数据进行ETL(Extract, Transform, Load)转换,转为目标平台金蝶云星空API接口所能够接收的格式,最终写入目标平台。本文将详细介绍如何配置和使用这些元数据,以实现这一过程。

配置元数据

我们需要配置一系列字段,这些字段将从源平台的数据中提取,并转换为金蝶云星空API所需的格式。以下是关键字段及其配置方式:

  1. 单据类型(FBillTypeID)

    • 类型:字符串
    • 描述:标准销售出库单
    • 值:XSCKD01_SYS
    • 解析器:ConvertObjectParser
    • 参数:FNumber
  2. 单据编号(FBillNo)

    • 类型:字符串
    • 描述:单据编号
    • 值:{platform_order_no}
  3. 日期(FDate)

    • 类型:字符串
    • 描述:日期
    • 值:{delivered_at}
  4. 发货组织(FStockOrgId)

    • 类型:字符串
    • 描述:组织
    • 解析器:ConvertObjectParser
    • 参数:FNumber
    • 值:107
  5. 销售组织(FSaleOrgId)

    • 类型:字符串
    • 描述:组织
    • 解析器:ConvertObjectParser
    • 参数:FNumber
    • 值:107
  6. 销售部门(FSaleDeptID)

    • 类型:字符串
    • 描述:
      {
      "name": "ConvertObjectParser",
      "params": "FNumber"
      }

      查找条件:

      {
      "content.FName": {"$eq": "{deliverer}"}
      }
  7. 货主类型(FOwnerTypeIdHead)

    • 类型:字符串
    • 描述:货主类型
    • 值:BD_OwnerOrg
  8. 货主(FOwnerIdHead)

    • 类型:字符串
    • 描述:
      {
      "name": "ConvertObjectParser",
      "params": "FNumber"
      }

      值:107

  9. 客户(FCustomerID)

    {
      "field": "FCustomerID",
      "label": "客户",
      "type": "string",
      "describe": "基础资料",
      "parser": {"name":"ConvertObjectParser","params":"FNumber"},
      "value":"{sid}"
    }
  10. 明细信息(FEntity) 明细信息是一个数组,包含多个子字段,如物料编码、实发数量、含税单价等。每个子字段的配置如下:

    {
      "field":"FMaterialID",
      "label":"物料编码",
      "type":"string",
      "describe":"基础资料",
      "parser":{"name":"ConvertObjectParser","params":"FNumber"},
      "value":"{{product_info.sku}}"
    },
    {
      "field":"FRealQty",
      "label":"实发数量",
      "type":"string",
      "describe":"数量",
      "value":"{{product_info.count}}"
    },
    {
      ...
    }
  11. 财务信息(SubHeadEntity) 财务信息是一个对象,包含结算组织、结算币别等子字段。每个子字段的配置如下:

    
    {
      ...
      {
        "field":"FSettleOrgID",
        ...
        ...
        ...
        ...
        ...
        ...
        ...
        ...
        ...
        ...
        ...
        ...
        ...
        ...
        ...
        ...
        ...

#### 数据转换与写入

在完成上述元数据配置后,我们需要通过轻易云的数据处理功能,将源平台的数据按照上述配置进行转换,并调用金蝶云星空的API接口进行写入。

1. **数据请求与清洗**:

2. **数据转换**:

3. **数据写入**:

以下是一个示例代码片段,用于调用金蝶云星空API接口并传递转换后的数据:

```python
import requests

url = 'https://api.kingdee.com/batchSave'
headers = {'Content-Type': 'application/json'}
data = {
  'FormId': 'SAL_OUTSTOCK',
  'Operation': 'Save',
  'IsAutoSubmitAndAudit': False,
  'IsVerifyBaseDataField': True,
  'SubSystemId': '21',
  'InterationFlags': 'STK_InvCheckResult',
  'Model': transformed_data # 转换后的数据对象
}

response = requests.post(url, headers=headers, json=data)
if response.status_code == 200:
  print('Data successfully written to Kingdee Cloud.')
else:
  print('Failed to write data:', response.text)

通过上述步骤,我们可以成功地将源平台的数据经过ETL转换后写入到金蝶云星空系统中。这一过程确保了不同系统间的数据无缝对接,提高了业务流程的自动化和效率。 如何对接金蝶云星空API接口

更多系统对接方案