如何通过ETL实现金蝶数据与旺店通的无缝对接

  • 轻易云集成顾问-吴伟

金蝶云星空与旺店通·旗舰版的数据集成实践

在本案例中,我们将详细探讨如何通过轻易云数据集成平台,将金蝶云星空的采购退料单数据,准确而高效地对接到旺店通·旗舰版中的内部仓退模块(其他出库)。我们采用的方案名称是:标准-金蝶-采购退料单——>旺店通-内部仓退(其他出库)。

首先,要确保我们能够从金蝶云星空获取完整且准确的数据,这要求使用其提供的API接口 executeBillQuery。为了避免漏单问题,在调用该接口时,我们实现了分页和限流机制,以确保即使在大数据量场景下也不会出现请求失败或部分缺失。

其次,为了快速而有效地将这些大量数据写入到旺店通·旗舰版,我们利用了其开放API wms.stockout.Other.createOther。通过批量操作来提升效率,并结合定时任务以保持稳定性和可靠性,使得整个流程自动化程度更高。此外,还需要注意两者之间的数据格式差异,为此我们做了相应的数据映射处理。

最后,考虑到任何系统对接都可能会面对异常情况,比如网络波动或服务不可用等。因此,在实现过程中我们特别设置了异常处理与错误重试机制。一旦出现问题,系统会自动记录并尝试重新发送相关请求,从而保证不会因为偶发故障导致数据丢失。

总之,通过上述技术手段,我们顺利构建了一套可靠、高效、透明的数据集成解决方案,将来自金蝶云星空的业务信息无缝衔接到旺店通·旗舰版,提高了整体业务运作效率,同时也确保每一笔交易都得到精确处理。在后续部分,我将进一步深入讲解具体实施细节和代码示例,以便各位读者参考实际应用。 金蝶与外部系统打通接口

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

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

接口配置与调用

首先,我们需要了解接口的基本配置和调用方式。根据提供的元数据配置,executeBillQuery接口采用POST方法进行调用,主要用于查询金蝶云星空中的采购退料单信息。以下是该接口的关键参数配置:

  • api: executeBillQuery
  • method: POST
  • number: FBillNo
  • id: FPURMRBENTRY_FEntryID
  • idCheck: true

请求参数解析

请求参数分为两部分:必填字段和其他请求字段。必填字段包括单据编号、实体主键等,而其他请求字段则用于分页和过滤条件设置。

