如何利用轻易云平台实现金蝶云星空与小满OKKICRM的数据转换与写入

  • 轻易云集成顾问-曾平安
### 金蝶云星空到小满OKKICRM数据集成解决方案案例分享 在系统集成项目中,如何高效、准确地将金蝶云星空中的收款单数据无缝对接到小满OKKICRM的回款登记系统,是许多企业面临的重要挑战。本文将通过一个实际运行的方案“星空收款单=>小满回款登记”,重点介绍该过程涉及的技术细节与实现方法,帮助读者深入了解两大平台之间的数据流动和处理逻辑。 本案例基于轻易云数据集成平台,通过其强大的API管理和可视化操作界面,实现了金蝶云星空中的executeBillQuery接口获取数据,并利用自定义转换逻辑适配至小满OKKICRM的/v1/invoices/receiptRegistration/push接口进行批量写入。以下是关键技术点解析: 首先,在确保每一笔从金蝶云星空获取到的数据不被遗漏或重复的问题上,我们采用定时抓取策略,每隔固定时间间隔执行一次executeBillQuery调用,从而保证数据实时性。同时,为应对可能因为网络波动、限流等导致的数据抓取失败现象,我们设计了可靠的重试机制及告警通知,以第一时间发现并修正异常情况。 其次,在处理大量数据快速写入至小满OKKICRM时,需要充分考虑目标系统API吞吐能力以及自身性能容忍度。本方案依靠轻易云的平台优势,通过分批次处理、多线程并发操作,高效完成任务。同时,针对不同业务需求,可配置自定义转换逻辑,以精确映射字段格式与内容,从而解决跨系统之间的数据结构差异问题。 此外,为监控整个流程中的各个环节,我们引入集中监控和告警体系,对每次任务执行状态、性能指标进行全程跟踪记录。一旦检测到任何异常,如抓取超时、写入失败等情况,即刻触发相应告警以便及时响应。这种全透明化管理不仅提高了业务透明度,更有效优化资源配置与使用效率。 通过以上部署步骤和具体实施手段,本次“星空收款单=>小满回款登记” 的成功实践,不仅展示了专业工具在复杂环境下简化工作的潜力,也为企业全面提升数据信息互通提供了一条行之有效的路径。 ![用友与MES系统接口开发配置](https://pic.qeasy.cloud/D27.png~tplv-syqr462i7n-qeasy.image) ### 调用金蝶云星空接口executeBillQuery获取并加工数据 在数据集成的生命周期中,调用源系统接口获取数据是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用金蝶云星空的`executeBillQuery`接口来获取并加工数据。 #### 接口配置与调用 首先,我们需要了解如何配置和调用金蝶云星空的`executeBillQuery`接口。以下是元数据配置的关键部分: ```json { "api": "executeBillQuery", "effect": "QUERY", "method": "POST", "number": "FBillNo", "id": "FRECEIVEBILLSRCENTRY_FEntryID", "idCheck": true, ... } ``` 该配置指定了API名称为`executeBillQuery`,请求方法为POST,并且需要检查返回结果中的ID字段`FRECEIVEBILLSRCENTRY_FEntryID`。 #### 请求参数 请求参数定义了我们需要从金蝶云星空获取的数据字段。以下是部分请求参数的定义: ```json "request": [ {"field":"FID","label":"FID","type":"string","describe":"111","value":"FID"}, {"field":"FBillNo","label":"单据编号","type":"string","describe":"111","value":"FBillNo"}, {"field":"FDOCUMENTSTATUS","label":"单据状态","type":"string","describe":"111","value":"FDOCUMENTSTATUS"}, ... ] ``` 这些字段包括单据编号、单据状态、结算组织、审核日期等。这些字段在后续的数据处理和转换过程中将起到关键作用。 #### 分页参数 为了处理大规模数据,我们需要使用分页参数: ```json "otherRequest": [ {"field":"Limit","label":"Limit","type":"string","describe":"金蝶的查询分页参数","value":"{PAGINATION_PAGE_SIZE}"}, {"field":"StartRow","label":"StartRow","type":"string","describe":"金蝶的查询分页参数","value":"{PAGINATION_START_ROW}"}, ... ] ``` 这些参数确保我们能够逐页获取数据,而不会因为一次性请求过多数据而导致性能问题。 #### 数据过滤与主键 为了提高查询效率,我们可以使用过滤条件和主键字段: ```json "otherRequest": [ ... {"field":"FilterString","label":"FilterString","type":"string","describe":"示例写法 FSupplierId.FNumber = 'VEN00010' and FApproveDate>=","value":"FApproveDate>='{{LAST_SYNC_TIME|dateTime}}'"}, {"field":"FieldKeys","label":"FieldKeys","type":"array","describe":"金蝶分录主键ID格式:FPOOrderEntry_FEntryId,其它格式 FPurchaseOrgId.FNumber","value":"{MAIN_REQUEST}"}, ... ] ``` 其中,`FilterString`用于指定过滤条件,例如只获取最近同步时间之后的数据;`FieldKeys`则用于指定返回结果中的主键字段。 #### 数据清洗与转换 在成功调用API并获取到原始数据后,我们需要对数据进行清洗和转换,以便后续写入目标系统。以下是一些常见的数据清洗和转换操作: 1. **字段映射**:将源系统中的字段映射到目标系统中的对应字段。 2. **数据类型转换**:确保所有字段的数据类型符合目标系统的要求。 3. **值替换**:根据业务规则对某些字段的值进行替换或计算。 例如,对于单据编号(FBillNo)和审核日期(FApproveDate),我们可能需要将其格式化为目标系统所需的格式。 #### 自动填充响应 轻易云平台提供了自动填充响应功能,可以简化部分数据处理工作: ```json "autoFillResponse": true ``` 启用此功能后,平台会自动根据请求参数填充响应结果,大大减少了手动处理的工作量。 通过上述步骤,我们可以高效地调用金蝶云星空接口获取所需数据,并对其进行清洗和转换,为后续的数据写入打下坚实基础。 ![打通金蝶云星空数据接口](https://pic.qeasy.cloud/S23.png~tplv-syqr462i7n-qeasy.image) ### 轻易云数据集成平台ETL转换与写入小满OKKICRMAPI接口技术案例 在轻易云数据集成平台的生命周期中,数据转换与写入是至关重要的一步。本文将深入探讨如何将已经集成的源平台数据进行ETL(提取、转换、加载)处理,转为目标平台小满OKKICRMAPI接口所能够接收的格式,并最终写入目标平台。 #### API接口配置 在本案例中,我们需要将星空收款单的数据转换并写入到小满OKKICRM的回款登记接口。具体API配置如下: ```json { "api": "/v1/invoices/receiptRegistration/push", "method": "POST", "idCheck": true, "operation": { "method": "merge", "field": "FBillNo", "bodyName": "details", "bodySum": [], "header": [ "FORDERBILLNO", "FBillNo", "FDATE", "FREALRECAMOUNTFOR", "FREALRECAMOUNT_H", "F_YKL_Customer", "FOVERUNDERAMOUNTFOR", "FSETTLEDISTAMOUNTFOR", "FCURRENCYID", "FEXCHANGERATE", "FREMARK", "FOVERUNDERAMOUNTFOR", "FCONTACTUNIT", "FCURRENCYID_FCODE", "FSALEERID_FName", "FRECEIVEAMOUNTFOR_H", "FHANDLINGCHARGEFOR" ], "body": [] }, ... } ``` #### 数据字段映射与转换 为了确保数据能够正确地从星空收款单转换并写入到小满OKKICRM,我们需要对各个字段进行详细的映射和转换。 1. **回款登记ID** (`cash_collection_invoice_id`): - 来源:通过`_findCollection`方法,从特定集合中查找`cash_collection_invoice_id`。 - 示例:`_findCollection find cash_collection_invoice_id from 37096d43-58d4-33a4-bae5-411c7a4e5241 where cash_collection_invoice_no={FBillNo}` 2. **回款登记编号** (`cash_collection_invoice_no`): - 来源:直接映射星空收款单中的`FBillNo`。 - 示例:`{FBillNo}` 3. **关联客户** (`company_id`): - 来源:通过MongoDB查询,获取对应的客户ID。 - 示例:`_mongoQuery 7f5b9476-85ee-37c0-901c-2d032f3a3daf findField=content.company_id where={"content.serial_id" : {"$eq":"{FCONTACTUNIT}"}}` 4. **币别** (`currency`): - 来源:直接映射星空收款单中的币别字段。 - 示例:`{FCURRENCYID_FCODE}` 5. **回款日期** (`collection_date`): - 来源:直接映射星空收款单中的日期字段。 - 示例:`{FDATE}` 6. **回款方式** (`type`): - 来源:通过路径获取支付方式名称。 - 示例:`{{payfromtoentry.0.paytype_name}}` 7. **备注** (`remark`): - 来源:直接映射备注字段。 - 示例:`{FCOMMENT}` 8. **汇率** (`exchange_rate`): - 来源:通过函数计算当前币种兑换人民币的汇率。 - 示例:`_function {FEXCHANGERATE}*100` 9. **金额** (`amount`): - 来源:直接映射实际到账金额字段。 - 示例:`{FRECEIVEAMOUNTFOR_H}` 10. **实际到账金额** (`real_amount`): - 来源:直接映射实际到账金额字段。 - 示例:`{FREALRECAMOUNTFOR}` 11. **负责人** (`handler`): - 来源:通过查找用户集合,获取对应的用户ID。 - 示例: `_findCollection find user_id from 6bd368e2-b8d6-3415-8e42-b287c9318375 where full_name={FSALEERID_FName}`, 并使用 `StringToArray` 解析器。 12. **手续费** (`bank_charge`): - 来源:直接映射手续费字段。 - 示例: `{FHANDLINGCHARGEFOR}` #### 实际操作步骤 1. **提取数据**: 使用轻易云的数据请求模块,从星空收款单中提取原始数据。 2. **清洗与转换数据**: 根据上述配置,对提取的数据进行清洗和转换。确保每个字段都能正确映射到目标API所需格式。 3. **写入目标平台**: 使用POST方法,将转换后的数据推送到小满OKKICRM的回款登记接口。确保请求成功,并检查返回结果以确认数据已正确写入。 #### 技术要点总结 在整个过程中,关键技术点包括: - 数据提取与清洗,通过轻易云提供的多种方法(如_findCollection、_mongoQuery等)实现高效的数据处理。 - 数据转换,通过函数和解析器(如_function、StringToArray)确保数据格式符合目标API要求。 - 数据写入,通过配置API接口参数和POST请求,实现无缝的数据集成。 以上就是利用轻易云数据集成平台,将星空收款单的数据成功转换并写入到小满OKKICRMAPI接口的详细技术案例。 ![打通钉钉数据接口](https://pic.qeasy.cloud/T29.png~tplv-syqr462i7n-qeasy.image)