数据集成:将旺店通出库单数据写入金蝶云星空API的实施方案

  • 轻易云集成顾问-贺强

旺店通·企业奇门数据集成到金蝶云星空:旺店通其他出库单委外同步案例解析

在本技术案例中,将重点介绍如何通过轻易云数据集成平台实现“旺店通·企业奇门”与“金蝶云星空”之间的数据对接,具体方案名称为“旺店通其他出库单委外同步”。本文将深入探讨API接口的调用、分页和限流处理、数据格式差异应对以及异常处理等关键技术细节,确保数据高可靠性和完整性。

首先,我们来讨论如何保证从“旺店通·企业奇门”获取的库存出库单数据信息在传输过程中不漏单,并准确写入到“金蝶云星空”。核心方法是定时且可靠地抓取wdt.stockout.order.query接口中的数据,并结合批量操作快速写入至金蝶云星空对应的存储结构。此过程中,需要考虑的不仅仅是接口调用本身,同时还需有效应对接口返回的大量分页数据及其限流规则。

其次,在实际操作中,经常会遇到两系统间的数据格式存在显著差异的问题。在该方案下,通过定制化的数据映射策略实现了这两个系统间的数据转换。例如,从wdt.stockout.order.query接口获取的JSON格式信息需要被转化为适合于金蝶云星空API batchSave所接受的XML或另一种JSON格式,这要求我们详细分析并掌握这两个API各自的数据结构特点。

此外,在实时监控与日志记录方面,该案例提供了一套详尽的方法论,能随时追踪每个步骤中的执行状态。这不仅帮助及时发现潜在问题,还保障整个流程的透明度和可审计性。同时,对于可能发生的网络连接失败或异常错误,也搭建了完善重试机制,以提高整体系统健壮性与容错能力。

通过以上几个关键环节,本案展示了如何利用现代化的平台工具灵活、高效地完成跨平台、跨系统的数据集成任务。从而满足业务需求,提高作业效率,实现精细管理。 用友与SCM系统接口开发配置

调用旺店通·企业奇门接口wdt.stockout.order.query获取并加工数据

在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将深入探讨如何通过轻易云数据集成平台调用旺店通·企业奇门接口wdt.stockout.order.query来获取并加工数据。

接口概述

接口wdt.stockout.order.query用于查询出库单信息。我们将通过POST请求方式调用该接口,并根据特定的业务需求进行数据过滤和分页处理。

元数据配置解析

元数据配置是实现接口调用和数据处理的关键。以下是具体的元数据配置解析:

{
  "api": "wdt.stockout.order.query",
  "method": "POST",
  "number": "order_no",
  "id": "stockout_id",
  "pagination": {
    "pageSize": 30
  },
  "idCheck": true,
  "request": [
    {"field": "start_time", "label": "开始时间", "type": "string", "value": "{{LAST_SYNC_TIME|datetime}}"},
    {"field": "end_time", "label": "结束时间", "type": "string", "value": "{{CURRENT_TIME|datetime}}"},
    {"field": "order_type", "label": "出库单类型", "type": "string", "value":"13"},
    {"field": "status", "label":"出库单状态","type":"string"},
    {"field":"warehouse_no","label":"仓库编号","type":"string"},
    {"field":"src_order_no","label":"源单号","type":"string"},
    {"field":"stockout_no","label":"出库单号","type":"string"}
  ],
  ...
}

请求参数详解

  1. 时间参数

    • start_timeend_time 分别表示查询的开始时间和结束时间,使用动态变量{{LAST_SYNC_TIME|datetime}}{{CURRENT_TIME|datetime}}来自动填充。
  2. 出库单类型

    • order_type 固定为"13",表示特定类型的出库单。
  3. 可选过滤条件

    • status, warehouse_no, src_order_no, stockout_no 等字段可以根据业务需求进行过滤。
  4. 分页参数

    • page_sizepage_no 用于控制分页,每次请求返回30条记录。

数据请求与清洗

在实际操作中,我们首先需要构建请求报文,根据元数据配置中的字段和条件,生成符合API要求的请求体。例如:

{
  "start_time": "{{LAST_SYNC_TIME|datetime}}",
  "end_time": "{{CURRENT_TIME|datetime}}",
  ...
}

通过轻易云平台,可以自动化生成并发送此请求,获取原始数据后进行清洗。清洗过程包括但不限于:

  • 字段映射:将API返回的数据字段映射到目标系统所需的字段。
  • 格式转换:例如日期格式、数值格式等转换。
  • 数据过滤:根据业务规则过滤不需要的数据,例如剔除操作员名称为“外部接口”的记录。

数据转换与写入

在完成数据清洗后,下一步是将数据转换为目标系统所需的格式,并写入目标数据库或系统。这一步通常涉及复杂的数据转换逻辑,例如:

  • 合并多个字段
  • 根据业务规则计算新的字段值
  • 数据去重和一致性校验

通过轻易云平台,可以利用其内置的数据转换工具,实现上述复杂逻辑,并确保高效、准确地将数据写入目标系统。

实时监控与错误处理

在整个过程中,实时监控和错误处理也是不可忽视的部分。轻易云平台提供了全面的监控功能,可以实时跟踪每个步骤的数据流动和处理状态。一旦出现错误,可以快速定位并解决问题,确保数据集成过程顺利进行。

综上所述,通过合理配置元数据并利用轻易云平台强大的功能,我们可以高效地调用旺店通·企业奇门接口获取并加工出库单数据,为后续的数据集成奠定坚实基础。 如何对接用友BIP接口

数据集成案例:将旺店通出库单数据转换并写入金蝶云星空API

在数据集成生命周期的第二步中,我们需要将已经集成的源平台数据进行ETL转换,转为目标平台金蝶云星空API接口所能够接收的格式,并最终写入目标平台。本文将详细探讨如何利用元数据配置完成这一过程。

