如何使用轻易云平台高效完成ETL并写入金蝶云星空API

  • 轻易云集成顾问-彭萍

易仓数据集成到金蝶云星空案例分享:R入库单(组装)-其他入库单20230620

在本次技术案例中,我们将分享如何实现易仓数据高效、无缝地集成到金蝶云星空,以R入库单(组装)-其他入库单20230620为具体实例。本方案重点关注解决以下几个核心问题:确保数据不漏单、大量数据批量写入、定时可靠的数据抓取以及对接过程中必要的格式转换。

首先,采用轻易云平台进行系统对接,可以通过其全生命周期管理功能和透明化操作界面,实现完整的监控与日志记录。我们利用getReceiving API从易仓系统获取实时库存信息,并处理分页和限流问题,确保数据不会遗漏。在这个过程中针对防止接口调用频率过高导致的限流情况,将每次请求的数据条数配置在合理范围内,并通过重试机制处理可能出现的网络异常或接口响应失败。

接下来,为了顺利将得到的大量库存数据快速写入到金蝶云星空,我们运用了batchSave API。针对两者之间的数据格式差异,设计了一套定制化的数据映射规则,通过轻易云的平台工具进行复杂字段转换,使得各项商品信息准确传递至目标系统。这一步骤不仅要求高效,也需保持严格的一致性,以避免由于格式不匹配而引起的数据错误。

此外,在整个流程中,还特别设置了定时任务用于自动抓取并集成易仓最新库存信息,从而保证业务侧能实时反映实际库存情况。这种定时任务调度机制也便于业务部门随时掌握当前状态,提高整体运营效率。

最后,应注意的是对接过程中的异常处理能力尤为重要。通过新增错误日志和报警机制,对任何一环节出现的问题都及时记录并回滚重试,确保最终所有有效数据信息成功落地到金蝶云星空之上,实现从源头采集到目标存储全程安全、稳定、高效运行。

以上即是本次技术实施方案开篇部分内容。在后续步骤中,我们将详细展示具体API调用方法及代码实现细节,进一步解析每个步骤背后的技术原理与应对策略。 电商OMS与WMS系统接口开发配置

调用易仓接口getReceiving获取并加工数据

在轻易云数据集成平台的生命周期中,调用源系统接口是至关重要的一步。本文将深入探讨如何通过调用易仓接口getReceiving来获取并加工数据。

接口配置与调用

首先,我们需要了解getReceiving接口的基本配置。根据提供的元数据配置,getReceiving接口采用POST方法进行调用,并且支持多种查询参数。这些参数包括入库单号、客户参考号、跟踪号等,能够满足不同场景下的数据请求需求。

{
  "api": "getReceiving",
  "method": "POST",
  "number": "receiving_code",
  "id": "receiving_id",
  "idCheck": true,
  "request": [
    {"field":"receiving_code","label":"入库单号","type":"string"},
    {"field":"reference_no","label":"客户参考号","type":"string"},
    {"field":"tracking_number","label":"跟踪号","type":"string"},
    {"field":"po_code","label":"采购单号","type":"string"},
    {"field":"warehouse_id","label":"仓库Id","type":"string"},
    {"field":"receiving_type","label":"类型","type":"string", "value": "13"},
    {"field":"receiving_status","label":"入库单状态","type":"string", "value": "7"},
    {"field":"productBarcode","label":"产品代码","type":"string"},
    {"field":"productBarcode_like","label":"产品代码(模糊)","type":"string"},
    {"field":"receiving_add_user","label":"采购员(用户Id)","type":"string"},
    {"field":"code_like","label":"单号(入库单、参考号、采购单)","type":"string"},
    {
      "field": "searchDateType",
      "label": "查询时间类型",
      "type": "string",
      "value": "receiving_update_time"
    },
    {
      "field": "dateFor",
      "label": "大于等于某个时间类型",
      "type": "string",
      "value": "_function DATE_SUB(now(),INTERVAL 5 DAY)"
    },
    {
      "field": "dateTo",
      "label": "小于等于某个时间类型",
      "type": "string",
      "value": "{{CURRENT_TIME|datetime}}"
    },
    {
      "field": "pagination",
      "label": "分页",
      "type": "object",
      "children":[
        {"field": "page",   label: '当前页', type: 'string', value: '_function 1*1'},
        {"field": 'pageSize', label: '每页显示条数', type: 'string', value: '_function 50*1'}
       ]
     }
  ]
}

数据请求与清洗

在实际操作中,我们需要根据业务需求设置具体的请求参数。例如,如果我们需要获取过去五天内所有状态为“收货完成”的入库单,可以配置如下:

{
  ...
  {
    field: 'receiving_status',
    label: '入库单状态',
    type: 'string',
    value: '7'
  },
  {
    field: 'searchDateType',
    label: '查询时间类型',
    type: 'string',
    value: 'receiving_update_time'
  },
  {
    field: 'dateFor',
    label: '大于等于某个时间类型',
    type: 'string',
    value: '_function DATE_SUB(now(),INTERVAL 5 DAY)'
  },
  {
     field:'dateTo',
     label:'小于等于某个时间类型',
     type:'string',
     value:'{{CURRENT_TIME|datetime}}'
   }
}

这些参数确保了我们只获取最近五天内更新且状态为“收货完成”的入库单数据。

数据转换与写入

在成功获取数据后,下一步是对数据进行必要的清洗和转换。由于不同系统的数据格式和字段可能存在差异,我们需要对原始数据进行标准化处理。例如,将日期格式统一转换为ISO标准,将数值字段统一转换为浮点型等。

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

def transform_data(data):
   for record in data:
       record['update_time'] = convert_to_iso(record['update_time'])
       record['quantity'] = float(record['quantity'])
   return data

