高效集成:金蝶与旺店通的数据ETL转换实战案例

  • 轻易云集成顾问-杨嫦

金蝶分布式调出单集成至旺店通·企业奇门:技术案例分享

在复杂的商业环境中,数据集成是实现高效流程管理的重要一环。本文将具体探讨如何通过轻易云数据集成平台,将金蝶云星空的分布式调出单无缝对接到旺店通·企业奇门系统,实现组织内的数据流转自动化。

为了确保整个集成过程顺畅,我们首先需要处理金蝶云星空接口executeBillQuery与旺店通·企业奇门接口wdt.stockout.transfer.push之间的数据转换及传输。通过executeBillQuery接口从金蝶云星空获取调出单数据时,需要特别注意分页和限流问题,以保证大数据量抓取的稳定性。同时,定时可靠的抓取机制确保了业务操作中的实时性需求。

紧接着,在向旺店通·企业奇门推送数据之前,需要解决两套系统间的数据格式差异。这一步骤要求精确映射字段,并根据业务规则进行必要的转换。此外,为应对在写入过程中可能出现的异常情况,我们设计并实现了错误重试机制,提高了整个流程的健壮性和稳定性。

最终,实现批量高效的数据写入这是关键,wdt.stockout.transfer.push接口需支持大量请求同时提交,通过优化API调用策略,可以极大提高后端系统响应速度和整体效率。在这个过程中,实时监控与日志记录功能也不可或缺,它们不仅帮助及时识别并处理潜在问题,还为后续维护提供详细依据。

以下部分将详细剖析各个步骤中的具体技术实现,从构建API调用策略、处理数据格式差异,到设计异常处理机制等方面,全方位展示这个系统对接案例中的技术要点。 如何开发用友BIP接口

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

在数据集成过程中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用金蝶云星空的executeBillQuery接口,以获取并加工调出单数据。

接口配置与请求参数

首先,我们需要配置调用金蝶云星空接口的元数据。以下是关键的元数据配置项:

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

这些配置项定义了我们要调用的API、请求方法以及关键字段。

请求参数详解

在实际调用中,我们需要构建一个包含所有必要字段的请求体。以下是一些关键字段及其描述:

  • FSTKTRSOUTENTRY_FEntryID: 分录ID
  • FID: 实体主键
  • FBillNo: 单据编号
  • FDocumentStatus: 单据状态
  • FStockOrgID_FNumber: 调入库存组织编号
  • FDate: 日期
  • FBillTypeID: 单据类型
  • FTransferDirect: 调拨方向
  • FNOTE: 备注

此外,还有一些分页和过滤参数,例如:

  • Limit: 最大行数,控制每次查询返回的数据量。
  • StartRow: 开始行索引,用于分页查询。
  • FilterString: 过滤条件,例如:FSupplierId.FNumber = 'VEN00010' and FApproveDate>='2023-01-01'

这些参数可以帮助我们精准地获取所需的数据,并控制查询的范围和结果集大小。

构建请求体

根据上述元数据和请求参数,我们可以构建一个完整的请求体。例如:

{
  "FormId": "STK_TRANSFEROUT",
  "FieldKeys": "FBillNo,FDate,FDocumentStatus,FStockOrgID.FNumber",
  "FilterString": "FApproveDate>='2023-01-01' and FTransferBizType = 'InnerOrgTransfer'",
  "Limit": 100,
  "StartRow": 0
}

这个请求体指定了我们要查询的表单ID、字段集合、过滤条件以及分页参数。

调用API并处理响应

使用轻易云平台提供的可视化界面,我们可以很方便地发送上述请求,并实时监控响应结果。以下是一个示例代码片段,用于发送HTTP POST请求:

import requests

url = "https://api.kingdee.com/executeBillQuery"
headers = {
    "Content-Type": "application/json"
}
payload = {
    "FormId": "STK_TRANSFEROUT",
    "FieldKeys": ["FBillNo", "FDate", "FDocumentStatus", "FStockOrgID.FNumber"],
    "FilterString": "FApproveDate>='2023-01-01' and FTransferBizType = 'InnerOrgTransfer'",
    "Limit": 100,
    "StartRow": 0
}

response = requests.post(url, json=payload, headers=headers)
data = response.json()

# 数据处理逻辑
for entry in data:
    print(f"单据编号: {entry['FBillNo']}, 日期: {entry['FDate']}, 状态: {entry['FDocumentStatus']}")

在这个示例中,我们发送了一个POST请求,并解析了返回的数据。接下来,可以根据业务需求对数据进行进一步处理,例如存储到数据库或传递给下游系统。

数据清洗与转换