API接口配置

我们使用金蝶云星空的batchSave API接口进行数据写入操作。该接口采用POST请求方式,支持批量保存功能。以下是元数据配置的详细说明:

{
  "api": "batchSave",
  "method": "POST",
  "idCheck": true,
  "operation": {
    "rowsKey": "array",
    "rows": 10,
    "method": "batchArraySave"
  },
  "request": [
    {"field":"FBillNo","label":"单据编号","type":"string","value":"{order_no}-TC"},
    {"field":"FBillTypeID","label":"单据类型","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"QTCKD01_SYS"},
    {"field":"FStockOrgId","label":"库存组织","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"106"},
    {"field":"FPickOrgId","label":"领用组织","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"106"},
    {"field":"FDate","label":"日期","type":"string","value":"{consign_time}"},
    {"field":"FDeptId","label":"领料部门","type":"string","describe":"基础资料","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"BM000002"},
    {"field":"FNote","label":"备注","type":"string","value":"{remark}"},
    {
      "field": "FEntity",
      "label": "明细信息",
      "type": "array",
      "children": [
        {"field": "FMaterialId", "label": "物料编码", "type": "string", "parser":{"name": "ConvertObjectParser", "params": "FNumber"}, "value": "{{details_list.spec_no}}", "parent": "FEntity"},
        {"field": "FCMKBarCode", "label": "零售条形码", "type": "string", "parent": "FEntity"},
        {"field": "FQty", "label": "实发数量", "type": "string",    "value": "{{details_list.goods_count}}",    "parent":   "FEntity"},
        {"field":   "FStockId", "label":    "发货仓库", "type": "string",   "parser":{"name":
            "ConvertObjectParser",  "params":
            "FNumber"}, "value":
            "{warehouse_no}",   "parent":
            "   FEntity"},
        {"field":
            "   FPrice",
            "   label":
            "成本价",
            "type":
            "   string",
            "parent":
            "   FEntity"
        },
        {
            field:

         FEntryNote
         label
         备注
         type
         string
         parent
         FEntity
       }
     ],
     value: details_list
   }
 ],
 otherRequest: [
   { field: FormId, label: 业务对象表单Id, type: string, value: STK_MisDelivery },
   { field: IsAutoSubmitAndAudit, label: 提交并审核, type: bool, value: true },
   { field: IsVerifyBaseDataField, label: 验证基础资料, type: bool, value: true },
   { field: Operation, label: 执行的操作, type: string, value: Save }
 ]
}

数据字段解析与转换

  1. 单据编号(FBillNo)

    • 类型:字符串
    • 值:通过拼接订单号和后缀-TC生成,例如 {order_no}-TC
  2. 单据类型(FBillTypeID)

    • 类型:字符串
    • 值:固定值 QTCKD01_SYS,通过 ConvertObjectParser 转换为目标系统可识别的格式。
  3. 库存组织(FStockOrgId)领用组织(FPickOrgId)

    • 类型:字符串
    • 值:固定值 106,同样通过 ConvertObjectParser 转换。
  4. 日期(FDate)

    • 类型:字符串
    • 值:直接映射源数据中的 consign_time 字段。
  5. 领料部门(FDeptId)

    • 类型:字符串
    • 值:固定值 BM000002,通过 ConvertObjectParser 转换。
  6. 备注(FNote)

    • 类型:字符串
    • 值:直接映射源数据中的 remark 字段。
  7. 明细信息(FEntity)

    • 类型:数组,每个子项包含以下字段:
      • 物料编码(FMaterialId):通过 details_list.spec_no 映射,并使用 ConvertObjectParser 转换。
      • 零售条形码(FCMKBarCode):直接映射。
      • 实发数量(FQty):通过 details_list.goods_count 映射。
      • 发货仓库(FStockId):通过 {warehouse_no} 映射,并使用 ConvertObjectParser 转换。
      • 成本价(FPrice)备注(FEntryNote):直接映射。

执行操作与其他请求参数

  • 表单ID (FormId) 固定为 STK_MisDelivery
  • 自动提交并审核 (IsAutoSubmitAndAudit) 设置为 true
  • 验证基础资料 (IsVerifyBaseDataField) 设置为 true
  • 操作类型 (Operation) 固定为 Save

实际应用案例

假设我们有一条源数据记录如下:

{
  order_no: 'OD123456',
  consign_time: '2023-09-15',
  remark: 'Urgent delivery',
  details_list: [
    {
      spec_no: 'SP001',
      goods_count: '10'
    }
  ],
  warehouse_no: 'WH001'
}

经过上述配置和转换后,生成的目标平台请求体如下:

{
  FBillNo: 'OD123456-TC',
  FBillTypeID: { FNumber: 'QTCKD01_SYS' },
  FStockOrgId: { FNumber: '106' },
  FPickOrgId:{ FNumber:'106'},
  FDate:'2023-09-15',
  FDeptId:{ FNumber:'BM000002'},
  FNote:'Urgent delivery',
  FEntity:[
    {
      FMaterialId:{ FNumber:'SP001'},
      FCMKBarCode:'',
      FQty:'10',
      FStockId:{ FNumber:'WH001'},
      FPrice:'',
      FEntryNote:''
    }
  ],
 FormId:'STK_MisDelivery',
 IsAutoSubmitAndAudit:true,
 IsVerifyBaseDataField:true,
 Operation:'Save'
}

以上内容展示了如何利用元数据配置,将旺店通出库单的数据转换为金蝶云星空API接口所需格式,并成功写入目标平台。这种高效、透明的数据处理流程,不仅提升了业务效率,还确保了数据的一致性和准确性。 钉钉与MES系统接口开发配置

更多系统对接方案