使用轻易云平台进行ETL转换:从金蝶云星空到旺店通接口数据写入

  • 轻易云集成顾问-彭亮

集成金蝶云星空与旺店通·企业奇门:组装-委外仓父项入库方案解析

在企业日常运营中,不同系统间的数据对接常常是一大难点。本篇文章将聚焦于如何高效、可靠地实现金蝶云星空数据集成到旺店通·企业奇门,重点探讨“组装-委外仓父项入库”这一实际应用案例。

为确保数据不漏单且快速写入,我们首先利用金蝶云星空的API接口executeBillQuery定时可靠地抓取相关数据。这个接口允许我们灵活配置查询参数,从而获取所需的账单信息。在实时监控和日志记录方面,采用全程透明化管理手段,可以随时查看数据处理进展,有效提升业务透明度和对异常情况的响应速度。

在处理来自金蝶云星空的数据后,下一个关键环节是调用旺店通·企业奇门的API wdt.vip.wms.stockinout.order.push进行大量数据写入。考虑到两者之间可能存在的数据格式差异,我们通过定制化映射解决这一问题,使得每个字段都准确无误地传递至目标系统。同时,为了应对分页及限流问题,我们设计了一套机制,在分批次读取与推送过程中保障效率与稳定性。

此外,针对网络波动或其他异常情况,本案例特别引入了错误重试机制,以最大程度保证整个过程不中断。此外,通过批量集成和预警通知等多重措施,提高整体操作成功率,并减少重复劳动。

总之,通过上述技术手段与优化策略,本案例不仅完成了复杂环境下的数据无缝衔接,还为未来类似项目提供了一条清晰可参考的实施路径。 金蝶与WMS系统接口开发配置

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

在轻易云数据集成平台中,调用源系统接口是数据集成生命周期的第一步。本文将详细探讨如何通过调用金蝶云星空的executeBillQuery接口来获取并加工数据,以实现组装-委外仓父项入库的集成方案。

接口配置与请求参数

在轻易云数据集成平台中,我们通过配置元数据来定义接口请求参数。以下是针对executeBillQuery接口的元数据配置:

{
  "api": "executeBillQuery",
  "method": "POST",
  "number": "FBillNo",
  "id": "FEntity_FEntryID",
  "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:""string,""value:""FNote},
    ...
  ],
  "otherRequest": [
    {"field": "Limit", "label": "最大行数", "type": "string", "describe": "金蝶的查询分页参数", "value": "{PAGINATION_PAGE_SIZE}"},
    {"field": "StartRow", "label": "开始行索引", "type": "string", "describe": "金蝶的查询分页参数", "value": "{PAGINATION_START_ROW}"},
    ...
  ]
}

请求示例

根据上述元数据配置,我们可以构建一个具体的API请求。例如,假设我们需要查询最近同步时间之后的所有组装事务,并且库存组织为编号39的记录,具体请求体如下:

{
  "FormId": "STK_AssembledApp",
  "FieldKeys": [
      ...
      // 列出所有需要查询的字段
      ...
      ],
  // 分页参数
  {
      Limit:500,
      StartRow:0,
      TopRowCount:1000,
      FilterString:"FApproveDate>='2023-01-01' and FAFFAIRTYPE = 'Assembly' and FStockID.FNumber ='39'"
   }
}

数据清洗与转换

在获取到原始数据后,需要对其进行清洗和转换,以便后续的数据处理和写入。在轻易云平台上,可以通过自定义脚本或内置的数据处理工具进行这些操作。

  1. 数据清洗:去除无效或重复的数据。例如,通过检查FID字段来确保每条记录都是唯一且有效的。
  2. 数据转换:将原始数据转换为目标系统所需的格式。例如,将日期格式从YYYY-MM-DD转换为目标系统所需的格式。

实践案例

以下是一个实际应用中的脚本示例,用于清洗和转换从金蝶云星空获取的数据:

def clean_and_transform(data):
    cleaned_data = []

    for record in data:
        if not record['FID']:
            continue

        transformed_record = {
            'bill_no': record['FBillNo'],
            'status': record['FDocumentStatus'],
            'stock_org': record['FStockOrgId_FNumber'],
            'date': transform_date(record['FDate']),
            'owner_type': record['FOwnerTypeIdHead'],
            'owner_id': record['FOwnerIdHead_FNumber'],
            ...
        }

        cleaned_data.append(transformed_record)

    return cleaned_data

def transform_date(date_str):
    # 假设目标系统需要 YYYYMMDD 格式
    return date_str.replace('-', '')

通过上述步骤,我们可以高效地调用金蝶云星空接口,获取并加工所需的数据,为后续的数据写入和处理打下坚实基础。 如何开发用友BIP接口

使用轻易云数据集成平台进行ETL转换并写入旺店通·企业奇门API接口

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

API接口元数据配置

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

{
  "api": "wdt.vip.wms.stockinout.order.push",
  "effect": "EXECUTE",
  "method": "POST",
  "idCheck": true,
  "request": [
    {"field": "api_outer_no", "label": "接口外部单号", "type": "string", "value": "{FBillNo}"},
    {"field": "outer_no", "label": "接口外部单号", "type": "string", "describe": "调用本接口时推送的唯一单据编号,避免重复推送数据", "value": "{FBillNo}"},
    {"field": "warehouse_no", "label": "仓库编号", "type": "string", "describe": "...", "value": "{FStockID_FNumber}"},
    {"field": "order_type", "label": "出入类型", "type": "string", "describe": "...", "value":"2"},
    {"field": "contact",  ... },
    ...
  ],
  ...
}

数据请求与清洗

在ETL流程中,首先需要从源系统请求并清洗数据。这一步骤确保获取的数据是准确且符合业务需求的。在轻易云平台上,可以通过可视化界面配置数据请求和清洗规则。例如:

{
  // 数据请求配置
}

数据转换与写入

接下来,我们将重点讨论如何将清洗后的数据进行转换,以符合旺店通·企业奇门API接口的要求,并最终写入目标平台。

  1. 字段映射:根据元数据配置,将源系统中的字段映射到目标系统所需的字段。例如:

    {
     // 源系统字段
     FBillNo: '12345',
     FStockID_FNumber: 'W001',
     FEntity: [
       { FMaterialID_FNumber: 'SKU001', FQty: '10' },
       ...
     ]
    }

    对应到目标系统字段:

    {
     api_outer_no: '12345',
     outer_no: '12345',
     warehouse_no: 'W001',
     order_type: '2',
     contact: '1',
     auto_check: '1',
     goods_list: [
       { spec_no: 'SKU001', num: '10', price: '1' },
       ...
     ]
    }
  2. 数组处理:对于复杂结构的数据,如goods_list,需要遍历并逐一映射每个子项。轻易云平台提供了强大的数组处理功能,可以通过简单配置实现:

    {
     // 数组处理配置
    }
  3. API调用:完成字段映射和数组处理后,通过POST方法将转换后的数据发送到旺店通·企业奇门API接口。具体实现如下:

    {
     method: 'POST',
     url: 'https://api.wangdian.cn/openapi2/stockinout_order_push.php',
     headers: {
       Content-Type: 'application/json'
     },
     body: JSON.stringify({
       api_outer_no: '{FBillNo}',
       outer_no: '{FBillNo}',
       warehouse_no: '{FStockID_FNumber}',
       order_type: '2',
       contact: '1',
       auto_check: '1',
       goods_list: '{FEntity}'
     })
    }

实时监控与日志记录

为了确保整个ETL过程顺利进行,实时监控和日志记录是必不可少的。轻易云平台提供了全面的监控和日志功能,可以实时查看每个环节的数据流动和处理状态。例如:

{
  // 日志记录配置
}

通过上述步骤,我们可以高效地将源平台的数据转换为旺店通·企业奇门API接口所需的格式,并成功写入目标平台。这不仅提高了业务透明度和效率,还确保了数据的一致性和准确性。 用友BIP接口开发配置

更多系统对接方案