必填字段
[
  {"field":"FPURMRBENTRY_FEntryID","label":"明细信息ID","type":"string","describe":"明细信息ID","value":"FPURMRBENTRY_FEntryID"},
  {"field":"FID","label":"实体主键","type":"string","describe":"实体主键","value":"FID"},
  {"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"FBillNo"},
  {"field":"FDocumentStatus","label":"单据状态","type":"string","describe":"单据状态\n暂存:Z\n创建:A\n审核中:B\n已审核:C","value":"FDocumentStatus"}
]

这些字段是每次请求必须提供的,用于标识和筛选具体的采购退料单。

其他请求字段
[
  {"field":"Limit","label":"最大行数","type":"string","describe":"金蝶的查询分页参数","value":"{PAGINATION_PAGE_SIZE}"},
  {"field":"StartRow","label":"开始行索引","type":"string","describe":"金蝶的查询分页参数","value":"{PAGINATION_START_ROW}"},
  {"field":"FilterString","label":"过滤条件","type":"string","describe":"","value":""},
  {"field":"FieldKeys","label":"需查询的字段key集合","type":"array"}
]

这些字段用于控制返回结果的分页和过滤条件,例如:

  • Limit: 每页返回的最大行数。
  • StartRow: 查询起始行索引。
  • FilterString: 自定义过滤条件,用于精确筛选数据。
  • FieldKeys: 指定需要返回的字段集合。

数据获取与初步加工

在实际操作中,我们通常会根据业务需求设置具体的过滤条件和分页参数。例如:

{
  "Limit": "100",
  "StartRow": "0",
  "FilterString": "FApproveDate>='2023-01-01' and FStockOrgId.FNumber='101'",
  "FieldKeys": ["FBillNo", "FDate", "FSupplierID_FNumber", "FStockOrgId_FNumber"]
}

上述示例中,我们设置了每页返回100条记录,从第0行开始,并且只查询2023年1月1日之后审核通过且库存组织编号为101的数据,同时只返回指定的几个关键字段。

API调用示例

以下是一个完整的API调用示例:

{
  "api": "executeBillQuery",
  "method": "POST",
  "number": "FBillNo",
  "id": "FPURMRBENTRY_FEntryID",
  "idCheck": true,
  "request": [
    {"field": "FPURMRBENTRY_FEntryID", "value": ""},
    {"field": "FID", "value": ""},
    {"field": "FBillNo", "value": ""},
    {"field": "FDocumentStatus", "value": ""}
  ],
  "otherRequest": [
    {"field": "Limit", "value": "{PAGINATION_PAGE_SIZE}"},
    {"field": "StartRow", "value": "{PAGINATION_START_ROW}"},
    {"field": "FilterString", 
     "value": 
     "'FApproveDate>='2023-01-01' and FStockOrgId.FNumber='101' and FSTOCKID.F_TBIK_Assistant_qtr = '内部仓' and FDate>='2024-08-05 17:30:00'"},
    {"field": 
     FieldKeys, 
     value:["FBillNo", 
            FDate, 
            FSupplierID_FNumber, 
            FStockOrgId_FNumber]}
   ]
}

在这个示例中,我们通过设置具体的FilterStringFieldKeys来精确控制查询结果,并使用分页参数来管理大数据量的返回。

数据清洗与转换

获取到原始数据后,需要对其进行清洗和转换,以便后续处理。例如,可以对日期格式进行标准化处理,对金额字段进行单位转换等。这一步骤可以利用轻易云平台提供的数据处理工具实现,确保数据在进入下一阶段时已经过初步整理,符合目标系统要求。

通过以上步骤,我们完成了从金蝶云星空获取采购退料单数据并进行初步加工,为后续的数据转换与写入奠定了基础。在实际应用中,可以根据具体业务需求进一步优化查询和处理逻辑,以提升数据集成效率和准确性。 如何对接用友BIP接口

数据集成与ETL转换:从金蝶采购退料单到旺店通·旗舰版内部仓退

在数据集成的生命周期中,ETL(Extract, Transform, Load)转换是至关重要的一步。本文将详细探讨如何将金蝶系统中的采购退料单数据,通过轻易云数据集成平台,转换为旺店通·旗舰版API接口所能接收的格式,并最终写入目标平台。

1. API接口配置与元数据解析

首先,我们需要理解目标平台——旺店通·旗舰版的API接口配置。根据提供的元数据配置,目标API为wms.stockout.Other.createOther,请求方法为POST。以下是关键字段及其对应关系:

  • outer_no 对应 FBillNo
  • warehouse_no 对应 FSTOCKID_FNumber
  • remark 对应 供应商:{FSupplierID_FNumber} {FDESCRIPTION}
  • is_check 固定值 "true"
  • reason 固定值 "采购退料出库"
  • goods_list 为一个数组,包含SKU、出库数量和明细备注

2. 数据请求与清洗

在进行ETL转换之前,需要确保从源系统(金蝶)获取的数据已经过清洗和预处理。这一步通常包括数据验证、格式化和初步的字段映射。例如:

{
  "FBillNo": "PO123456",
  "FSTOCKID_FNumber": "WH001",
  "FDESCRIPTION": "退货描述",
  "FSupplierID_FNumber": "SUP123",
  "FMATERIALID_FNumber": "MAT001",
  "FRMREALQTY": 100,
  "FNOTE": "无"
}

3. 数据转换与构建请求体

根据元数据配置,我们需要将上述清洗后的数据进行字段映射,并构建符合旺店通·旗舰版API要求的请求体。以下是具体步骤:

a. 构建表头部分

表头部分包括外部单号、仓库编号、备注、是否审核和出库原因。这些字段直接映射即可:

{
  "outer_no": "{FBillNo}",
  "warehouse_no": "{FSTOCKID_FNumber}",
  "remark": "供应商:{FSupplierID_FNumber} {FDESCRIPTION}",
  "is_check": "true",
  "reason": "采购退料出库"
}
b. 构建明细部分

明细部分是一个数组,每个元素包含SKU、出库数量和备注:

"goods_list": [
  {
    "spec_no": "{FMATERIALID_FNumber}",
    "num": "{FRMREALQTY}",
    "remark": "{FNOTE}"
  }
]

结合表头和明细部分,完整的请求体如下:

{
  "outer_no": "PO123456",
  "warehouse_no": "WH001",
  "remark": "供应商:SUP123 退货描述",
  "is_check": true,
  "reason": "采购退料出库",
  "goods_list": [
    {
      "spec_no": "MAT001",
      "num": 100,
      "remark": ""
    }
  ]
}

4. 数据写入目标平台

最后,将构建好的JSON请求体通过HTTP POST方法发送到旺店通·旗舰版API接口:

POST /wms.stockout.Other.createOther HTTP/1.1
Host: api.wangdian.cn
Content-Type: application/json

{
   // JSON 请求体内容
}

通过轻易云数据集成平台,可以实时监控这一步骤的数据流动和处理状态,确保每个环节都透明可视。

总结

本文详细探讨了如何使用轻易云数据集成平台,将金蝶系统中的采购退料单数据进行ETL转换,并写入到旺店通·旗舰版内部仓退API接口中。通过对元数据配置的深入理解和应用,我们能够实现不同系统间的数据无缝对接,大大提升了业务流程的效率和透明度。 钉钉与WMS系统接口开发配置

更多系统对接方案