用友BIPAPI接口配置与数据写入实践案例

  • 轻易云集成顾问-贺强
### 案例分享:旺店通·企业奇门数据集成到用友BIP - 调拨入库对接调入单-v 在实际业务中,实现系统间的数据集成是一个常见且挑战性的任务。本案例聚焦于如何通过轻易云数据集成平台,成功将**旺店通·企业奇门**的调拨入库数据高效、准确地写入到**用友BIP**系统。具体实现方案为“调拨入库对接调入单-v”,以下是详细技术流程和关键点解析。 首先,我们需要从旺店通获取待处理的库存订单信息,通过调用其提供的API接口`wdt.stockin.order.query`来抓取相关数据。为了确保不漏单,我们设置了定时抓取任务,并使用可靠的分页机制来应对可能的大量数据请求。此外,为了克服接口限流的问题,提前设计并实施了一些限流处理策略,以避免因超出API限制而导致的数据丢失或采集失败。 在拿到源数据后,面临的第一个问题即是如何处理两套系统之间的数据格式差异。这一步至关重要,它不仅影响最终写入结果,还决定了整个工作流程是否高效顺畅。为此,我们自定义了一系列映射规则,将旺店通提供的数据转化为符合用友BIP标准格式的数据结构。 随后,在将转换后的数据批量快速导入用友BIP之前,通过实时监控功能确保每一笔交易都记录在案。一旦发现异常,会触发相应的错误重试机制,这大大提高了整个过程的可靠性和健壮性。同时,用友BIP接口`/yonbip/scm/storein/save`被用于最终实现有效的数据录入操作。 通过这次实践,不仅体现出了轻易云平台强大的全生命周期管理能力,也表明在复杂多变的信息环境下,高效率、高稳定性的系统整合解决方案的重要性。在未来推广应用中,该集成方案可作为其他类似场景的一种参考,为更多企业提供值得借鉴的方法和思路。 ![打通金蝶云星空数据接口](https://pic.qeasy.cloud/D29.png~tplv-syqr462i7n-qeasy.image) ### 调用源系统旺店通·企业奇门接口wdt.stockin.order.query获取并加工数据 在数据集成的生命周期中,调用源系统接口获取数据是关键的第一步。本文将深入探讨如何通过轻易云数据集成平台调用旺店通·企业奇门接口`wdt.stockin.order.query`,并对获取的数据进行初步加工。 #### 接口调用配置 首先,我们需要配置接口调用的元数据。以下是该接口的详细配置: ```json { "api": "wdt.stockin.order.query", "method": "POST", "number": "stockin_no", "id": "stockin_no", "pagination": { "pageSize": 50 }, "idCheck": true, "request": [ { "field": "start_time", "label": "开始时间", "type": "string", "describe": "按最后修改时间增量获取数据,start_time作为开始时间,格式:yyyy-MM-dd HH:mm:ss", "value": "{{LAST_SYNC_TIME|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":"2" }, { "field":"status", "label":"入库单状态", "type":"string", "describe":"入库单状态10已取消20编辑中25待价格确认30待审核32待推送33推送失败35委外待入库60待结算80已完成(按照状态查询时必须传原单据类别,如果未传status则默认查询80已完成单据)", "value":"80" }, { "field":"warehouse_no", "label":"仓库编号", "type":"string", ,"describe":"代表仓库所有属性的唯一编码,用于仓库区分,ERP内支持自定义(ERP仓库界面设置),用于获取指定仓库单据信息(不支持一次推送多个仓库编号)" }, { ,"field":"src_order_no","label":"上层单据编号","type":"string","describe":"上层单据编号,传该字段可以不传开始时间和结束时间" }, { ,"field":"stockin_no","label":"入库单号","type":"string","describe":"入库单号,传该字段可以不传开始时间和结束时间" } ], ,"otherRequest":[ {"field":"page_size","label":"分页大小","type":"string","describe":"每页返回的数据条数,输入值范围1~100,不传本参数,输入值默认为40,使用举例单击这里","value":"{PAGINATION_PAGE_SIZE}"}, {"field":"page_no","label":"页号","type":"string","describe":"不传值默认从0页开始","value":"{PAGINATION_START_PAGE}"} ], ,"condition_bk":[[{"field":"YScode","logic":"like","value":"DBDD"}]] } ``` #### 数据请求与清洗 在配置好元数据后,我们通过POST方法向`wdt.stockin.order.query`接口发送请求。请求参数包括: - `start_time` 和 `end_time`:用于按最后修改时间增量获取数据。 - `order_type`:设置为2,表示调拨入库。 - `status`:设置为80,表示已完成的入库单。 - `warehouse_no`, `src_order_no`, `stockin_no`:这些字段用于特定条件下的数据过滤。 此外,我们还配置了分页参数,以确保能够处理大批量的数据。 #### 数据转换与写入 在接收到返回的数据后,需要对其进行初步清洗和转换。以下是一些常见的数据处理步骤: 1. **字段映射**:将返回的数据字段映射到目标系统所需的字段。例如,将`stockin_no`映射为目标系统中的唯一标识符。 2. **数据类型转换**:确保所有字段的数据类型符合目标系统的要求。例如,将日期字符串转换为标准的日期格式。 3. **过滤无效数据**:根据业务规则过滤掉无效或不完整的数据。例如,只保留状态为80(已完成)的记录。 #### 实践案例 假设我们需要从旺店通系统中获取所有在特定时间段内已完成的调拨入库单,并将其写入到目标ERP系统中。我们可以按照以下步骤进行操作: 1. **配置元数据**:如上所述,配置好接口调用所需的元数据。 2. **发送请求**:通过轻易云平台发送POST请求,并附带必要的参数。 3. **接收并处理响应**: - 对返回的数据进行初步清洗,包括字段映射和类型转换。 - 根据业务规则过滤掉无效记录。 4. **写入目标系统**:将清洗后的数据写入到目标ERP系统中。 通过上述步骤,我们能够高效地实现从旺店通系统到目标ERP系统的数据集成。这不仅简化了数据处理流程,还提高了业务运作的透明度和效率。 ![如何对接钉钉API接口](https://pic.qeasy.cloud/S1.png~tplv-syqr462i7n-qeasy.image) ### 用友BIPAPI接口数据集成技术案例 在轻易云数据集成平台的生命周期中,第二步是将已经集成的源平台数据进行ETL转换,转为目标平台用友BIPAPI接口所能够接收的格式,并最终写入目标平台。本文将深入探讨这一过程中涉及的关键技术细节和实现方法。 #### API接口配置与请求结构 在本案例中,我们需要将调拨入库对接调入单的数据通过用友BIPAPI接口写入目标系统。具体的API配置如下: ```json { "api": "/yonbip/scm/storein/save", "method": "POST", "idCheck": true, "BIPAudit": "/yonbip/scm/storein/batchaudit", "request": [ {"field":"outorg","label":"调出组织id或code","type":"string","value":"_findCollection find outorg from c86ad504-9059-3c79-b139-6aa0447d1b35 where code={YScode}"}, {"field":"code","label":"单据编号","type":"string","value":"{stockin_no}"}, {"field":"outaccount","label":"调出会计主体id或code","type":"string","value":"_findCollection find outorg from c86ad504-9059-3c79-b139-6aa0447d1b35 where code={YScode}"}, {"field":"vouchdate","label":"单据日期","type":"string","value":"{check_time}"}, {"field":"bustype","label":"交易类型id或code","type":"string","value":"_findCollection find bustype from c86ad504-9059-3c79-b139-6aa0447d1b35 where code={YScode}"}, {"field":"bizType","label":"自动调拨","type":"string","describe":"1:订单审核自动调出调入、0:手工、2:调出保存自动调入"}, {"field":"breturn","label":"调拨退货","type":"string","describe":"true:是、false:否、","value":"_mongoQuery c86ad504-9059-3c79-b139-6aa0447d1b35 findField=content.breturn where={\"content.code\":{\"$eq\":\"{YScode}\"}}"}, {"field":"outwarehouse","label":"调出仓库id或code","type":"string","value":"_findCollection find new_outwarehouse from c86ad504-9059-3c79-b139-6aa0447d1b35 where code={YScode}"}, {"field":"inorg","label":"调入组织id或code","type":"string","value":"_findCollection find inorg from c86ad504-9059-3c79-b139-6aa0447d1b35 where code={YScode}"}, {"field":"inaccount","label":"调入会计主体id或code","type":"string","value":"_findCollection find inorg from c86ad504-9059-3c79-b139-6aa0447d1b35 where code={YScode}"}, {"field":"inwarehouse","label":"调入仓库id或code","type":"string","value":"_findCollection find new_inwarehouse from c86ad504-9059-3c79-b139-6aa0447d1b35 where code={YScode}"}, {"field": "memo", "label": "备注", "type": "string"}, {"field": "srcBill", "label": "来源单据id", "type": "string"}, {"field": "srcBillNO", "label": "来源单据号", "type": "string"}, {"field": "srcBillType", "label": "来源单据类型", "type": "string", "describe": "st_transferapply:调拨订单、st_storeout:调出单、st_storein:调入单、", "value": "st_storeout" }, {"field": "_status", "label": "操作标识", "type": "string", "describe": "Insert:新增、Update:更新", ![用友与外部系统接口集成开发](https://pic.qeasy.cloud/T17.png~tplv-syqr462i7n-qeasy.image)