获取到原始数据后,通常需要进行清洗和转换。例如,将日期格式标准化、过滤掉无效记录等。这一步骤可以通过轻易云平台内置的数据处理工具实现,也可以使用自定义脚本进行处理。

cleaned_data = []
for entry in data:
    if entry['FDocumentStatus'] == 'C':
        cleaned_entry = {
            'BillNo': entry['FBillNo'],
            'Date': entry['FDate'],
            'StockOrg': entry['FStockOrgID.FNumber']
        }
        cleaned_data.append(cleaned_entry)

# 将清洗后的数据写入目标系统或数据库

以上代码示例展示了如何过滤掉未审核的记录,并提取所需字段进行存储。

通过以上步骤,我们完成了从调用源系统接口到获取并加工数据的全过程。这不仅提高了数据处理效率,还确保了数据的一致性和准确性。 钉钉与CRM系统接口开发配置

使用轻易云数据集成平台实现金蝶分布式调出单到旺店通调出单的ETL转换

在数据集成过程中,ETL(Extract, Transform, Load)是一个关键步骤。本文将详细探讨如何利用轻易云数据集成平台,将金蝶分布式调出单的数据转换为旺店通·企业奇门API接口所能接收的格式,并最终写入目标平台。

1. 数据提取与清洗

首先,我们需要从源系统(金蝶分布式)提取数据,并进行必要的清洗和预处理。这一步骤确保了我们获取的数据是准确且符合要求的。在轻易云数据集成平台中,这一步已经完成,我们将重点关注如何将这些清洗后的数据进行转换并写入目标系统。

2. 数据转换与写入

接下来,我们将详细介绍如何配置元数据,将金蝶分布式调出单的数据转换为旺店通·企业奇门API接口所能接收的格式。

2.1 配置API接口

根据提供的元数据配置,我们需要调用wdt.stockout.transfer.push API接口,该接口用于将调拨单信息推送到旺店通系统。以下是该接口的主要配置参数:

  • api: wdt.stockout.transfer.push
  • method: POST
  • effect: EXECUTE
  • idCheck: true
2.2 配置请求参数

请求参数包括头部信息和货品详情信息。以下是具体的字段映射:

头部信息
  • src_order_no(源单号):通过MongoDB查询获取调拨单号。
  • is_check(是否审核):设置为自动审核,值为1
  • warehouse_no(仓库编号):对应金蝶中的仓库编号,值为{FSrcStockID_FNumber}
  • outer_no(外部单号):对应金蝶中的外部单号,值为{FBillNo}
  • logistics_code(物流公司编号):物流公司唯一编码。
  • logistics_no(物流单号):物流公司的运单号。
  • remark(备注):备注信息,值为{FNOTE}
货品详情信息

货品详情是一个数组,每个元素包含以下字段:

  • spec_no(商家编码):对应金蝶中的物料编码,值为{{detail_list.FMaterialID_FNumber}}
  • num(库存数量):对应金蝶中的库存数量,值为{{detail_list.F_UHZG_JJQty}}
  • remark(备注):货品明细备注,值为{{detail_list.FEntryNote}}
  • batch_no(批号):批次号,值为{{detail_list.FLOT}}.
2.3 配置操作方法

在元数据配置中,我们需要定义操作方法,以确保数据能够正确地从源系统转换并写入目标系统。这里使用的是合并操作:

{
    "method": "merge",
    "field": "FBillNo,FSrcStockID_FNumber",
    "bodyName": "detail_list",
    "header": ["FBillNo", "FSrcStockID_FNumber", "FNOTE"],
    "body": ["FMaterialID_FNumber", "F_UHZG_JJQty", "FEntryNote", "FLOT"]
}
2.4 完整请求示例

综合以上配置,一个完整的请求示例如下:

{
    "api": "wdt.stockout.transfer.push",
    "method": "POST",
    "effect": "EXECUTE",
    "idCheck": true,
    "operation": {
        "method": "merge",
        "field": "FBillNo,FSrcStockID_FNumber",
        "bodyName": "detail_list",
        "header": ["FBillNo", "FSrcStockID_FNumber", "FNOTE"],
        "body": ["FMaterialID_FNumber", "F_UHZG_JJQty", "FEntryNote", "FLOT"]
    },
    "request": [
        {
            ...
        }
    ],
    ...
}

总结

通过上述步骤,我们成功地将金蝶分布式调出单的数据进行了ETL转换,并将其推送到旺店通·企业奇门API接口中。这一过程不仅保证了数据的一致性和准确性,也提高了业务处理的效率。利用轻易云数据集成平台强大的元数据配置功能,可以轻松实现复杂的数据转换需求,为企业的数据集成提供了有力支持。 用友与WMS系统接口开发配置

更多系统对接方案