案例分享:金蝶云星空调拨单同步到旺店通其他出库单(中专仓默认货位)
在本案例中,我们将探讨如何利用轻易云数据集成平台,将金蝶云星空系统的调拨单数据高效、可靠地同步至旺店通·企业奇门的其他出库单模块,并将默认为中专仓的货位进行管理。该方案涉及多项技术要点,包括API接口调用、数据质量监控和异常处理,旨在确保数据无缝对接、高效运行。
首先,通过金蝶云星空提供的API接口executeBillQuery,定时且可靠地抓取所需的数据。此过程不仅要求高吞吐量的数据写入能力以支持大量数据快速传输,还需要应对分页和限流带来的挑战。因此,我们制定了详细的数据获取策略,以确保不会出现漏单现象。
为了处理两大系统之间的数据格式差异,我们使用了自定义的数据转换逻辑,环节包括字段映射和数据类型转换等,使得最终输出符合旺店通·企业奇门API规范。对于这一部分,对接所使用的API接口是wdt.stockout.order.push,可以实现批量写入操作,以提高整体效率,同时借助实时监控与告警机制来跟踪任务状态及性能表现。
另外,在实际应用过程中,不可忽视的是异常处理与错误重试机制。例如,当网络不稳定或外部依赖服务不可用时,保证集成任务能够自动检测并进行有效重试,从而避免资源浪费和重复操作。
通过这些措施,不仅成功实现了从金蝶云星空到旺店通·企业奇门之间的顺利对接,同时也提升了整个业务流程透明度和灵活性,为进一步优化资源配置打下坚实基础。在随后的内容中,将具体展示每一个实施步骤以及代码示例。
调用金蝶云星空接口executeBillQuery获取并加工数据
在数据集成的生命周期中,第一步是从源系统获取数据,并对其进行初步加工。本文将详细探讨如何通过轻易云数据集成平台调用金蝶云星空的executeBillQuery
接口来实现这一过程。
接口配置与调用
金蝶云星空的executeBillQuery
接口主要用于查询业务单据。我们需要通过POST请求方式调用该接口,并传递必要的参数以获取所需的数据。以下是元数据配置中的关键字段及其作用:
- api:
"executeBillQuery"
- 指定要调用的API。 - method:
"POST"
- 指定请求方法为POST。 - number:
"FBillNo"
- 单据编号字段。 - id:
"FBillEntry_FEntryID"
- 分录主键ID字段。 - idCheck:
true
- 启用ID检查。
请求参数详解
请求参数分为两部分:request
和otherRequest
。其中,request
部分包含了具体的业务字段,而otherRequest
则包含了一些控制查询行为的参数。
request 部分
以下是一些关键字段及其描述:
- FBillEntry_FEntryID: 分录主键ID。
- FID: 单据内码。
- FBillNo: 单据编号。
- FDocumentStatus: 单据状态。
- FStockOrgId_FNumber: 库存组织编码。
- FDate: 日期。
- FBillTypeID_FNumber: 单据类型编码。
这些字段在实际调用时会被映射到相应的业务数据中,以确保查询结果的准确性和完整性。
otherRequest 部分
控制查询行为的参数包括:
- Limit: 分页参数,指定每页返回的数据量。
- FieldKeys: 查询返回的字段列表,例如:
"FPOOrderEntry_FEntryId, FPurchaseOrgId.FNumber"
。 - TopRowCount: 查询前N条记录,用于限制返回结果数量。
- FilterString: 过滤条件字符串,例如:
"FApproveDate>='{{LAST_SYNC_TIME|datetime}}' and FStockOrgId.FNumber='100'"
,用于精确筛选数据。 - FormId: 表单ID,例如:
"STK_TransferDirect"
,必须填写以指定查询的业务表单类型。 - StartRow: 分页起始行,用于控制分页查询。
实际应用案例
假设我们需要同步调拨单到旺店通其他出库单(中专仓默认货位),可以通过以下步骤实现:
-
配置请求参数:
{ "api": "executeBillQuery", "method": "POST", "number": "FBillNo", "id": "FBillEntry_FEntryID", "idCheck": true, "request": [ {"field": "FBillEntry_FEntryID", "value": "FBillEntry_FEntryID"}, {"field": "FID", "value": "FID"}, {"field": "FBillNo", "value": "FBillNo"}, {"field": "FDocumentStatus", "value": "FDocumentStatus"}, {"field": "FStockOrgId_FNumber", "value": "FStockOrgId.FNumber"}, {"field": "FDate", "value": "FDate"}, {"field": "FBillTypeID_FNumber", "value": "FBillTypeID.FNumber"} ], ... }
-
配置过滤条件:
{ ... "otherRequest": [ {"field": "Limit", "value": "{PAGINATION_PAGE_SIZE}"}, {"field": "FieldKeys", "value":"FBillEntry_FEntryID, FBillNo, FDocumentStatus, FStockOrgId.FNumber, FDate, FBillTypeID.FNumber"}, {"field":"FilterString","value":"FApproveDate>='{{LAST_SYNC_TIME|datetime}}' and FStockOrgId.FNumber='100' and FSrcStockId.FNumber ='01.08' and (FDestStockId.FNumber ='01.06' or FDestStockId.FNumber ='CK001')"}, {"field":"FormId","value":"STK_TransferDirect"} ] }
-
发起API请求并处理响应:
import requests import json url = 'https://api.kingdee.com/executeBillQuery' headers = {'Content-Type': 'application/json'} payload = { # 填入上述配置 } response = requests.post(url, headers=headers, data=json.dumps(payload)) if response.status_code == 200: data = response.json() # 对返回的数据进行处理 process_data(data) else: print(f"Error {response.status_code}: {response.text}")
通过上述步骤,我们可以成功调用金蝶云星空接口获取调拨单数据,并对其进行初步加工,为后续的数据转换与写入做好准备。这一过程不仅提高了数据集成的效率,也确保了数据的一致性和准确性。
将调拨单同步到旺店通其他出库单的ETL转换
在数据集成生命周期的第二步中,我们需要将已经从源平台集成的数据进行ETL(提取、转换、加载)处理,以适配目标平台——旺店通·企业奇门API接口的格式。本文将详细探讨如何通过轻易云数据集成平台完成这一过程。
API接口配置与数据映射
首先,我们需要明确目标API接口的配置和数据映射关系。本文使用的API接口为wdt.stockout.order.push
,其请求方法为POST,并且需要进行ID校验。以下是具体的元数据配置:
{
"api": "wdt.stockout.order.push",
"effect": "EXECUTE",
"method": "POST",
"idCheck": true,
"request": [
{
"field": "outer_no",
"label": "外部单号",
"type": "string",
"value": "{FBillNo}"
},
{
"field": "warehouse_no",
"label": "仓库编号",
"type": "string",
"value": "005"
},
{
"field": "remark",
"label": "备注",
"type": "string",
"value": "金蝶调拨单"
},
{
"field": "is_check",
"label": "是否审核",
"type": "string",
"value": "1"
},
{
"field": "detail_list",
...
数据提取与转换
在数据提取阶段,我们从源平台获取调拨单的数据,这些数据通常包括单据编号、仓库编号、备注信息、审核状态以及货品明细等。在轻易云平台上,这些字段通过元数据配置中的request
部分进行定义和映射。
例如,外部单号(outer_no
)对应的是源平台的FBillNo
字段,仓库编号(warehouse_no
)固定为"005",备注(remark
)固定为"金蝶调拨单",审核状态(is_check
)固定为"1"。
货品明细部分则是一个数组结构,包含多个字段,如商家编码(spec_no
)、出库数量(num
)、批次(batch_no
)等。这些字段通过子节点进行定义和映射,例如:
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
field: 'spec_no',
label: '商家编码',
type: 'string',
value: '{{detail_listss.FMaterialId_FNumber}}'
},
field: 'num',
label: '出库数量',
type: 'string',
value: '{{detail_listss.FQty}}'
}
}
}
}
}
}
}
}
}
}
}
}
数据加载
在数据转换完成后,我们需要将这些数据写入目标平台——旺店通·企业奇门API接口。这个过程同样通过轻易云平台实现,具体操作包括:
- 合并操作:根据元数据配置中的操作部分,我们需要对某些字段进行合并处理。例如,通过合并操作将多个货品明细节点合并到一个数组中。
- 延迟处理:有时为了确保数据的一致性和完整性,我们可能需要设置一定的延迟时间。在本例中,延迟时间设置为140秒。
以下是元数据配置中的操作部分示例:
{
...
operation: {
method: 'merge',
field: 'FBillNo',
bodyName: 'detail_listss',
bodySum: ['FQty'],
header: ['FBillNo', 'FSrcStockId_FNumber'],
body: ['FMaterialId_FNumber', 'FQty', 'FDestStockLocId_FNumber1', 'FDestStockLocId_FNumber2', 'FDestStockLocId_FNumber3', 'FDestStockLocId_FNumber4', 'FLot_FNumber']
},
delay: 140
}
实际案例应用
在实际应用中,通过轻易云平台,我们可以轻松地将来自不同源系统的数据提取、转换并加载到目标系统中。以调拨单同步为例,通过上述配置和操作步骤,可以确保调拨单的数据准确无误地传输到旺店通其他出库单中,实现不同系统间的数据无缝对接。
以上就是通过轻易云数据集成平台,将已经集成的源平台数据进行ETL转换,并最终写入目标平台旺店通·企业奇门API接口的全过程。希望这些技术细节能够帮助您更好地理解和应用这一过程。