金蝶云星空数据集成到聚水潭:技术案例分享
在一次项目中,我们需要将金蝶云星空系统的其他出库单(退货)数据,集成到聚水潭的其他进仓模块。为此,我们利用轻易云数据集成平台,通过高效的数据写入能力和可靠的监控告警系统,实现了这一复杂对接任务。这篇文章将盘点一些关键技术点及它们如何助力该集成过程。
1. API接口调用与分页处理
首先,为确保从金蝶云星空获取不漏单的数据,使用其API executeBillQuery
接口来抓取所需的其他出库单信息。在实际操作中,需要特别注意接口分页和限流问题。通过设置合理的批量请求参数以及实现重试机制,有效避免了因限流而导致的数据丢失或延迟。
POST /open/jushuitan/otherinout/upload HTTP/1.1
Host: api.example.com
Content-Type: application/json
{
"billType": "OT",
"dataList": [
{
...
}
]
}
2. 数据转换与格式差异处理
由于金蝶云星空和聚水潭之间存在数据结构上的差异,我们借助轻易云提供的自定义数据转换逻辑,将原始数据进行清洗、映射并调整至符合目标系统要求。同时,利用可视化的数据流设计工具,使得整个过程一目了然且便于管理。
3. 实时监控与异常处理
在整个集成过程中,通过集中监控和告警系统实时跟踪每个任务的状态。当出现异常情况时,即刻触发报警,并根据设定好的错误重试机制快速恢复,从而保证业务连续性。此外,还配置了详细日志记录功能,以随时查看历史操作及排查潜在问题。
这些关键点保障了我们能够顺利、高质量地完成此次对接项目。接下来,将进一步介绍具体实施方案,包括如何通过API接口实现大规模、高性能的数据传输,以及细节层面的优化策略。
调用金蝶云星空接口executeBillQuery获取并加工数据
在轻易云数据集成平台中,调用源系统的API接口是数据集成生命周期的第一步。本文将详细探讨如何通过调用金蝶云星空的executeBillQuery
接口获取并加工数据,以实现从金蝶到聚水潭的数据传输。
接口配置与请求参数
首先,我们需要配置调用金蝶云星空接口的元数据。以下是关键的元数据配置项:
- api:
executeBillQuery
- method:
POST
- effect:
QUERY
- number:
FBillNo
- id:
FEntity_FEntryID
- idCheck:
true
这些配置项定义了我们将要调用的API名称、请求方法以及一些关键字段,如单据编号和实体主键等。
请求参数详解
为了成功调用executeBillQuery
接口,我们需要构建一个包含所有必要字段的请求体。以下是主要的请求参数及其描述:
- FEntity_FEntryID: 分录ID,用于唯一标识每一条分录。
- FID: 实体主键,用于唯一标识每一张单据。
- FBillNo: 单据编号,用于标识具体单据。
- FDocumentStatus: 单据状态,过滤条件之一,通常选择已审核状态(如
C
)。 - FStockOrgId_FNumber: 库存组织编码。
- FDate: 单据日期。
- FBillTypeID: 单据类型。
- FNOTE: 备注信息。
- FMATERIALID_FNumber: 物料编码。
- FSTOCKID_FNumber: 发货仓库编码。
- FQty: 实收数量。
- FSTOCKSTATUSID: 库存状态。
- FOWNERID: 货主信息。
- FSRCBILLTYPEID: 源单类型。
- FSRCBILLNO: 源单编号。
此外,还有一些分页和过滤参数:
- Limit 和 StartRow 用于分页查询,确保一次性获取的数据量不会过大。
- FilterString 用于设置过滤条件,例如只查询特定时间段内且状态为已审核的退货单据:
FApproveDate>='{{LAST_SYNC_TIME|dateTime}}' and FDocumentStatus='C' and FStockDirect = 'RETURN'
。
请求示例
下面是一个示例请求体,展示了如何构建一个完整的API请求:
{
"FormId": "STK_MisDelivery",
"FieldKeys": "FID,FBillNo,FDocumentStatus,FStockOrgId.FNumber,FDate,FBillTypeID,FNOTE,FMATERIALID.FNumber,FSTOCKID.FNumber,FQty,FSTOCKSTATUSID,FOWNERID,FSRCBILLTYPEID,FSRCBILLNO",
"FilterString": "FApproveDate>='2023-01-01' and FDocumentStatus='C' and FStockDirect = 'RETURN'",
"Limit": 100,
"StartRow": 0
}
数据清洗与转换
在获取到原始数据后,我们需要对其进行清洗和转换,以便后续写入目标系统。在这个过程中,可以使用轻易云平台提供的数据处理工具,如字段映射、格式转换等。
例如,将金蝶中的物料编码字段FMATERIALID.FNumber
映射到聚水潭中的相应字段,并确保数据格式符合目标系统要求。
写入目标系统
完成数据清洗与转换后,下一步是将处理后的数据写入聚水潭系统。这通常涉及调用聚水潭提供的API接口,并传递经过处理的数据。
通过上述步骤,我们可以实现从金蝶到聚水潭的数据无缝对接,确保业务流程顺畅运行。
数据集成案例:金蝶其他出库单(退货)到聚水潭其他进仓
在数据集成过程中,将金蝶的其他出库单(退货)数据转换并写入到聚水潭的其他进仓API接口是一个典型的ETL(Extract, Transform, Load)过程。本文将详细探讨如何通过轻易云数据集成平台实现这一过程。
API接口配置与元数据解析
目标平台为聚水潭,其API接口为/open/jushuitan/otherinout/upload
,采用POST方法进行数据传输。以下是元数据配置的详细解析:
- is_confirm: 是否确认单据,类型为布尔值,默认值为false。使用函数判断条件
IF({F_POKM_JSTSTOCKNUMBER} = 10816570 , 1 , 0 )
来决定是否确认。 - excute_confirming: 是否审核单据,类型为字符串,默认值为false。
- wms_co_id: 分仓编号,类型为整数,对应金蝶系统中的字段
{F_POKM_JSTSTOCKNUMBER}
。 - type: 出入库类型,固定值为
in
表示入库(其它退货)。 - remark: 备注信息,不允许为空。格式为
金蝶其他出库单据推送(退货),单号:{FBillNo}
。 - drp_co_name: 出库类型,固定值为“其他退货”。
- external_id: 外部单号,用于唯一标识该单据。格式为
{FBillNo}{F_POKM_JSTSTOCKNUMBER}{F_POKM_JSTSTOCKNUMBER2}
。 - warehouse: 仓库类型,对应ERP仓库资料设定页面中的编号,由字段
{F_POKM_JSTSTOCKNUMBER2}
提供。 - items: 商品列表,为数组类型,每个商品包含两个字段:
- sku_id: 商品编码,对应金蝶系统中的字段
{FMATERIALID_FNumber}
。 - qty: 数量,对应金蝶系统中的字段
{FQty}
。
- sku_id: 商品编码,对应金蝶系统中的字段
数据转换与写入过程
-
提取数据(Extract) 从金蝶系统中提取所需的原始数据,包括订单号、分仓编号、商品编码和数量等。
-
数据转换(Transform) 使用轻易云平台的ETL工具对提取的数据进行转换,以满足聚水潭API接口的要求。例如:
- 使用条件判断函数设置是否确认单据的值。
- 拼接外部单号以确保唯一性。
- 格式化备注信息以符合API要求。
-
加载数据(Load) 将转换后的数据通过POST请求写入到聚水潭的API接口。以下是一个示例请求体:
{
"is_confirm": true,
"excute_confirming": "false",
"wms_co_id": 10816570,
"type": "in",
"remark": "金蝶其他出库单据推送(退货),单号:123456",
"drp_co_name": "其他退货",
"external_id": "1234561081657010816570",
"warehouse": 2,
"items": [
{
"sku_id": "SKU123",
"qty": 10
},
{
"sku_id": "SKU456",
"qty": 5
}
]
}
操作细节与注意事项
-
字段映射与验证 确保所有字段正确映射,并根据业务逻辑进行必要的验证。例如,确保分仓编号和商品编码在目标平台中有效。
-
错误处理与重试机制 在实际操作中,需要处理可能出现的错误,如网络问题或API响应异常。可以设置重试机制以提高可靠性。
-
实时监控与日志记录 利用轻易云平台提供的实时监控功能,跟踪每个ETL任务的执行状态,并记录日志以便后续分析和排查问题。
通过上述步骤,可以高效地将金蝶系统中的其他出库单(退货)数据转换并写入到聚水潭的其他进仓接口,实现不同系统间的数据无缝对接。这不仅提升了业务流程的自动化程度,还确保了数据的一致性和准确性。