轻易云平台实现吉客云销售单对接金蝶云星空详解

  • 轻易云集成顾问-张妍琪
### 吉客云·奇门数据集成到金蝶云星空技术案例分享 在此次系统对接项目中,主要任务是实现吉客云销售单对接(金蝶流程代码8:售后退货-退货)同步至金蝶云星空。在整个过程中,我们使用了jackyun.tradenotsensitiveinfos.list.get接口从吉客云·奇门获取销售单数据,并通过batchSave API接口将这些数据批量写入到金蝶云星空。以下内容详细阐述了具体的实施步骤及技术要点。 首先,为保证所有销售单数据不漏单并实现定时、可靠的数据抓取,我们配置了一整套自动化调度机制,对接API调用和数据处理过程进行实时监控与日志记录。考虑到吉客云·奇门接口的分页和限流问题,我们采用了分段请求策略,以确保在高并发情况下依然能正确无误地获取全部所需信息。 其次,在大量销售单快速写入金蝶云星空时,我们特别关注了两者之间的数据格式差异,通过自定义的数据映射规则,实现精确且符合业务逻辑的字段转换。这不仅提升了导入效率,还简化了重复操作,减少人工干预。同时,为应对潜在的问题,如网络波动导致的接口调用异常,我们设计并实施了一套完善的错误重试机制,确保每一条记录都能成功传输并存储在目标系统中。 最后,需要特别提及的是,对接过程中我们使用轻易平台提供透明可视化界面,让项目团队成员可以清晰跟踪每个环节状态,及时发现和解决问题。这种方式不仅提高了工作效率,而且显著增强了整体项目执行的透明度和稳定性。 通过上述关键技术方案的应用,本次集成任务有效达成,为双方提供了一条稳健畅通的数据桥梁。 ![用友与外部系统接口集成开发](https://pic.qeasy.cloud/D5.png~tplv-syqr462i7n-qeasy.image) ### 调用吉客云·奇门接口jackyun.tradenotsensitiveinfos.list.get获取并加工数据 在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用吉客云·奇门接口`jackyun.tradenotsensitiveinfos.list.get`,并对获取的数据进行初步加工处理。 #### 接口调用配置 首先,我们需要配置API请求的元数据,以确保能够正确地从吉客云获取所需的数据。以下是关键的元数据配置: ```json { "api": "jackyun.tradenotsensitiveinfos.list.get", "method": "POST", "number": "tradeNo", "id": "tradeId", "pagination": { "pageSize": 20 }, "beatFlat": ["goodsDetail"], "formatResponse": [ { "old": "consignTime", "new": "consignTime_new", "format": "date" } ], "omissionRemedy": { "crontab": "2 1 * * *", "takeOverRequest": [ { "field": "startConsignTime", "label": "发货时间(起始)", ... }, ... ] }, ... } ``` #### 请求参数设置 为了确保请求的准确性,我们需要设置多个请求参数。这些参数包括但不限于时间范围、订单状态和分页信息。以下是部分关键参数的配置示例: ```json { ... "request": [ { "field": "modified_begin", ... }, { "field": "modified_end", ... }, { "field": "startModified", ... }, { "field": "endModified", ... }, { ... } ], ... } ``` 其中,`startConsignTime`和`endConsignTime`用于指定发货时间的起始和截止时间,这些参数可以通过模板变量动态生成,例如: ```json { ... { "field": "startConsignTime", ... "value": "{{LAST_SYNC_TIME|datetime}}" }, { ... "field": "endConsignTime", ... "value": "{{CURRENT_TIME|datetime}}" } } ``` #### 数据格式化与处理 在获取到原始数据后,我们需要对数据进行一定的格式化处理。例如,将字段`consignTime`重命名为`consignTime_new`并转换为日期格式: ```json { ... { ... { "old": "consignTime", ... {"new":"consignTime_new","format":"date"} } } } ``` 此外,对于嵌套结构的数据,如商品详情列表,我们可以使用`beatFlat`参数将其扁平化处理: ```json { ..., {"beatFlat":["goodsDetail"]} } ``` #### 异常处理与补偿机制 为了确保数据的完整性和一致性,我们还需要设置异常处理和补偿机制。例如,通过定时任务(crontab)定期检查并补充遗漏的数据: ```json { ..., {"omissionRemedy":{"crontab":"2 1 * * *","takeOverRequest":[...]} } ``` #### 请求示例 综合以上配置,一个完整的API请求示例如下: ```json { ..., {"api":"jackyun.tradenotsensitiveinfos.list.get","method":"POST","request":[{"field":"modified_begin","value":"2023-01-01T00:00:00Z"},{"field":"modified_end","value":"2023-01-07T23:59:59Z"},{"field":"pageSize","value":"20"},{"field":"pageIndex","value":"0"}]} } ``` 通过上述步骤,我们能够高效地调用吉客云·奇门接口获取销售单数据,并对其进行初步加工,为后续的数据转换与写入奠定基础。 ![数据集成平台API接口配置](https://pic.qeasy.cloud/S7.png~tplv-syqr462i7n-qeasy.image) ### 利用轻易云数据集成平台实现吉客云销售单对接金蝶云星空API接口 在数据集成过程中,将源平台的数据转换为目标平台所能接收的格式是关键步骤之一。本文将详细探讨如何使用轻易云数据集成平台,将吉客云销售单数据转换并写入金蝶云星空API接口。 #### 元数据配置解析 元数据配置是ETL转换过程的核心,通过配置可以实现复杂的数据转换和映射。以下是我们需要关注的主要字段和配置: 1. **API接口与方法** ```json {"api":"batchSave","method":"POST"} ``` 这里指定了目标API接口为`batchSave`,请求方法为`POST`。 2. **操作配置** ```json {"rowsKey":"array","rows":1,"method":"batchArraySave"} ``` 配置表明数据以数组形式传递,并采用批量保存的方法。 3. **分组计算** ```json "groupCalculate":{ "headerGroup":["shopCodenew","warehouseCode","consignTime_new"], "bodyGroup":["goodsDetail_goodsNo"], "bodyName":"details", "targetBodyName":"FEntity", "bodyMaxLine":50, "calculate":{ "goodsDetail_sellCount":"$sum", "goodsDetail_shareFavourableAfterFee":"$sum" } } ``` 分组计算用于聚合数据,例如按商品编号分组计算销售数量和优惠后费用总和。 4. **请求字段映射** 请求字段的映射定义了如何将源数据字段转换为目标平台字段: - 单据类型 `FBillTypeID` ```json {"field":"FBillTypeID","label":"单据类型","type":"string","value":"_function case when '{shopCodenew}'='C010009' then 'XSTHD09_SYS' else 'XSTHD07_SYS' end"} ``` 通过条件判断设置不同店铺代码对应的单据类型。 - 销售组织 `FSaleOrgId` ```json {"field":"FSaleOrgId","label":"销售组织","type":"string","value":"_mongoQuery 52340fd1-2fe9-3976-95c1-edef8f0d788a findField=content.F_UseOrg where={\"content.FNumber\":{\"$eq\":\"{shopCodenew}\"}}"} ``` 使用MongoDB查询获取对应的销售组织ID。 5. **明细信息映射** 明细信息包含多个子字段,每个子字段都需要进行相应的转换: - 物料编码 `FMaterialId` ```json {"field":"FMaterialId","label":"物料编码","type":"string","value":"{{details.goodsDetail_goodsNo}}"} ``` 将商品编号映射到物料编码。 - 实退数量 `FRealQty` ```json {"field":"FRealQty","label":"实退数量","type":"string","value":"_function {{details.goodsDetail_sellCount}}*(-1)"} ``` 将销售数量取负值作为实退数量。 - 含税单价 `FTaxPrice` ```json {"field":"FTaxPrice","label":"含税单价","type":"string","value":"_function {{details.goodsDetail_shareFavourableAfterFee}}/{{details.goodsDetail_sellCount}}"} ``` 计算含税单价。 6. **其他请求参数** 除了上述主要字段,还需要一些其他参数来完成请求: - 表单ID `FormId` ```json {"field":"FormId","label":"业务对象表单Id","type":"string","value":"SAL_RETURNSTOCK"} ``` - 执行操作 `Operation` ```json {"field":"Operation","label":"执行的操作","type":"string","value":"Save"} ``` #### 数据处理流程 1. **数据请求与清洗** 首先从吉客云获取原始销售单数据,进行必要的数据清洗和预处理。这一步确保数据格式统一,为后续的ETL转换做好准备。 2. **ETL转换与写入** 根据上述元数据配置,进行ETL转换: - 对每个销售单进行分组计算,聚合相关字段。 - 根据映射规则,将源平台字段转换为目标平台所需格式。 - 构建最终的数据结构,调用金蝶云星空API接口进行批量保存。 #### 技术要点 - **条件判断与函数应用** 在字段映射过程中,通过条件判断和函数应用,可以灵活处理不同情况。例如,根据店铺代码选择不同的单据类型,通过数学运算计算实退数量等。 - **MongoDB查询整合** 使用MongoDB查询可以动态获取相关基础资料,例如销售组织、库存组织等。这种方式提高了系统的灵活性和扩展性。 - **批量处理与性能优化** 配置中的`bodyMaxLine`参数用于控制每次批量处理的数据行数,以避免因一次性处理过多数据导致性能问题。 通过上述技术手段,可以高效地将吉客云销售单数据转化为金蝶云星空API接口所能接收的格式,并顺利写入目标平台,实现系统间的数据无缝对接。 ![泛微OA与ERP系统接口开发配置](https://pic.qeasy.cloud/T24.png~tplv-syqr462i7n-qeasy.image)