轻易云数据集成平台详解:金蝶云星空API接口的调用与数据加工

  • 轻易云集成顾问-张妍琪
### (线上)对账导入对接金蝶应收单技术集成案例 在企业财务管理过程中,自动化的数据对接与集成是确保数据准确性和处理效率的关键因素。本次我们将重点介绍如何利用轻易云数据集成平台,实现金蝶云星空系统之间的高效数据同步,以在线上环境中无缝完成对账导入,对接应收单。 为实现这一目标,我们采用了以下策略: 1. **高吞吐量的数据写入**:通过使用轻易云提供的batchSave API接口,确保大量业务数据能够快速、可靠地写入到目标金蝶云星空系统中。这极大提高了处理时效性,使得每日产生的大量交易记录能够及时纳入企业财务体系。 2. **实时监控与告警系统**:部署了一套集中式的监控和告警机制,用于实时跟踪每一个数据集成任务的状态和性能。任何异常情况都会立即触发告警通知,并生成详细日志,方便后续排查与修复。 3. **自定义数据转换逻辑**:针对不同业务环节中所需的数据结构差异,我们定制化设计了多种转换规则。这些规则在执行API调用(如executeBillQuery)获取原始应收数据信息后,将其标准化以适配批量保存操作需求,从而保障最终写入的数据格式一致且正确。 4. **分页与限流机制实现**:由于金蝶云星空API存在分页及速率限制,为避免出现请求拒绝或超时错误,我们引入了智能分页算法,并设置动态调整频率的方法,通过分批次、小规模请求读取全量数据,有效地规避了接口调用中的瓶颈问题。 5. **异常处理与重试策略**:为增强系统稳定性,在遇到可能导致流程中断的网络波动或者服务不可用等情况时,我们配置了一整套完善的错误重试机制。特别是在捕获到batchSave API返回失败信息后,会根据预设条件进行自动重新尝试提交,直至成功或超过最大次数阈值,由此提升整体容错能力和任务持续运行效果。 总结以上几点,通过合理运用轻易云平台强大的可视化工具以及灵活配置功能,不仅使得本次(线上)对账导入过程高效稳定,也为未来类似场景中的应用打下坚实基础。在追求精准快捷的数据互通之路上,这一实践方案展示出了不可忽视的重要价值。本次文章开篇就这些关键要素进行了简述,具体实施细节将在随后的章节展开透彻分析。 ![如何开发金蝶云星空API接口](https://pic.qeasy.cloud/D34.png~tplv-syqr462i7n-qeasy.image) ### 调用金蝶云星空接口executeBillQuery获取并加工数据 在轻易云数据集成平台的生命周期中,调用源系统接口是至关重要的一步。本文将深入探讨如何通过调用金蝶云星空的`executeBillQuery`接口来获取并加工数据,以实现对账导入对接金蝶应收单的功能。 #### 接口配置与请求参数 首先,我们需要了解`executeBillQuery`接口的基本配置和请求参数。根据提供的元数据配置,接口采用POST方法进行调用,主要参数如下: - **api**: `executeBillQuery` - **method**: `POST` - **number**: `FBillNo` - **id**: `FPOOrderEntry_FEntryId` - **name**: `FBillNo` 请求参数包括以下字段: ```json [ {"field":"FID","label":"FID","type":"string","describe":"FID","value":"FID"}, {"field":"FEntity_FEntryID","label":"FEntity_FEntryID","type":"string","describe":"FPOOrderEntry_FEntryId","value":"FEntity_FEntryID"}, {"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"FBillNo"}, {"field":"FDocumentStatus","label":"单据状态","type":"string","describe":"单据状态 \n暂存:Z \n创建:A \n审核中:B \n已审核:C","value":"FDocumentStatus"}, // ... 其他字段省略 ] ``` 此外,还有一些其他请求参数,如最大行数、开始行索引、过滤条件等: ```json [ {"field":"Limit","label":"最大行数","type":"string","describe":"最大行数","value":"2000"}, {"field":"StartRow","label":"开始行索引","type":"string"}, {"field":"TopRowCount","label":"返回总行数","type":"int"}, {"field":"FilterString","label":"过滤条件","type":"string", "value": "FApproveDate>='{{LAST_SYNC_TIME|datetime}}' and F_PBLH_shop_no.F_PBLH_isonline = 1 and F_PBLH_BillTypeID_qtr.FNumber='CKDZ'"}, {"field":"FieldKeys","label":"需查询的字段key集合","type": "array", "parser": {"name": "ArrayToString", "params": ","}}, {"field": "FormId", "label": "业务对象表单Id", "type": "string", "value": "PBLH_WDTDZJG"} ] ``` #### 数据请求与清洗 在调用接口之前,需要构建请求体。以下是一个示例请求体: ```json { "FormId": "PBLH_WDTDZJG", "FieldKeys": ["FID", "FEntity_FEntryID", "FBillNo", ...], "FilterString": "FApproveDate>='2023-01-01' and F_PBLH_shop_no.F_PBLH_isonline = 1 and F_PBLH_BillTypeID_qtr.FNumber='CKDZ'", "Limit": 2000, "StartRow": 0, } ``` 通过POST方法将上述请求体发送到金蝶云星空的`executeBillQuery`接口,系统会返回符合条件的数据集。此时,我们需要对返回的数据进行清洗和初步加工,以便后续的数据转换与写入操作。 #### 数据转换与写入 在数据清洗完成后,需要将数据转换为目标系统所需的格式。轻易云数据集成平台提供了丰富的数据转换工具,可以根据业务需求进行定制化处理。例如,将日期格式统一、字段名称映射、计算新增字段等。 以下是一个简单的数据转换示例: ```json { "sourceField": ["FBillNo", "FDocumentStatus", ...], "targetField": ["bill_number", "document_status", ...], // 自定义转换逻辑 } ``` 经过转换后的数据可以直接写入目标系统,如ERP或CRM系统,实现不同系统间的数据无缝对接。 #### 实时监控与异常处理 在整个数据处理过程中,轻易云平台提供了实时监控功能,可以随时查看数据流动和处理状态。一旦出现异常情况,可以及时定位问题并进行修正,提高业务透明度和效率。 通过以上步骤,我们完成了从调用金蝶云星空接口获取数据到清洗、转换和写入目标系统的全过程。这不仅实现了对账导入对接金蝶应收单的功能,还展示了轻易云平台在异构系统集成中的强大能力。 ![用友BIP接口开发配置](https://pic.qeasy.cloud/S17.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台进行ETL转换并写入金蝶云星空API接口 在数据集成生命周期的第二步中,我们需要将已经集成的源平台数据进行ETL转换,转为目标平台金蝶云星空API接口所能够接收的格式,并最终写入目标平台。以下是具体的技术实现案例。 #### 数据请求与清洗 首先,我们从源系统获取原始数据,并对其进行必要的清洗和预处理。这一步骤确保数据的一致性和完整性,为后续的转换和写入奠定基础。 #### 数据转换与写入 在数据转换阶段,我们需要根据金蝶云星空API接口的要求,将清洗后的数据转换为目标格式。以下是一个详细的元数据配置示例,用于将源数据转换为金蝶云星空API所需的格式,并通过`batchSave`接口写入目标平台。 ```json { "api": "batchSave", "effect": "EXECUTE", "method": "POST", "idCheck": true, "operation": { "rowsKey": "array", "rows": 1, "method": "batchArraySave" }, "groupCalculate": { "headerGroup": ["FDate", "F_PBLH_shop_no_FNumber", "F_PBLH_consign_time", "F_PBLH_shop_no_F_PBLH_custno", "KDStock"], "bodyGroup": ["F_PBLH_spec_no_FNumber"], "bodyName": "list", "calculate": { "F_PBLH_goods_count": "$sum", "F_PBLH_single_allamount": "$sum" } }, "request": [ { "field": "FBillTypeID", "label": "单据类型", "type": "string", "describe": "单据类型\n标准应收单-YSD01_SYS\n费用应收单-YSD02_SYS\n资产调拨应收-YSD03_SYS\n转销应收单-YSD04_SYS", "parser": { "name": "ConvertObjectParser", "params": "FNumber" }, "value": "YSD01_SYS" }, { ... } ], ... } ``` #### 配置解析 1. **API接口配置**: - `api`: 指定调用的API接口名称,这里为`batchSave`。 - `method`: HTTP请求方法,使用`POST`。 - `idCheck`: 是否进行ID检查,设置为`true`。 2. **操作配置**: - `operation`: 定义批量保存操作,使用`batchArraySave`方法。 - `rowsKey`: 数据行键值,这里使用`array`。 - `rows`: 每次操作的数据行数,设置为1。 3. **分组计算**: - `groupCalculate`: 定义如何对数据进行分组和计算。 - `headerGroup`: 表头分组字段。 - `bodyGroup`: 表体分组字段。 - `calculate`: 指定需要计算的字段及其计算方式,例如求和操作。 4. **请求参数配置**: - 每个字段都有详细的定义,包括字段名、标签、类型、描述、解析器以及默认值。例如: ```json { ... { “field”: “FBillNo”, “label”: “单据编号”, “type”: “string”, “describe”: “单据编号” }, ... } ``` 5. **子对象与关联关系**: - 对于复杂的数据结构,可以定义子对象,例如明细信息(`FEntityDetail`)和关联关系表(`FEntityDetail_Link`)。 ```json { ... { “field”: “FEntityDetail”, “label”: “明细”, “type”: “array”, “children”: [ ... { “field”: “warehouse_no”, “label”: “warehouse_no”, “type”: “string”, “value”: "{KDStock}" } ... ] }, ... } ``` 6. **其他请求参数**: - 包括业务对象表单ID(如:AR_receivable)、执行操作(如:BatchSave)、提交并审核等选项。 #### 数据写入 通过上述配置,我们可以将处理后的数据发送到金蝶云星空API接口,实现最终的数据写入。具体实现过程中,可以利用轻易云提供的全异步、多种异构系统支持等特性,确保不同系统间的数据无缝对接和高效传输。 这种基于元数据配置的方法,不仅提高了开发效率,还增强了系统灵活性和可维护性。通过详细解析每个配置项,我们可以更好地理解和应用这些技术,实现复杂业务场景下的数据集成需求。 ![如何对接金蝶云星空API接口](https://pic.qeasy.cloud/T7.png~tplv-syqr462i7n-qeasy.image)