经过清洗和转换后的数据可以直接写入目标系统或数据库,以便后续使用。

实时监控与优化

在整个过程中,实时监控是确保数据集成质量的重要手段。通过轻易云平台提供的可视化界面,我们可以实时查看数据流动和处理状态,及时发现并解决潜在问题。此外,根据监控结果不断优化参数设置和处理逻辑,可以进一步提升数据集成效率和准确性。

总结来说,通过合理配置和调用易仓接口getReceiving,我们能够高效地获取并加工所需数据,为后续的数据分析和业务决策提供坚实基础。在实际操作中,灵活运用元数据配置和平台提供的工具,可以显著提升工作效率和数据质量。 用友与WMS系统接口开发配置

使用轻易云数据集成平台将源数据转换并写入金蝶云星空API

在数据集成的生命周期中,ETL(Extract, Transform, Load)过程是关键步骤之一。本文将详细探讨如何使用轻易云数据集成平台,将已经集成的源平台数据进行ETL转换,最终写入目标平台——金蝶云星空API接口。

配置元数据

我们首先需要配置元数据,以便正确地将源数据转换为金蝶云星空API所能接收的格式。以下是一个典型的元数据配置示例:

{
    "api": "batchSave",
    "method": "POST",
    "idCheck": true,
    "operation": {
        "rowsKey": "array",
        "rows": 1,
        "method": "batchArraySave"
    },
    "request": [
        {"field": "FBillNo", "label": "单据编号", "type": "string", "describe": "单据编号", "value": "{receiving_code}"},
        {"field": "FBillTypeID", "label": "单据类型", "type": "string", "describe": "单据类型", 
            "parser":{"name":"ConvertObjectParser","params":"FNumber"}, 
            "value":"QTRKD06_SYS"},
        {"field": "FStockOrgId", "label": "库存组织", 
            "type": "string", 
            "describe":"组织",
            "parser":{"name":"ConvertObjectParser","params":"FNumber"}, 
            "value":"_findCollection find warehouseCode from de1387a4-c479-35db-9bcb-c73858fcb2b1 where warehouseId={warehouse_id}",
            "mapping":"63688a45a23a2e0fa5271b19",
            "mappingDirection":"positive"},
        {"field":"FStockDirect","label":"库存方向","type":"string","describe":"下拉列表"},
        {"field":"FDate","label":"日期","type":"string","describe":"日期","value":"{complete_time}"},
        {"field":"FSUPPLIERID","label":"供应商","type":"string","describe":"基础资料",
            "parser":{"name":"ConvertObjectParser","params":"FNumber"}},
        {"field":"FDEPTID","label":"部门","type":"string","describe":"基础资料",
            "parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"BM000015"},
        {"field":"FOwnerTypeIdHead","label":"货主类型","type":"string","describe":"多类别基础资料列表",
            "value":"BD_OwnerOrg"},
        {"field":"FOwnerIdHead","label":"货主","type":"","describe":"",
            "parser":{"name":"","params":""},
            "value":"",
            "mapping":"",
            "mappingDirection":"",
            "children":[
            {"field":"","label":"","type":"","describe":"",
                "parent":"",
                "value":"",
                "mapping":"",
                "mappingDirection":"",
                "children":[
                {"field":"","label":"","type":"","describe":"",
                    "parent":"",
                    "value":"",
                    "mapping":"",
                    "mappingDirection":"",
                    "children":[
                    {"field":"","label":"","type":"","describe":"",
                        "parent":"",
                        "value":"",
                        "mapping":"",
                        "mappingDirection":"",

                    }
                ]}
            ]}
        ]}
    ],
    ...
}

数据转换

在配置好元数据后,我们需要进行具体的数据转换操作。以下是几个关键字段的转换逻辑:

  1. 单据编号 (FBillNo)

    • 从源系统中提取 receiving_code 字段,并直接映射到 FBillNo
  2. 单据类型 (FBillTypeID)

    • 使用 ConvertObjectParser 解析器,将固定值 QTRKD06_SYS 转换为目标系统所需格式。
  3. 库存组织 (FStockOrgId)

    • 使用 ConvertObjectParser 解析器,通过仓库ID (warehouse_id) 查找对应的仓库编码 (warehouseCode) 并映射到 FStockOrgId
  4. 日期 (FDate)

    • 将完成时间 (complete_time) 映射到 FDate
  5. 供应商 (FSUPPLIERID)

    • 使用 ConvertObjectParser 解析器,将供应商信息从源系统转换为目标系统所需格式。
  6. 部门 (FDEPTID)

    • 固定值 BM000015 映射到 FDEPTID
  7. 货主类型 (FOwnerTypeIdHead)货主 (FOwnerIdHead)

    • 固定值 BD_OwnerOrg 映射到 FOwnerTypeIdHead
    • 使用仓库ID查找对应的仓库编码,并映射到 FOwnerIdHead
  8. 备注 (FNOTE)

    • 将接收描述 (receiving_description) 映射到 FNOTE

明细信息处理

对于明细信息字段(如物料编码、实收数量等),需要特别注意其父子关系和解析逻辑:


{
    ...
    {
        "field": "FEntity",
        ...
        {
            ...
            {
                ...
                {
                    ...
                    {
                        ...
                        {
                            ...
                            {
                                ...
                                {
                                    ...
                                    {
                                        ...
                                        {
                                            ...
                                            {
                                                ...
                                                {
                                                    ...
                                                    {
                                                        ...
                                                        {
                                                            ...
                                                            {
                                                                ...
                                                                {
                                                                    ...
![打通企业微信数据接口](https://pic.qeasy.cloud/T21.png~tplv-syqr462i7n-qeasy.image)
更多系统对接方案