数据转换与集成:从旺店通到金蝶云

  • 轻易云集成顾问-吴伟

旺店通·旗舰奇门数据集成到金蝶云星空:系统对接实战案例

在企业管理中,如何高效、准确地实现不同系统间的无缝数据对接一直是技术团队的重要课题。本次我们将探讨一个实际运行的方案:“19 旺店通其他入库到金蝶云其他入库”。此项目旨在通过轻易云平台,实现旺店通·旗舰奇门的数据快速而精确地写入到金蝶云星空,从而提高业务效率。

确保集成数据不漏单

使用API接口wdt.wms.stockin.other.querywithdetail从旺店通·旗舰奇门获取其他入库的数据时,我们采用定时可靠抓取机制,通过精确设定抓取频率,确保每一笔数据都能成功获取和处理。实时监控和日志记录功能为这一过程提供了双重保障,使得任何异常情况都能被及时发现并解决。

处理分页与限流问题

由于旺店通·旗舰奇门接口可能存在分页和限流限制,在调用wdt.wms.stockin.other.querywithdetail接口时,我们设计了一套完善的分页处理策略,并结合限流控制机制,在保持高效数据拉取的同时避免触发API访问限制。这大大提升了系统稳定性和响应速度。

数据格式转换与映射挑战

从旺店通提取的数据格式复杂多样,而金蝶云星空要求统一规范的数据输入格式。为此,我们引入了一套灵活且强大的自定义映射模块,能够根据不同字段类型和业务规则进行精准转化。同时,通过批量集成方式,将大量处理后的数据利用batchSave API 快速写入金蝶云星空,有效减少了传输时间,提高了整体效率。

异常处理与错误重试机制

任何系统对接都会出现意外情况,为保证流程不中断,本次方案特别设计了针对各种异常情况的应急预案。当API调用失败或者返回错误信息时,自动启动错误重试机制,并记录详细日志供后续分析。这种稳健的异常处理策略,大幅度降低了因网络波动或临时故障带来的风险。

通过上述方法,我们成功实现了“19 旺店通其他入库到金蝶云其他入库”任务,不仅确保每笔数据完整无缺,还显著提升了整个业务链条上的操作透明度及执行效率。在下文中,我们将进一步深入剖析具体实施步骤及代码示例,让您更直观地了解这一集成过程。

企业微信与OA系统接口开发配置

调用旺店通·旗舰奇门接口获取并加工数据

在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用旺店通·旗舰奇门接口wdt.wms.stockin.other.querywithdetail,并对获取的数据进行初步加工。

接口调用配置

首先,我们需要配置接口调用的元数据。根据提供的元数据配置,我们可以看到该接口使用POST方法,并且包含分页参数和业务参数两大类请求字段。

{
  "api": "wdt.wms.stockin.other.querywithdetail",
  "method": "POST",
  "number": "order_no",
  "id": "stockin_id",
  "idCheck": true,
  "request": [
    {
      "field": "pager",
      "label": "分页参数",
      "type": "object",
      "children": [
        {
          "field": "page_size",
          "label": "分页大小",
          "type": "string",
          "value": "50",
          "parent": "pager"
        },
        {
          "field": "page_no",
          "label": "页号",
          "type": "string",
          "value": "1",
          "parent": "pager"
        }
      ]
    },
    {
      "field": "params",
      "label": "业务参数",
      "type": "object",
      ...
    }
  ],
  ...
}

分页参数设置

分页参数用于控制每次请求返回的数据量和当前请求的页码。这里我们设置了每页返回50条记录,并从第一页开始请求:

{
  field: 'pager',
  label: '分页参数',
  type: 'object',
  children: [
    { field: 'page_size', label: '分页大小', type: 'string', value: '50', parent: 'pager' },
    { field: 'page_no', label: '页号', type: 'string', value: '1', parent: 'pager' }
  ]
}

业务参数设置

业务参数主要包括时间范围、入库单状态和仓库编号等信息。这些参数用于过滤和查询特定条件下的入库单数据:

{
  field: 'params',
  label: '业务参数',
  type: 'object',
  children: [
    { field: 'start_time', label: '开始时间', type: 'string', describe: '仓库编号', value: '{{LAST_SYNC_TIME|datetime}}', parent: 'params' },
    { field: 'end_time', label: '结束时间', type: 'string', describe: '入库单号', value: '{{CURRENT_TIME|datetime}}', parent: 'params' },
    { field: 'status', label: '入库单状态', type: 'string', describe: '', value: '80', parent:'params' },
    { field:'warehouse_no','label':'仓库编号','type':'string','describe':'','parent':'params'},
    ...
  ]
}

数据请求与清洗

在完成接口调用配置后,我们可以通过轻易云平台发起请求,获取原始数据。由于该平台支持全异步操作,可以有效提高数据处理效率。

获取到的数据通常是未经清洗的原始数据,需要进行初步加工。例如,我们可能需要过滤掉某些不符合条件的数据,或者对某些字段进行格式转换。

以下是一个简单的数据清洗示例:

