使用轻易云平台实现旺店通到金蝶云星空的数据转换与写入

  • 轻易云集成顾问-张妍琪
### 【案例分享】旺店通·企业奇门数据集成到金蝶云星空 在今天的技术案例中,我们聚焦于一个具体的系统对接与集成场景:将旺店通·企业奇门的数据无缝集成到金蝶云星空,以便实现更高效的数据管理和业务流程整合。本次案例运行的方案名称为【类型:其他入库】旺店通-入库单管理==>金蝶-其他入库单。 #### 数据抓取与接口调用 首先,为了确保来自旺店通·企业奇门的数据不会遗漏,我们需要定时可靠地抓取其接口数据。通过调用`wdt.stockin.order.query` API,可以获取最新的入库单信息。这一步骤借助轻易云平台实现了全透明可视化操作,使得每个请求过程都清晰可见,方便随时监控和排错。同时,针对大批量数据处理过程中可能遇到的分页和限流问题,我们采用了适当的策略来分批进行API调用,以避免服务器压力过大而导致请求失败。 #### 数据写入与格式转换 针对从旺店通·企业奇门获得的数据需要快速且准确地写入到金蝶云星空系统,这里使用的是`batchSave` API。在数据写入前,需要注意两个系统间的数据格式差异。我们通过定制化数据映射,对获取到的数据进行格式转换,以契合金蝶云星空所需的数据模型要求,从而保证成功写入。另外,在实际操作过程中,还设计了一套异常处理与错误重试机制,确保任何因网络波动或服务不稳定引发的问题可以被有效捕捉并自动重试,大幅提高了整体系统对接的可靠性。 #### 实时监控与日志记录 为了进一步加强整个数据处理过程中的可追溯性及透明度,实时监控和详尽日志记录成为关键措施之一。每一条通过API传输的信息以及相应反馈都会被详细记录下来,并对重要节点设立多级报警机制,一旦出现异常情况可以第一时间通知相关维护人员进行处理,有效保障整个业务流程顺畅运行。 以上几个方面展示了怎样利用先进技术手段,实现不同系统间高效、稳定、安全的数据集成。在后续部分,将深入探讨更多技术细节及优化解决方案。 ![如何对接用友BIP接口](https://pic.qeasy.cloud/D12.png~tplv-syqr462i7n-qeasy.image) ### 调用旺店通·企业奇门接口wdt.stockin.order.query获取并加工数据 在数据集成生命周期的第一步,我们需要从源系统中获取数据,并对其进行初步加工。本文将详细介绍如何通过调用旺店通·企业奇门接口`wdt.stockin.order.query`来实现这一目标。 #### 接口概述 接口`wdt.stockin.order.query`用于查询入库单信息,支持按多种条件进行过滤和分页查询。该接口采用POST请求方式,返回符合条件的入库单数据。以下是元数据配置中的关键字段及其描述: - **api**: `wdt.stockin.order.query` - **method**: `POST` - **number**: `order_no` - **id**: `stockin_id` - **name**: `order_no` - **idCheck**: `true` #### 请求参数配置 请求参数主要分为两类:必填参数和可选参数。以下是具体的请求参数配置: 1. **必填参数** - `start_time`: 开始时间,格式为`yyyy-MM-dd HH:mm:ss`,用于按最后修改时间增量获取数据。 - `end_time`: 结束时间,格式为`yyyy-MM-dd HH:mm:ss`,用于按最后修改时间增量获取数据。 - `order_type`: 单据类别,此处固定为6(其他入库)。 - `status`: 入库单状态,此处固定为80(已完成)。 2. **可选参数** - `warehouse_no`: 仓库编号,用于获取指定仓库的单据信息。 - `src_order_no`: 上层单据编号,可以不传开始时间和结束时间。 - `stockin_no`: 入库单号,可以不传开始时间和结束时间。 - `outer_no`: 外部API单号,可以不传开始时间和结束时间。 3. **分页参数** - `page_size`: 每页返回的数据条数,默认值为40。 - `page_no`: 页号,默认从0页开始。 #### 请求示例 以下是一个完整的请求示例: ```json { "api": "wdt.stockin.order.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预入库11JIT退货入库12委外入库", "value": "6" }, { "field": "status", "label": "入库单状态", "type": "string", "describe": "", "", "", "", "", "" } ``` #### 数据处理与清洗 在成功获取到原始数据后,需要对其进行初步清洗和加工,以便后续的数据转换与写入。常见的数据处理步骤包括: 1. **字段映射**:将源系统中的字段映射到目标系统所需的字段。例如,将`order_no`映射到目标系统中的订单编号字段。 2. **数据过滤**:根据业务需求过滤掉不必要的数据。例如,只保留状态为80(已完成)的订单。 3. **格式转换**:将日期、金额等字段转换为目标系统所需的格式。 #### 实时监控与日志记录 在整个数据请求与清洗过程中,实时监控和日志记录是确保数据质量和处理效率的重要手段。通过轻易云平台提供的全透明可视化操作界面,可以实时监控每个环节的数据流动和处理状态,并及时发现和解决潜在问题。 以上就是调用旺店通·企业奇门接口`wdt.stockin.order.query`并对数据进行初步加工的详细技术案例。在实际应用中,根据具体业务需求调整请求参数和处理逻辑,以实现最佳的数据集成效果。 ![打通钉钉数据接口](https://pic.qeasy.cloud/S11.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台进行ETL转换并写入金蝶云星空API接口 在数据集成的生命周期中,数据转换与写入是关键的一步。本文将详细探讨如何利用轻易云数据集成平台,将已经集成的源平台数据进行ETL(Extract, Transform, Load)转换,并转为金蝶云星空API接口所能接收的格式,最终写入目标平台。 #### API接口配置 在本案例中,我们需要将旺店通的入库单管理数据转换并写入到金蝶云星空的其他入库单中。我们使用的是金蝶云星空的`batchSave` API接口,具体配置如下: ```json { "api": "batchSave", "effect": "EXECUTE", "method": "POST", "idCheck": true, "request": [ {"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"{order_no}"}, {"field":"FBillTypeID","label":"单据类型","type":"string","describe":"单据类型","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"QTRKD01_SYS"}, {"field":"FStockOrgId","label":"库存组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"100"}, {"field":"FStockDirect","label":"库存方向","type":"string","describe":"下拉列表"}, {"field":"FDate","label":"日期","type":"string","describe":"日期","value":"{stockin_time}"}, {"field":"FDEPTID","label":"部门","type":"string","describe":"基础资料","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"BM000003"}, {"field":"FOwnerTypeIdHead","label":"货主类型","type":"string","describe":"多类别基础资料列表","value":"BD_OwnerOrg"}, {"field":"FOwnerIdHead","label":"货主","type":"string","describe":"多类别基础资料","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"100"}, {"field": "FNOTE", "label": "备注", "type": "string", "describe": "多行文本", "value": "{remark}"}, {"field": "FSUPPLIERID", "label": "供应商", "type": "string", "value": "SP001", "parser": {"name": "ConvertObjectParser", "params": "FNumber"}}, { "field": "FEntity", "label": "明细信息", "type": "array", "describe": "明细信息", "value": "details_list", "children":[ {"field": "FMATERIALID", "label": "物料编码", "type": "string", "describe": "基础资料", "parser":{"name" : "ConvertObjectParser", "params" : "FNumber"}, "value" : "{{details_list.spec_no}}"}, {"field" : "FSTOCKID", "label" : "收货仓库", "type" : "string", "describe" : "基础资料", "value" : "{warehouse_no}"}, {"field" : "FQty", "label" : "实收数量", "type" : "string", "value" : "{{details_list.goods_count}}"}, {"field" : FPrice, label: 单价, type: string, describe: 单价, value: {{details_list.src_price}}}, { field: FEntryNote, label: 备注, type: string, describe: 多行文本, value: {{details_list.remark}}}, { field: FSRCBILLNO, label: 源单编号, type: string, describe: 源单编号, value: {trade_no}}, { field: FSRCBILLTYPEID, label: 源单类型, type: string}, { field: FOWNERTYPEID, label: 货主类型, type: string, describe: 货主类型, value: BD_OwnerOrg}, { field: FOWNERID,label:"货主", type:"string", describe:"货主", parser:{"name:"ConvertObjectParser", params:"FNumber"}, value:"100"} ] } ], otherRequest:[ { field:FormId, label:业务对象表单Id, type:string, describe:必须填写金蝶的表单ID如:PUR_PurchaseOrder, value:STK_MISCELLANEOUS}, { field:IsVerifyBaseDataField, label:验证基础资料, type:bool, describe:是否验证所有的基础资料有效性,布尔类,默认false(非必录), value:true}, { field:Operation, label:执行的操作, type:string, describe:执行的操作, value:Save}, { field:IsAutoSubmitAndAudit,label:"提交并审核", type:"bool", describe:"提交并审核", value:"false"} ], operation:{ rowsKey:"array", rows:"20", method:"batchArraySave" } } ``` #### 数据字段解析 1. **FBillNo**(单据编号):映射到源数据中的`order_no`。 2. **FBillTypeID**(单据类型):固定值`QTRKD01_SYS`。 3. **FStockOrgId**(库存组织):固定值`100`。 4. **FStockDirect**(库存方向):从源数据中获取。 5. **FDate**(日期):映射到源数据中的`stockin_time`。 6. **FDEPTID**(部门):固定值`BM000003`。 7. **FOwnerTypeIdHead**(货主类型):固定值`BD_OwnerOrg`。 8. **FOwnerIdHead**(货主):固定值`100`。 9. **FNOTE**(备注):映射到源数据中的`remark`。 10. **FSUPPLIERID**(供应商):固定值`SP001`。 #### 明细信息字段解析 1. **FMATERIALID**(物料编码):映射到明细信息中的`spec_no`。 2. **FSTOCKID**(收货仓库):映射到源数据中的`warehouse_no`。 3. **FQty**(实收数量):映射到明细信息中的`goods_count`。 4. **FPrice**(成本价):映射到明细信息中的`src_price`。 5. **FEntryNote**(备注):映射到明细信息中的 `remark`. 6. **FSRCBILLNO**(源单编号):映射到源数据中的 `trade_no`. 7. **FSRCBILLTYPEID** (源单类型). 8. **FOWNERTYPEID** (货主类型) 固定值 `BD_OwnerOrg`. 9. ** FOWNERID (货主) 固定值 `100`. #### 配置其他请求参数 - `FormId`: 金蝶业务对象表单 ID,例如 `STK_MISCELLANEOUS`. - `IsVerifyBaseDataField`: 验证所有基础资料有效性. - `Operation`: 执行操作,例如 `Save`. - `IsAutoSubmitAndAudit`: 是否自动提交和审核. #### 批量保存方法 通过配置上述元数据,我们可以利用轻易云的数据集成平台调用金蝶云星空的批量保存方法,实现将处理后的入库单数据批量写入目标系统。 ```json { operation:{ rowsKey:"array", rows:"20", method:"batchArraySave" } } ``` 在实际操作中,我们可以通过轻易云的数据集成平台提供的全透明可视化界面,对上述配置进行直观地调整和优化,以确保每个环节都清晰易懂,并实时监控数据流动和处理状态,从而极大提升业务透明度和效率。 ![金蝶与WMS系统接口开发配置](https://pic.qeasy.cloud/T30.png~tplv-syqr462i7n-qeasy.image)