数据集成实战:从旺店通到金蝶云星空的全过程

  • 轻易云集成顾问-何语琴
### 系统对接集成案例分享:旺店通·企业奇门数据集成到金蝶云星空 在本案例中,我们将探讨如何通过轻易云数据集成平台实现旺店通·企业奇门的入库单管理与金蝶云星空其他入库单的无缝对接。具体方案类型为【类型:调拨入库】。 #### 数据获取和处理 首先,通过调用`wdt.stockin.order.query`接口从旺店通·企业奇门系统实时抓取所需的数据。我们设计了可靠的定时任务,以确保数据能够及时、准确地被获取,并且设有分页和限流机制来应对大规模数据请求,从而保障系统稳定性。 #### 数据转换与映射 鉴于两套系统间的数据格式差异,我们需要进行自定义的数据转换逻辑。利用轻易云提供的可视化数据流设计工具,直观地制定了转换规则,使得各字段能顺利映射至目标格式。这一过程不仅提高了开发效率,还减少了人为错误的可能性。 #### 批量写入与异常处理 为了保证高效的数据传输,应用高吞吐量写入能力,将大量转化后的数据批量上传至金蝶云星空,通过其`batchSave`接口完成写入操作。同时,为防止过程中出现网络波动或服务器响应超时等异常情况,建立了一套完善的异常检测与重试机制,确保每条记录都能成功存储,不漏单、不丢失。 #### 实时监控和日志记录 得益于轻易云集中监控和告警系统,我们在整个数据集成流程中实施了全面实时监控,包括接口调用次数、执行时间、成功率以及潜在错误,这些信息会完整记录到日志文件中以供后续分析和优化使用。 以上步骤展示的是该技术方案初步构建中的关键环节。在本次分享之后,对具体配置细节及更多功能点进行深度剖析,让大家更好地理解并应用这一方案,提高业务运作效率。 ![数据集成平台可视化配置API接口](https://pic.qeasy.cloud/D2.png~tplv-syqr462i7n-qeasy.image) ### 调用源系统旺店通·企业奇门接口wdt.stockin.order.query获取并加工数据 在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将详细探讨如何使用轻易云数据集成平台配置元数据,通过调用旺店通·企业奇门接口`wdt.stockin.order.query`来获取并加工调拨入库单的数据。 #### 接口概述 接口`wdt.stockin.order.query`用于查询旺店通系统中的入库单信息。该接口支持按时间增量获取、按状态过滤等多种查询方式,能够灵活地满足不同业务场景的需求。 #### 元数据配置解析 以下是针对该接口的元数据配置: ```json { "api": "wdt.stockin.order.query", "effect": "QUERY", "method": "POST", "number": "order_no", "id": "stockin_id", "name": "order_no", "idCheck": true, "request": [ { "field": "start_time", "label": "开始时间", "type": "string", "describe": "按最后修改时间增量获取数据,start_time作为开始时间,格式:yyyy-MM-dd HH:mm:ss", "value": "{{DAYS_AGO_1|datetime}}" }, { "field": "end_time", "label": "结束时间", "type": "string", "describe": "按最后修改时间增量获取数据,end_time作为结束时间,格式:yyyy-MM-dd HH:mm:ss", "value": "{{CURRENT_TIME|datetime}}" }, { "field": "order_type", "label": "单据类别", "type": "string", "describe": [ {"1":"采购入库"}, {"2":"调拨入库"}, {"4":"盘盈入库"}, {"5":"生产入库"}, {"6":"其他入库"}, {"7":"保修入库"}, {"8":"纠错入库"}, {"9":"初始化入库"}, {"10":"预入库"}, {"11":"JIT退货入库"}, {"12":"委外入库"} ], // 本次集成方案选择调拨入库 // value: 2 }, { // 入库单状态 // value: 80 }, { // 仓库编号 }, { // 上层单据编号 }, { // 入库单号 }, { // 外部API单号 } ], // 分页相关参数 // page_size: {PAGINATION_PAGE_SIZE} // page_no: {PAGINATION_START_PAGE} } ``` #### 请求参数详解 - **start_time** 和 **end_time**:用于按最后修改时间增量获取数据。`start_time`表示开始时间,`end_time`表示结束时间,格式为`yyyy-MM-dd HH:mm:ss`。在实际应用中,可以通过模板变量如`{{DAYS_AGO_1|datetime}}`和`{{CURRENT_TIME|datetime}}`动态生成。 - **order_type**:指定源单据类别。本次集成方案选择调拨入库,因此值为`2`。 - **status**:用于过滤特定状态的入库单。例如,值为`80`表示已完成的单据。 - **warehouse_no**、**src_order_no**、**stockin_no**、**outer_no**:这些字段用于更精确地查询特定条件下的入库单信息。 - **page_size** 和 **page_no**:分页参数,用于控制每页返回的数据条数和页号。 #### 数据请求与清洗 在调用接口时,我们需要构建一个完整的请求体,根据元数据配置填充必要的字段。例如: ```json { 'start_time': '2023-10-01 00:00:00', 'end_time': '2023-10-02 00:00:00', 'order_type': '2', 'status': '80', 'page_size': '40', 'page_no': '0' } ``` 通过POST方法发送请求后,系统会返回符合条件的调拨入库单数据。接下来,需要对返回的数据进行清洗和转换,以便后续写入目标系统(如金蝶)的操作。 #### 数据转换与写入 在清洗过程中,我们需要确保数据格式和字段名称符合目标系统的要求。例如,将旺店通返回的数据字段映射到金蝶系统所需的字段: ```json { 'stockin_id': 'id', 'order_no': 'number', ... } ``` 通过这种方式,我们可以实现不同系统间的数据无缝对接,确保业务流程顺畅运行。 #### 实时监控与优化 轻易云平台提供了实时监控功能,可以随时查看数据流动和处理状态。这有助于及时发现和解决潜在问题,提高整体效率。 综上所述,通过合理配置元数据并调用旺店通·企业奇门接口,我们可以高效地获取并加工调拨入库单的数据,为后续的数据转换与写入奠定基础。 ![金蝶与SCM系统接口开发配置](https://pic.qeasy.cloud/S1.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台实现金蝶云星空API接口的数据转换与写入 在数据集成的生命周期中,数据转换与写入是至关重要的一步。本文将详细探讨如何使用轻易云数据集成平台,将源平台(如旺店通)的数据转换为目标平台(金蝶云星空API接口)所能接收的格式,并最终写入目标平台。 #### 元数据配置解析 在进行数据转换与写入之前,我们需要了解元数据配置。这些配置定义了如何将源数据映射到目标平台的数据结构中。 ##### 基础字段配置 1. **单据编号 (FBillNo)** - 类型:字符串 - 描述:单据编号 - 映射:`{order_no}` 2. **单据类型 (FBillTypeID)** - 类型:字符串 - 描述:单据类型 - 解析器:`ConvertObjectParser`,参数为`FNumber` - 固定值:`QTRKD03_SYS` 3. **库存组织 (FStockOrgId)** - 类型:字符串 - 描述:组织 - 解析器:`ConvertObjectParser`,参数为`FNumber` - 固定值:`100` 4. **日期 (FDate)** - 类型:字符串 - 描述:日期 - 映射:`{stockin_time}` 5. **部门 (FDEPTID)** - 类型:字符串 - 描述:基础资料 - 解析器:`ConvertObjectParser`,参数为`FNumber` - 固定值:`BM000003` 6. **货主类型 (FOwnerTypeIdHead)** - 类型:字符串 - 描述:多类别基础资料列表 - 固定值:`BD_OwnerOrg` 7. **货主 (FOwnerIdHead)** - 类型:字符串 - 描述:多类别基础资料 - 解析器:`ConvertObjectParser`,参数为`FNumber` - 固定值:`100` 8. **备注 (FNOTE)** - 类型:字符串 - 描述:多行文本 - 映射:`{remark}` 9. **供应商 (FSUPPLIERID)** - 类型: 字符串 - 解析器: `ConvertObjectParser`, 参数为 `FNumber` - 固定值: `SP001` ##### 明细信息配置 明细信息是一个数组,每个元素包含以下字段: 1. **物料编码 (FMATERIALID)** - 类型: 字符串 - 描述: 基础资料 - 解析器: `ConvertObjectParser`, 参数为 `FNumber` - 映射: `{{details_list.spec_no}}` 2. **收货仓库 (FSTOCKID)** - 类型: 字符串 - 描述: 基础资料 - 解析器: `ConvertObjectParser`, 参数为 `FNumber` - 映射: `{warehouse_no}` 3. **实收数量 (FQty)** - 类型: 字符串 - 描述: 数量 - 映射: `{{details_list.goods_count}}` 4. **成本价 (FPrice)** - 类型: 字符串 - 描述: 单价 - 映射: `{{details_list.cost_price}}` 5. **备注 (FEntryNote)** – 类型: 字符串 – 描述: 多行文本 – 映射: `{{details_list.remark}}` 6. **源单编号 (FSRCBILLNO)** – 类型: 字符串 – 描述: 源单编号 – 映射: `{trade_no}` 7. **货主类型 (FOWNERTYPEID)** – 类型: 字符串 – 描述: 货主类型 – 固定值:`BD_OwnerOrg` 8. **货主 (FOWNERID)** – 类型 : 字符串 – 解析器 : `ConvertObjectParser`, 参数为 `FNumber` – 固定值 : `100` ##### 其他请求参数配置 1. **业务对象表单Id(FormId)** – 类型 : 字符串 – 必须填写金蝶的表单ID如 : PUR_PurchaseOrder – 固定值 : `STK_MISCELLANEOUS` 2. **验证基础资料(IsVerifyBaseDataField)** – 类型 : 布尔类 – 是否验证所有的基础资料有效性, 默认false(非必录) – 固定值 : true 3. **执行的操作(Operation)** – 类型 : 字符串 – 执行的操作 – 固定值 : Save 4. **提交并审核(IsAutoSubmitAndAudit)** – 类型 : 布尔类 – 提交并审核 – 固定值 : false #### 数据转换与写入过程 1. **数据请求与清洗** 在此阶段,我们从源系统获取原始数据,并进行必要的清洗和预处理。确保所有字段符合目标系统的要求,例如日期格式、数值精度等。 2. **数据转换** 根据元数据配置,将清洗后的源数据字段映射到目标系统所需的字段。例如,将旺店通中的订单号映射到金蝶云星空中的单据编号(FBillNo)。 ```json { "FBillNo": "{order_no}", "FBillTypeID": "QTRKD03_SYS", "FStockOrgId": "100", "FDate": "{stockin_time}", "FDEPTID": "BM000003", "FOwnerTypeIdHead": "BD_OwnerOrg", "FOwnerIdHead": "100", "FNOTE": "{remark}", "FSUPPLIERID": "SP001", ... } ``` 3. **构建请求体** 根据元数据配置构建完整的请求体,包括明细信息数组。确保每个字段都正确映射,并且所有必填项都有对应的值。 ```json { "FormId": "STK_MISCELLANEOUS", "IsVerifyBaseDataField": true, "Operation": "Save", ... } ``` 4. **发送请求** 使用POST方法将构建好的请求体发送到金蝶云星空API接口。确保处理响应并捕获任何错误信息,以便进行调试和修正。 ```python import requests url = 'https://api.kingdee.com/batchSave' headers = {'Content-Type': 'application/json'} response = requests.post(url, json=request_body, headers=headers) if response.status_code == 200: print("Data successfully written to Kingdee Cloud.") else: print(f"Error occurred: {response.text}") ``` 通过以上步骤,我们可以实现从源平台到金蝶云星空API接口的数据转换与写入。确保每个环节都严格按照元数据配置进行,可以极大提升集成过程的准确性和效率。 ![用友BIP接口开发配置](https://pic.qeasy.cloud/T1.png~tplv-syqr462i7n-qeasy.image)