ETL转换:从金蝶云到旺店通的数据处理技巧

  • 轻易云集成顾问-卢剑航

生产入库单对接其他入库单:金蝶云星空与旺店通·企业奇门数据集成案例

在实际的商务运作中,系统之间的数据流动高效且无缝地衔接至关重要。本篇文章将详细探讨如何通过轻易云平台实现金蝶云星空和旺店通·企业奇门之间的生产入库单到其他入库单的数据集成。

为了确保每一笔数据准确传输,我们使用了executeBillQuery接口从金蝶云星空抓取相关数据,并通过wdt.stockin.order.push接口将其快速写入到旺店通·企业奇门。该方案在实践中不仅做到了定时可靠,还保障了大规模数据的高效处理。

首先,调用金蝶云星空API executeBillQuery接口需要注意分页和限流的问题。我们采用了一种智能化分页策略,使得每次查询都能最大程度获取所需数据,同时避免触发限流机制。在抓取过程中,实时监控和日志记录是不可或缺的一环,这保证了任何异常情况都能够被迅速发现并解决,从而提高整体系统的健壮性和可靠性。

随后,在将获取的数据批量写入旺店通·企业奇门时,有两个关键点必须关注:一是数据格式差异的问题,需要进行定制化数据映射;二是对接后可能出现异常情况,为此设计了完善的错误重试机制,以确保即使在面对偶发故障时,也能保持稳定运行。特别是在调用wdt.stockin.order.push API过程中,通过精确设置参数,实现了不同业务类型下灵活、稳健的数据推送。

进一步讲述如何配置这些操作,以及具体实施中的技术细节将有助于读者全面理解这一复杂却极具操作性的案例实施方案。在后续部分,我们会深入分享更多关于两大平台间顺畅对接的方法与技巧,以期为类似项目提供一种可参考的范例。 打通钉钉数据接口

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

在数据集成生命周期的第一步中,调用源系统接口获取数据是至关重要的一环。本文将详细探讨如何通过轻易云数据集成平台调用金蝶云星空的executeBillQuery接口来获取生产入库单数据,并进行初步加工。

API接口配置

首先,我们需要配置API接口的元数据。根据提供的元数据配置,我们可以看到executeBillQuery接口的相关信息:

  • API名称: executeBillQuery
  • 请求方法: POST
  • 主要字段:
    • FBillNo: 单据编号
    • FEntity_FEntryID: 实体主键
    • FMaterialId_FNumber: 物料编码
    • FRealQty: 实收数量
    • FDate: 日期
    • 等等

这些字段将用于构建请求和解析响应。

构建请求

在构建请求时,我们需要注意以下几个关键参数:

  1. FormId: 表单ID,必须填写金蝶的表单ID,例如:PRD_INSTOCK
  2. FieldKeys: 查询字段集合,需要查询哪些字段就将其列出。
  3. FilterString: 过滤条件,用于筛选符合条件的数据。
  4. 分页参数:
    • Limit: 最大行数
    • StartRow: 开始行索引
    • TopRowCount: 返回总行数

以下是一个示例请求体:

{
    "FormId": "PRD_INSTOCK",
    "FieldKeys": "FBillNo,FEntity_FEntryID,FMaterialId.FNumber,FRealQty,FDate",
    "FilterString": "FDocumentStatus='C' and FStockId.FNumber='001' and FApproveDate>='2023-01-01'",
    "Limit": 100,
    "StartRow": 0,
    "TopRowCount": true
}

调用API并处理响应

通过轻易云平台,我们可以使用可视化界面配置上述请求,并发送给金蝶云星空。成功调用后,系统会返回符合条件的数据集。

假设我们收到以下响应:

{
    "Result": [
        {
            "FBillNo": "PO20230101001",
            "FEntity_FEntryID": "1001",
            "FMaterialId.FNumber": "MAT001",
            "FRealQty": "50",
            "FDate": "2023-01-01"
        },
        {
            "FBillNo": "PO20230101002",
            "FEntity_FEntryID": "1002",
            "FMaterialId.FNumber": "MAT002",
            "FRealQty": "30",
            "FDate": "2023-01-02"
        }
    ]
}

我们需要对这些数据进行初步加工,以便后续的数据转换与写入阶段使用。

数据加工

在轻易云平台上,可以通过内置的脚本或规则引擎对返回的数据进行处理。例如,我们可以将日期格式统一、计算总数量等操作。

以下是一个简单的数据加工示例:

