金蝶云星空与旺店通·企业奇门数据集成案例:采购入库单高效对接方案
在本次项目中,我们将重点解析如何实现金蝶云星空的采购入库单与旺店通·企业奇门的其他入库单之间的数据集成。此案例通过使用executeBillQuery
接口从金蝶云星空提取数据,并利用wdt.stockin.order.push
接口将数据写入到旺店通系统。当面临大量数据快速处理、定时可靠抓取以及异常重试机制等技术挑战时,我们为确保整个集成过程的顺利进行,采取了一系列优化措施。
首先,为了确保每一条采购入库单不会漏单,我们采用了定时任务机制,通过周期性地调用金蝶云星空的executeBillQuery
接口来抓取最新数据,同时实时监控各项指标。这不仅保证了无缝衔接,也提高了整体流程的透明度和可靠性。
其次,在面对庞大的订单量需要批量导入旺店通·企业奇门平台的问题上,我们实现了一套高效的数据写入策略。通过拆分大批量请求并行处理,同步调用多个 wdt.stockin.order.push
接口,使得写入速度得到显著提升。此外,还针对API限流问题进行了合理分页设置,以规避短时间内过多请求引发的响应超时或失败情况。
在具体操作过程中,不同系统之间的数据格式差异是无法避免的重要难题。因此,针对金蝶云星空与旺店通间不一致的数据结构,我们设计了一套灵活且可维护的数据映射规则,将源端复杂字段转换为目标端所需格式,并融汇于整个工作流之中,有效减少手工干预,提高自动化程度。同时,对可能出现错误或异常进行全面检测,一旦捕获即实施重试机制,最大限度保证最终结果的一致性和准确性。
综上,本案例不仅展示了前沿的数据对接解决方案,更提供了一份参考蓝图,用以应对未来类似场景中的各种挑战。在后续内容中,我们将深入探讨这些技术细节及其具体实现方法。
调用金蝶云星空接口executeBillQuery获取并加工数据
在数据集成过程中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用金蝶云星空的executeBillQuery
接口,以获取采购入库单的数据,并对其进行必要的加工处理。
接口配置与调用
首先,我们需要根据元数据配置来设置接口请求参数。以下是关键的配置项:
- API:
executeBillQuery
- Method:
POST
- FormId:
STK_InStock
(业务对象表单ID) - FieldKeys: 需查询的字段集合
- FilterString: 过滤条件
- Pagination: 分页参数
具体的请求参数如下:
{
"api": "executeBillQuery",
"method": "POST",
"number": "FBillNo",
"id": "FInStockEntry_FEntryId",
"pagination": {
"pageSize": 500
},
"idCheck": true,
"request": [
{"field":"FInStockEntry_FEntryId","label":"id","type":"string","value":"FInStockEntry_FEntryId"},
{"field":"FID","label":"实体主键","type":"string","value":"FID"},
{"field":"FBillNo","label":"单据编号","type":"string","value":"FBillNo"},
{"field":"FDocumentStatus","label":"单据状态","type":"string","value":"FDocumentStatus"},
{"field":"FStockOrgId_FNumber","label":"收料组织","type":"string","value":"FStockOrgId.FNumber"},
{"field":"FDate","label":"入库日期","type":"string","value":"FDate"},
{"field":"FBillTypeID_FNumber","label":"单据类型","type":"string","value":"FBillTypeID.FNumber"},
{"field":"FOwnerTypeIdHead","label":"货主类型","type":"string","value":"FOwnerTypeIdHead"},
{"field":"FOwnerIdHead_FNumber","label":"货主","type":"string","value":"FOwnerIdHead.FNumber"}
],
"otherRequest": [
{"field": "Limit", "label": "最大行数", "type": "string", "describe": "金蝶的查询分页参数", "value": "2000"},
{"field": "StartRow", "label": "开始行索引", "type": "string", "describe": "金蝶的查询分页参数"},
{"field": "TopRowCount", "label": "返回总行数", "type": "int", "describe": "金蝶的查询分页参数"},
{"field": "FilterString",
"label":
"过滤条件",
"type":
"string",
"describe":
"示例写法 FSupplierId.FNumber = 'VEN00010' and FApproveDate>=",
"value":
"FApproveDate>='{{LAST_SYNC_TIME|dateTime}}' and FDocumentStatus='C'"
},
{"field":
"FieldKeys",
"label":
"需查询的字段key集合",
"type":
"array",
"describe":
"金蝶分录主键ID格式:FPOOrderEntry_FEntryId,其它格式 FPurchaseOrgId.FNumber",
"parser":{
"name":
"ArrayToString",
"params":
","
}
},
{"field":
"FormId",
"label":
"业务对象表单Id",
type:
string,
describe:
必须填写金蝶的表单ID如:PUR_PurchaseOrder,
value:
STK_InStock
}
]
}
数据获取与处理
- 发送请求:通过POST方法向金蝶云星空发送请求,获取采购入库单的数据。
- 解析响应:解析返回的数据,确保每个字段都能正确映射到我们的元数据配置中。
- 数据清洗:根据业务需求,对数据进行清洗和转换。例如,将日期格式统一、过滤掉无效数据等。
- 存储与传输:将处理后的数据写入目标系统,如旺店通其他入库单。
以下是一个示例代码片段,用于发送请求并处理响应:
import requests
import json
url = 'https://api.kingdee.com/executeBillQuery'
headers = {'Content-Type': 'application/json'}
payload = {
'FormId': 'STK_InStock',
'FieldKeys': 'FID,FBillNo,FDocumentStatus,FStockOrgId.FNumber,FDate,FBillTypeID.FNumber',
'FilterString': f'FApproveDate>="{LAST_SYNC_TIME}" and FDocumentStatus="C"',
}
response = requests.post(url, headers=headers, data=json.dumps(payload))
data = response.json()
# 数据清洗与转换
cleaned_data = []
for entry in data['Result']['Response']['Data']:
cleaned_entry = {
'id': entry['FInStockEntry_FEntryId'],
'bill_no': entry['FBillNo'],
'status': entry['FDocumentStatus'],
'org_id': entry['FStockOrgId.FNumber'],
'date': entry['FDate'],
# 添加更多字段映射...
}
cleaned_data.append(cleaned_entry)
# 将清洗后的数据写入目标系统
# write_to_target_system(cleaned_data)
注意事项
- 分页处理:由于接口返回的数据量可能较大,需要进行分页处理。可以通过调整
StartRow
和Limit
参数来实现。 - 错误处理:在实际操作中,可能会遇到网络问题或接口异常,需要做好错误捕获和重试机制。
- 安全性:确保在传输过程中使用HTTPS协议,并对敏感信息进行加密处理。
通过上述步骤,我们可以高效地从金蝶云星空获取采购入库单的数据,并进行必要的加工处理,为后续的数据集成奠定基础。
使用轻易云数据集成平台进行ETL转换并写入旺店通·企业奇门API接口
在数据集成生命周期的第二步,我们需要将已经集成的源平台数据进行ETL(Extract, Transform, Load)转换,并最终写入目标平台——旺店通·企业奇门API接口。以下是详细的技术实现过程。
元数据配置解析
首先,我们需要理解元数据配置,以便正确地进行ETL操作。以下是元数据配置的关键部分:
{
"api": "wdt.stockin.order.push",
"effect": "EXECUTE",
"method": "POST",
"idCheck": true,
"operation": {
"method": "merge",
"field": "FBillNo,FStockId_FNumber",
"bodyName": "goods_list",
"bodySum": ["FRealQty"],
"header": ["FBillNo", "FStockId_FNumber", "FNote"],
"body": ["FMaterialId_FNumber", "FRealQty", "FPrice", "FTaxPrice", "F_USQR_TEXT"]
},
"request": [
{"field": "is_check", "label": "自动审核", "type": "string", "value": "1"},
{"field": "outer_no", "label": "外部单号", "type": "string", "value": "{FBillNo}"},
{"field": "warehouse_no", "label": "仓库编码", "type": "string", "value": "{FStockId_FNumber}"},
{"field": "remark", "label": "备注", "type":
![金蝶与MES系统接口开发配置](https://pic.qeasy.cloud/T29.png~tplv-syqr462i7n-qeasy.image)