ETL转换:将数据写入旺店通企业奇门API接口

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

金蝶云星空与旺店通·企业奇门数据集成案例:组装子项出库同步

在现代电商环境中,系统间的数据流转无疑是提升运营效率的关键所在。本次技术分享将聚焦于"组装子项出库同步到旺店通"这一实际应用场景,通过具体的API接口调用和数据处理方法,来展示如何高效、可靠地实现金蝶云星空与旺店通·企业奇门之间的数据集成。

API接口调用及其实现细节

为了确保从金蝶云星空获取到准确且实时的出库数据信息,我们选择使用executeBillQuery API来执行定时抓取操作。该接口能够精确查询指定时间段内生成或变更的订单信息,有效避免了漏单问题。同时,为处理大量数据请求过程中可能出现的分页和限流问题,我们引入了一系列优化措施,包括分批次抓取与合理设置请求频率,以降低系统负载并提高响应速度。

{
  "method": "kingdee.executeBillQuery",
  "params": {
    "billType": "STK_MISC_OUT", 
    "dateRange": {
      "fromDate": "<start_time>",
      "toDate": "<end_time>"
    },
    // Other necessary parameters
  }
}

数据格式转换及写入过程

由于金蝶云星空与旺店通·企业奇门在数据结构上存在差异,在实际对接过程中需要进行有效的数据映射与转换。通过设定自定义规则,将不同字段有机结合,实现了两端系统之间数据的一致性。在完成必要的数据转换后,再通过调用wdt.stockout.order.push API,将整理好的订单信息推送到旺店通平台,实现最终的数据写入。

{
  "method": "wdt.stockout.order.push",
  "params": {
    // Mapped and formatted data fields from Kingdee Cloud Galaxy to Wangdian Tong Enterprise Qimen format.
  }
}

异常处理及重试机制实施方案

考虑到网络波动以及其他不可控因素可能导致API请求失败,本方案特别设计了异常处理逻辑。例如,当一次API调用未能成功时,会启动错误重试机制,并记录相关日志以便后续排查。这一策略不仅提高了整体流程的鲁棒性,也为维护人员提供了详尽的信息支持。

综上所述,通过合理配置API参数、精准数据映射、高效抓取机制,以及健全的异常处理体系,我们如期实现了金蝶云星空至旺店通·企业奇门的数据集成目标,并显著提升业务运作效率。未来章节将详细探讨每一个步骤中的具体实现技术 如何对接金蝶云星空API接口

调用金蝶云星空接口executeBillQuery获取并加工数据

在数据集成的生命周期中,第一步是从源系统获取数据,并进行初步的清洗和加工。本文将详细探讨如何使用轻易云数据集成平台调用金蝶云星空接口executeBillQuery来实现这一过程。

接口调用配置

为了成功调用executeBillQuery接口,我们需要配置一系列参数。这些参数包括请求方法、分页设置、字段映射等。以下是元数据配置的关键部分:

{
  "api": "executeBillQuery",
  "method": "POST",
  "number": "FBillNo",
  "id": "FSubEntity_FDetailID",
  "pagination": {
    "pageSize": 500
  },
  "idCheck": true,
  "request": [
    {"field":"FID","label":"实体主键","type":"string","value":"FID"},
    {"field":"FBillNo","label":"单据编号","type":"string","value":"FBillNo"},
    {"field":"FDocumentStatus","label":"单据状态","type":"string","value":"FDocumentStatus"},
    {"field":"FStockOrgId_FNumber","label":"库存组织","type":"string","value":"FStockOrgId.FNumber"},
    {"field":"FDate","label":"日期","type":"string","value":"FDate"},
    {"field":"FBillTypeID","label":"单据类型","type":"string","value":"FBillTypeID"},
    {"field":"FOwnerTypeIdHead","label":"成品货主类型","type":"string","value":"FOwnerTypeIdHead"},
    {"field":"FOwnerIdHead_FNumber","label":"成品货主","type":"string","value":"FOwnerIdHead.FNumber"},
    {"field":"FAffairType","label":"事务类型","type":"string","value":"FAffairType"},
    {"field":"FEE","label":"费用","type":"string","value":"FEE"},
    {"field":"FDeptID_FNumber","label":"部门","type":"string","value":"FDeptID.FNumber"},
    {"field":"FNote","label":"备注","type":"","value":""},
    {"field":"","label":"","type":"","value":""}
  ],
  "otherRequest": [
    {
      "field": "Limit",
      "label": "最大行数",
      "type": "string",
      "describe": "金蝶的查询分页参数",
      "value": "{PAGINATION_PAGE_SIZE}"
    },
    {
      "field": "StartRow",
      "label": "开始行索引",
      "type": "string",
      "describe": "金蝶的查询分页参数",
      "value": "{PAGINATION_START_ROW}"
    },
    {
      "field": "TopRowCount",
      "label": "",
      ""

数据请求与清洗

在配置好接口参数后,我们可以发起请求以获取数据。以下是一个示例请求体:

{
  "FormId": "STK_AssembledApp",
  "FieldKeys": [
    ...
  ],
  ...
}

通过这种方式,我们可以从金蝶云星空系统中获取所需的数据。接下来,需要对这些数据进行初步清洗和加工。

  1. 过滤条件:我们可以通过设置FilterString来指定过滤条件。例如,过滤掉不符合业务需求的数据:

    {
     ...
     "FilterString": "'FSupplierId.FNumber = 'VEN00010' and FApproveDate>='{{LAST_SYNC_TIME|datetime}}' and FAFFAIRTYPE = 'Assembly' and FStockOrgId.FNumber='102'"
    }
  2. 字段映射:根据业务需求,将源系统中的字段映射到目标系统中。例如,将FBillNo映射为订单编号,将FDate映射为订单日期等。

数据转换与写入

在完成数据清洗后,需要将其转换为目标系统可识别的格式,并写入目标系统。这一步通常涉及到更多的业务逻辑处理,例如单位转换、金额计算等。

{
  ...
}

通过以上步骤,我们可以实现从金蝶云星空系统中获取数据,并进行初步清洗和加工,为后续的数据转换与写入做好准备。

总结

本文详细介绍了如何使用轻易云数据集成平台调用金蝶云星空接口executeBillQuery来获取并加工数据。通过合理配置接口参数、设置过滤条件和字段映射,可以高效地完成数据请求与清洗,为后续的数据处理打下坚实基础。 泛微OA与ERP系统接口开发配置

轻易云数据集成平台ETL转换:将源数据写入旺店通·企业奇门API接口

在使用轻易云数据集成平台进行数据集成的过程中,ETL(Extract, Transform, Load)转换是一个至关重要的步骤。本文将详细探讨如何将已经集成的源平台数据通过ETL转换,最终写入目标平台——旺店通·企业奇门API接口。

元数据配置解析

在进行ETL转换之前,我们需要理解元数据配置。以下是本次集成任务的元数据配置:

{
  "api": "wdt.stockout.order.push",
  "effect": "EXECUTE",
  "method": "POST",
  "idCheck": true,
  "request": [
    {
      "field": "outer_no",
      "label": "外部单号",
      "type": "string",
      "value": "{FBillNo}"
    },
    {
      "field": "warehouse_no",
      "label": "仓库编号",
      "type": "string",
      "value": "{FStockIDSETY_FNumber}"
    },
    {
      "field": "remark",
      "label": "备注",
      "type": "string",
      "value": "组装子项出库"
    },
    {
      "field": "is_check",
      "label": "是否审核",
      "type": "string",
      "value": "1"
    },
    {
      "field": "detail_list",
      ...

数据请求与清洗

首先,我们需要从源系统请求并清洗数据。假设我们从ERP系统中获取了以下原始数据:

{
  FBillNo: 'SO123456',
  FStockIDSETY_FNumber: 'WH001',
  details_list: [
    { FMaterialIDSETY_FNumber: 'P001', FQtySETY: '10' },
    { FMaterialIDSETY_FNumber: 'P002', FQtySETY: '5' }
  ]
}

数据转换

接下来,我们需要按照元数据配置对原始数据进行转换,以符合旺店通·企业奇门API接口的要求。

  1. 字段映射:根据元数据配置,将源数据字段映射到目标字段。例如,FBillNo 映射到 outer_noFStockIDSETY_FNumber 映射到 warehouse_no
  2. 固定值设置:某些字段需要设置固定值,如 remark 设置为“组装子项出库”,is_check 设置为“1”。
  3. 嵌套结构处理:对于嵌套结构的字段,如 detail_list,需要逐一处理其子字段。

通过上述步骤,我们得到如下转换后的数据:

{
  outer_no: 'SO123456',
  warehouse_no: 'WH001',
  remark: '组装子项出库',
  is_check: '1',
  detail_list: [
    { spec_no: 'P001', num: '10', price: '1' },
    { spec_no: 'P002', num: '5', price: '1' }
  ]
}

数据写入

最后一步是将转换后的数据通过API接口写入目标平台。根据元数据配置中的 api, method, 和 request 字段信息,我们构建HTTP请求:

const axios = require('axios');

const data = {
  outer_no: 'SO123456',
  warehouse_no: 'WH001',
  remark: '组装子项出库',
  is_check: '1',
  detail_list: [
    { spec_no: 'P001', num: '10', price: '1' },
    { spec_no: 'P002', num: '5', price: '1' }
  ]
};

axios.post('https://api.wangdian.cn/wdt.stockout.order.push', data)
     .then(response => console.log(response.data))
     .catch(error => console.error(error));

以上代码示例展示了如何使用 axios 库发送HTTP POST请求,将转换后的JSON对象写入旺店通·企业奇门API接口。

小结

通过上述步骤,我们成功地将源平台的数据经过ETL转换后写入了目标平台。在这个过程中,关键在于正确理解和应用元数据配置,以确保每个字段都能准确映射和处理。同时,通过全生命周期管理和实时监控,可以有效提升业务透明度和效率。 泛微OA与ERP系统接口开发配置

更多系统对接方案