def process_data(response):
    processed_data = []
    for record in response["Result"]:
        processed_record = {
            "单据编号": record["FBillNo"],
            "实体主键": record["FEntity_FEntryID"],
            "物料编码": record["FMaterialId.FNumber"],
            "实收数量": int(record["FRealQty"]),
            "日期": record["FDate"]
        }
        processed_data.append(processed_record)
    return processed_data

response = {
    # 假设这是从API返回的数据
}

processed_data = process_data(response)
print(processed_data)

通过上述代码,我们将原始响应中的字段重新映射并进行了类型转换,为后续的数据处理打下基础。

总结

通过轻易云数据集成平台调用金蝶云星空的executeBillQuery接口,可以高效地获取生产入库单数据,并通过内置工具进行初步加工。这一步骤为整个数据集成过程奠定了坚实基础,使得后续的数据转换与写入变得更加顺畅和高效。 如何对接金蝶云星空API接口

数据集成生命周期中的ETL转换:对接旺店通·企业奇门API接口

在数据集成生命周期中,ETL(提取、转换、加载)是关键步骤之一。本文将详细探讨如何使用轻易云数据集成平台,将已经集成的源平台数据进行ETL转换,转为目标平台旺店通·企业奇门API接口所能够接收的格式,并最终写入目标平台。

API接口元数据配置

在进行ETL转换之前,首先需要了解目标平台的API接口要求。以下是针对旺店通·企业奇门API接口wdt.stockin.order.push的元数据配置:

{
  "api": "wdt.stockin.order.push",
  "effect": "EXECUTE",
  "method": "POST",
  "idCheck": true,
  "request": [
    {
      "field": "outer_no",
      "label": "外部单号",
      "type": "string",
      "describe": "外部单号",
      "value": "{FBillNo}"
    },
    {
      "field": "warehouse_no",
      "label": "仓库编号",
      "type": "string",
      "describe": "仓库编号",
      "value": "{FStockId}"
    },
    {
      "field": "remark",
      "label": "备注",
      "type": "string",
      "describe": "备注",
      "value": "生产入库"
    },
    {
      "field": "is_check",
      "label": "是否审核",
      "type": "string",
      "describe": "是否审核",
      "value": 1
    },
    {
      "field": "reason",
      ...
    }
  ],
  ...
}

数据请求与清洗

在ETL流程的第一步,我们从源平台提取原始数据,并进行必要的清洗操作。例如,从金蝶系统中提取生产入库单的数据。假设我们已经完成了这一步,并且获得了如下格式的数据:

{
  FBillNo: 'PO12345',
  FStockId: 'WH001',
  FMaterialId_FNumber: 'M001',
  FRealQty: '100'
}

数据转换

接下来,我们需要根据旺店通·企业奇门API接口的要求,对提取的数据进行转换。具体操作如下:

  1. 外部单号(outer_no):直接映射为{FBillNo}
  2. 仓库编号(warehouse_no):直接映射为{FStockId}
  3. 备注(remark):固定值“生产入库”。
  4. 是否审核(is_check):固定值“1”。
  5. 货品明细节点(goods_list)
    • 商家编码(spec_no):映射为{FMaterialId_FNumber}
    • 入库数量(stockin_num):映射为{FRealQty}

根据上述规则,转换后的数据格式如下:

{
  outer_no: 'PO12345',
  warehouse_no: 'WH001',
  remark: '生产入库',
  is_check: '1',
  goods_list: [
    {
      spec_no: 'M001',
      stockin_num: '100'
    }
  ]
}

数据写入

最后一步是将转换后的数据通过POST请求写入到旺店通·企业奇门API接口。轻易云数据集成平台提供了全异步处理和多种异构系统支持,确保不同系统间的数据无缝对接。

通过以下代码片段,可以实现数据的写入操作:

const axios = require('axios');

const data = {
  outer_no: 'PO12345',
  warehouse_no: 'WH001',
  remark: '生产入库',
  is_check: '1',
  goods_list: [
    {
      spec_no: 'M001',
      stockin_num: '100'
    }
  ]
};

axios.post('https://api.wangdian.cn/stockin/order/push', data)
.then(response => {
   console.log('Data successfully pushed to Wangdian:', response.data);
})
.catch(error => {
   console.error('Error pushing data to Wangdian:', error);
});

以上代码片段展示了如何利用Axios库发送POST请求,将经过ETL转换后的数据推送到旺店通·企业奇门API接口。

通过以上步骤,我们完成了从源平台到目标平台的数据集成,包括数据提取、清洗、转换和写入全过程。这不仅提高了业务透明度和效率,也确保了不同系统间的数据一致性和准确性。 泛微OA与ERP系统接口开发配置

更多系统对接方案