def clean_data(raw_data):
    cleaned_data = []
    for record in raw_data:
        if record['status'] == '80': # 筛选状态为80的记录
            cleaned_record = {
                # 提取并重命名必要字段
                'order_number': record['order_no'],
                ...
            }
            cleaned_data.append(cleaned_record)
    return cleaned_data

数据转换与写入

在完成初步清洗后,下一步是将数据转换为目标系统所需的格式,并写入目标系统。这一步通常涉及字段映射、格式转换等操作。

例如,将清洗后的数据写入金蝶云其他入库模块:

def transform_and_write(cleaned_data):
    transformed_data = []
    for record in cleaned_data:
        transformed_record = {
            # 转换为金蝶云所需格式
            ...
        }
        transformed_data.append(transformed_record)

    # 调用金蝶云API写入数据
    write_to_kingdee(transformed_data)

通过以上步骤,我们完成了从调用源系统接口到初步加工数据的全过程。这一过程不仅确保了数据的准确性和完整性,也为后续的数据转换与写入奠定了基础。 企业微信与OA系统接口开发配置

使用轻易云数据集成平台将源平台数据转换并写入金蝶云星空API接口的技术案例

在数据集成生命周期的第二步中,我们需要将已经集成的源平台数据进行ETL(提取、转换、加载)转换,最终写入目标平台——金蝶云星空API接口。以下是具体的技术实现过程。

1. API接口配置

我们使用金蝶云星空的batchSave API接口,通过POST方法将数据写入目标系统。以下是该接口的基本配置:

{
  "api": "batchSave",
  "method": "POST",
  "idCheck": true,
  "operation": {
    "rowsKey": "array",
    "rows": 1,
    "method": "batchArraySave"
  },
  "request": [
    {"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"{order_no}"},
    {"field":"FBillType","label":"单据类型","type":"string","describe":"单据类型","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"QTRKD01_SYS"},
    {"field":"FStockOrgId","label":"库存组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"106"},
    {"field":"F_KD_Assistant","label":"其他入库类型","type":"string","value":"QTRKLX012","parser":{"name":"ConvertObjectParser","params":"FNumber"}},
    {"field":"FStockDirect","label":"库存方向","type":"string","value":"GENERAL"},
    {"field":"FDate","label":"日期","type":"string","describe":"日期","value":"{{stockin_time|dateTime}}"},
    {"field":"FOwnerTypeIdHead","label":"货主类型","type":"string","describe":"多类别基础资料列表","value":"BD_OwnerOrg"},
    {"field":"FOwnerIdHead","label":"货主","type":"","describe":"","parser":{"name":"","params":""},"value":""},
    ...
  ],
  ...
}

2. 数据字段映射与转换

为了确保数据能够被金蝶云星空正确接收,我们需要对源平台的数据字段进行映射和转换。以下是关键字段的映射和转换逻辑:

  • 单据编号 (FBillNo): 从源平台获取订单号 {order_no}
  • 单据类型 (FBillType): 固定值 QTRKD01_SYS,通过 ConvertObjectParser 转换为目标系统所需格式。
  • 库存组织 (FStockOrgId): 固定值 106,通过 ConvertObjectParser 转换。
  • 其他入库类型 (F_KD_Assistant): 固定值 QTRKLX012,通过 ConvertObjectParser 转换。
  • 日期 (FDate): 使用模板引擎将 stockin_time 字段格式化为目标系统所需的日期时间格式。
  • 货主类型 (FOwnerTypeIdHead): 固定值 BD_OwnerOrg

3. 明细信息处理

明细信息部分需要特别注意,因为它包含了多个子字段,每个子字段都需要进行相应的映射和转换:

{
  "field": "FEntity",
  "label": "明细信息",
  "type": "array",
  "children": [
    {
      "field": "FMATERIALID",
      "label": "物料编码",
      "type": "string",
      ...
      "value": "{{detail_list.spec_no}}"
    },
    {
      ...
      ...
      ...
      }
   ]
}

在这个配置中,我们使用了模板引擎来动态生成每个明细项的数据。例如:

  • 物料编码 (FMATERIALID): 从 detail_list.spec_no 获取并转换为目标系统格式。
  • 收货仓库 (FSTOCKID): 使用 _findCollection 方法从指定集合中查找对应仓库编号。
  • 实收数量 (FQty): 从 detail_list.goods_count 获取实际收货数量。
  • 备注 (FEntryNote): 动态生成备注信息,包括预入库转其他入库备注和日期时间。

4. 提交与审核

在所有数据字段完成映射和转换后,我们需要将这些数据提交到金蝶云星空,并执行自动提交和审核操作:

{
  ...
  ,
  {
    "field": "IsAutoSubmitAndAudit",
    ...
    ,
    ...
    ,
    ...
}

这个配置项确保了数据在提交后会自动进行审核,减少了人工干预,提高了效率。

总结

通过以上步骤,我们成功地将源平台的数据进行了ETL转换,并通过轻易云数据集成平台写入到了金蝶云星空API接口中。整个过程涵盖了数据字段的映射、转换以及最终的数据提交与审核,确保了数据的一致性和准确性。 金蝶与WMS系统接口开发配置

更多系统对接方案