轻易云ETL:将金蝶入库单数据高效写入旺店通

  • 轻易云集成顾问-叶威宏

标准-金蝶-其他入库单——>旺店通-自流转入(外仓调整)数据集成案例分析

在企业信息系统集成过程中,高效而准确的数据对接是关键。本技术案例将详细分享如何通过轻易云数据集成平台,实现金蝶云星空与旺店通·旗舰版之间的入库单数据无缝对接及自流转入(外仓调整)功能。

在该方案中,我们通过调用金蝶云星空API接口executeBillQuery来获取相关的入库单数据,并利用轻易云平台特有的数据处理与监控能力,确保每一条记录均被精准捕获且不漏单。特别是在高并发场景下,有效解决了分页和限流问题,为后续批量写入旺店通·旗舰版提供了坚实基础。对于大量订单的快速写入,我们使用了旺店通·旗舰版的API wms.outer.OuterIn.createOrder,结合定制化的数据映射,提高操作效率和可靠性。

同时,通过在轻易云平台配置实时监控和日志记录功能,可以全程跟踪每一条数据从抓取到写入的状态,并实现异常处理与错误重试机制,大幅提升整体系统的稳定性和可维护性。这些措施不仅保障了业务连续性,也为日后的运维工作带来了极大便利。

本案例所采用的方法论和技术手段,对于其他类似场景下的数据集成都具有较高参考价值,也是我们探索优化系统间互联互通的一次重要实践。 用友与MES系统接口开发配置

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

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

接口配置与请求参数

首先,我们需要配置接口的元数据。根据提供的元数据配置,我们可以看到该接口使用POST方法进行调用,主要用于查询(effect为QUERY)。以下是请求参数的详细配置:

{
  "api": "executeBillQuery",
  "effect": "QUERY",
  "method": "POST",
  "number": "FBillNo",
  "id": "FEntity_FEntryID",
  "name": "FBillNo",
  "idCheck": true,
  "request": [
    {"field": "FEntity_FEntryID", "label": "FEntryID", "type": "string", "describe": "FEntryID", "value": "FEntity_FEntryID"},
    {"field": "FID", "label": "实体主键", "type": "string", "describe": "实体主键", "value": "FID"},
    {"field": "FBillNo", "label": "单据编号", "type": "string", "describe": "单据编号", "value": "FBillNo"},
    {"field": "FDocumentStatus", "label": "单据状态", "type": "string", "describe": "单据状态", 
"value":"FDocumentStatus"},
    {"field":"FStockOrgId_FNumber","label":"库存组织","type":"string","describe":"库存组织","value":"FStockOrgId.FNumber"},
    {"field":"FDate","label":"日期","type":"string","describe":"日期","value":"FDate"},
    {"field":"FBillTypeID","label":"单据类型","type":"string","describe":"单据类型","value":"FBillTypeID.FNumber"},
    {"field":"FSUPPLIERID_FNumber","label":"供应商","type":"string","describe":"供应商","value":"FSUPPLIERID.FNumber"},
    {"field":"FNOTE","label":"备注","type":"string","describe":"备注","value":"FNOTE"},
    {"field":"FMATERIALID_FNumber","label":"物料编码","type":"string","describe":"物料编码","value":
"FMATERIALID.FNumber"},
    {"field":"FSTOCKID","label":"收货仓库","type":"string","describe":
"收货仓库","value":
"FSTOCKID.FNumber"},
    {"field":
"FQty","label":
"实收数量","type":
"string","describe":
"实收数量","value":
"FQty"},
    {"field":
"FPrice","label":
"成本价","type":
"string","describe":
"成本价","value":
"FPrice"},
    {"field":
"FAmount","label":
"总成本","type":
"string","describe":
总成本,""value:
FAmount},
{"field:
FBOMID,""label:
BOM版本,""type:
string,""describe:
BOM版本,""value:
FBOMID},
{"field:
生产日期,""label:
生产日期,""type:
字符串,""描述:
生产日期,""值:
生产日期},
{"字段:有效期至,
标签:有效期至,
类型:字符串,
描述:有效期至,
值:有效期至},
{"字段:FMTONO,
标签:计划跟踪号,
类型:字符串,
描述:计划跟踪号,
值:FMTONO},
{"字段:项目编号,
标签:项目编号,
类型:字符串,
描述:项目编号,
值:项目编号},
{"字段:库存状态,
标签:库存状态,
类型:字符串,
描述:库存状态,
值:库存状态},

请求示例

为了更好地理解如何调用该接口,我们来看一个具体的请求示例。假设我们需要查询特定条件下的数据,可以构造如下请求体:

{
  "_FormId_ ": "_STK_MISCELLANEOUS_ ",
  "_FieldKeys_ ": "_ FEntity_FEntryID, FBillNo, FDocumentStatus, FStockOrgId.FNumber, FDate, FBillTypeID.FNumber, FSUPPLIERID.FNumber, FNOTE, FMATERIALID.FNumber, FSTOCKID.FNumber, FQty, FPrice, FAmount _ ",
  "_FilterString_ ": "_ FApproveDate>='2024-08-05 17:30:00' and FStockOrgId.FNumber='101' and FSTOCKID.F_TBIK_Assistant_qtr = '自流转仓' and FBillTypeID.FNUMBER in ('QTRKD01_SYS') _ ",
  "_Limit_ ": "_100_ ",
  "_StartRow_ ": "_0_ "
}

上述请求体中,我们指定了需要查询的字段、过滤条件以及分页参数。这样可以确保我们只获取到符合条件的数据,并且避免一次性返回过多数据导致性能问题。

数据处理与清洗

在获取到原始数据后,我们需要对其进行清洗和加工。这一步骤通常包括以下几个方面:

  1. 字段映射: 将源系统中的字段映射到目标系统所需的字段。例如,将FBillNo映射为目标系统中的订单编号。
  2. 数据转换: 根据业务需求对某些字段进行转换,例如将日期格式从YYYY-MM-DD转换为MM/DD/YYYY
  3. 过滤无效数据: 去除不符合业务规则的数据,例如状态为“已取消”的订单。

以下是一个简单的数据处理示例:

def process_data(raw_data):
    processed_data = []
    for entry in raw_data:
        if entry['FDocumentStatus'] != 'C':
            processed_entry = {
                'order_no': entry['FBillNo'],
                'date': convert_date_format(entry['FDate']),
                'supplier': entry['FSUPPLIERID_FNumber'],
                'total_cost': float(entry['FAmount']),
                # 更多字段映射...
            }
            processed_data.append(processed_entry)
    return processed_data

def convert_date_format(date_str):
    from datetime import datetime
    date_obj = datetime.strptime(date_str, '%Y-%m-%d')
    return date_obj.strftime('%m/%d/%Y')

通过上述代码,我们可以将原始数据中的订单编号、日期、供应商和总成本等信息提取并转换为目标格式。

总结

通过轻易云数据集成平台调用金蝶云星空的executeBillQuery接口,我们能够高效地获取源系统中的数据,并对其进行清洗和加工。这一步骤不仅确保了数据的一致性和准确性,还为后续的数据转换与写入奠定了坚实基础。在实际应用中,根据具体业务需求调整和优化这些步骤,将进一步提升整体集成效率。 系统集成平台API接口配置

轻易云数据集成平台:ETL转换与写入旺店通·旗舰版API接口

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

API接口配置与元数据解析

在本案例中,我们需要将标准-金蝶-其他入库单的数据转换并写入到旺店通·旗舰版。我们使用的API接口是wms.outer.OuterIn.createOrder,其请求方法为POST。以下是该API接口的元数据配置:

{
  "api": "wms.outer.OuterIn.createOrder",
  "effect": "EXECUTE",
  "method": "POST",
  "idCheck": true,
  "request": [
    {
      "field": "order",
      "label": "单据头",
      "type": "object",
      "children": [
        {"field": "order_no", "label": "外部单号", "type": "string", "value": "{FBillNo}"},
        {"field": "warehouse_no", "label": "仓库编号", "type": "string", "value": "{FSTOCKID}"},
        {"field": "reason", "label": "出库原因", "type": "string", "value": "{F_TBIK_RKLX}"},
        {"field": "remark", "label": "备注", "type": "string", "value": "{FNOTE}"}
      ]
    },
    {
      "field": "order_details",
      "label": "单据明细",
      "type": "array",
      ...
    },
    {"field":"is_check","label":"是否审核","type":"bool","value":"true"}
  ],
  ...
}

数据清洗与转换

  1. 数据提取:从源系统(金蝶)中提取原始数据,包括单据头和单据明细部分。
  2. 数据清洗:确保提取的数据无误,并按照目标系统(旺店通)的要求进行必要的清洗。例如,确保所有字段都有值,且值符合预期格式。
  3. 数据转换
    • 单据头部分:
      • order_no 对应 {FBillNo}
      • warehouse_no 对应 {FSTOCKID}
      • reason 对应 {F_TBIK_RKLX}
      • remark 对应 {FNOTE}
    • 单据明细部分:
      • spec_no 对应 {FMATERIALID_FNumber}
      • num 对应 {FQty}
      • remark 对应 {FEntryNote}

数据写入

在完成上述步骤后,我们将清洗和转换后的数据通过API接口写入到旺店通·旗舰版。以下是一个示例请求体:

{
  "order": {
    ...
  },
  ...
}

实际操作步骤

  1. 配置请求参数:根据元数据配置文件,设置请求参数。
  2. 调用API接口:使用HTTP POST方法,将请求体发送到目标API接口。
  3. 处理响应结果:检查响应结果,确保数据成功写入。如果出现错误,根据错误信息进行调试和修正。

通过上述步骤,我们可以实现从金蝶到旺店通的数据无缝对接。这不仅提升了业务效率,还确保了数据的一致性和准确性。 如何对接用友BIP接口

更多系统对接方案