使用轻易云完成金蝶与简道的平台数据转换和写入

  • 轻易云集成顾问-曾平安
### 金蝶-供应商--->简道云-供应商:系统对接集成案例分享 在企业日常业务管理中,数据高效流通和无缝对接是关键环节之一。本文将聚焦于一个具体的系统集成场景——从金蝶云星空的供应商数据到简道云平台的数据对接,实现这一过程的数据流设计、API调用、异常处理与监控。 首先,我们需要利用金蝶云星空提供的`executeBillQuery` API接口批量抓取供应商数据。该接口具有较强的数据吞吐能力,但也面临分页和限流等问题,需要通过合理的调用策略加以应对。在获取数据后,通过轻易云的平台实现自定义转换逻辑,将这些复杂多样的数据格式统一并映射到适合简道云的平台结构。 为了确保大规模数据写入过程中不漏单,采用分步抓取及实时监控机制显得尤为重要。我们借助精细化操作界面可视化构建了整个流程,并配备了集中监控和告警功能,以便及时发现并处理任何异常情况。 此外,为了提升金蝶与简道之间的数据兼容性问题,需特别注意两者在字段命名、类型以及数值范围等方面的差异。同时,还要考虑如何通过简道云提供的API(例如:`/api/v2/app/{app_id}/entry/{entry_id}/data_create`)可靠、高效地完成批量数据写入。 这些技术措施不仅确保了跨平台数据的一致性与准确性,也极大地优化了资源配置,并提高了企业运营效率。下面我们将具体探讨各个实施步骤及其技术细节。 ![用友与WMS系统接口开发配置](https://pic.qeasy.cloud/D15.png~tplv-syqr462i7n-qeasy.image) ### 调用金蝶云星空接口executeBillQuery获取并加工数据 在轻易云数据集成平台中,调用源系统的API接口是数据集成生命周期的第一步。本文将详细探讨如何通过调用金蝶云星空的`executeBillQuery`接口来获取供应商数据,并进行初步加工。 #### 接口配置与请求参数 首先,我们需要配置元数据,以便正确调用金蝶云星空的`executeBillQuery`接口。以下是关键的元数据配置: ```json { "api": "executeBillQuery", "effect": "QUERY", "method": "POST", "number": "FNumber", "id": "FSupplierId", "name": "FNumber", "idCheck": true, "request": [ {"field":"FSupplierId","label":"FSupplierId","type":"string","describe":"FSupplierId","value":"FSupplierId"}, {"field":"FNumber","label":"编码","type":"string","describe":"编码","value":"FNumber"}, {"field":"FName","label":"名称","type":"string","describe":"名称","value":"FName"}, {"field":"FCreateOrgId_FNumber","label":"创建组织","type":"string","describe":"创建组织","value":"FCreateOrgId.FNumber"}, {"field":"FUseOrgId_FNumber","label":"使用组织","type":"string","describe":"使用组织","value":"FUseOrgId.FNumber"}, {"field":"FDescription","label":"描述","type":"string","describe":"描述","value":"FDescription"}, {"field":"FShortName","label":"简称","type":"string","describe":"简称","value":"FShortName"}, {"field":"FMinPOValue","label":"最小订单量","type":"string","describe":"最小订单量","value":"FMinPOValue"}, {"field":"FCountry_FNumber","label":"国家","type":"string","describe":"国家","value":"FCountry.FNumber"}, {"field":... // 省略部分字段以简化示例 ], "otherRequest": [ {"field": "Limit", "label": "{PAGINATION_PAGE_SIZE}", "type": "string", "describe": "金蝶的查询分页参数", "value": "{PAGINATION_PAGE_SIZE}"}, {"field": "StartRow", "label": "开始行索引", "type": "string", "describe": "金蝶的查询分页参数", "value": "{PAGINATION_START_ROW}"}, {"field":... // 省略部分字段以简化示例 ], "autoFillResponse": true } ``` #### 请求示例 根据上述元数据配置,我们可以构建一个请求示例: ```json { "FormId": "BD_Supplier", "FieldKeys": ["FSupplierId", "FNumber", ...], // 根据实际需求填写字段 "FilterString": "FAuditDate>='2023-01-01' and FUseOrgId.FNumber in ('102','109')", ... } ``` #### 数据获取与初步加工 在成功调用API并获取到供应商数据后,需要对返回的数据进行初步加工。这包括但不限于以下几个步骤: 1. **字段映射**:将API返回的数据字段映射到目标系统所需的字段。例如,将`FSupplierId`映射为目标系统中的供应商ID。 2. **数据清洗**:处理缺失值、格式不一致等问题。例如,将日期格式统一为ISO标准。 3. **过滤与筛选**:根据业务需求进一步过滤数据。例如,只保留业务状态为“有效”的供应商。 以下是一个简单的数据清洗和映射示例: ```python def clean_and_map_data(raw_data): cleaned_data = [] for item in raw_data: mapped_item = { 'supplier_id': item.get('FSupplierId'), 'code': item.get('FNumber'), 'name': item.get('FName'), 'organization': item.get('FCreateOrgId_FNumber'), ... } # 数据清洗逻辑,例如处理缺失值 if not mapped_item['name']: mapped_item['name'] = '未知供应商' cleaned_data.append(mapped_item) return cleaned_data ``` #### 实践案例 假设我们需要将金蝶云星空中的供应商数据同步到简道云。在轻易云平台上,我们可以通过以下步骤实现这一目标: 1. **配置API调用**:使用上述元数据配置,设置好API调用参数。 2. **执行API请求**:通过轻易云平台发起请求,获取原始供应商数据。 3. **数据清洗与转换**:使用自定义脚本或轻易云提供的数据处理工具,对原始数据进行清洗和转换。 4. **写入目标系统**:将处理后的数据写入简道云。 通过以上步骤,我们能够高效地完成从金蝶云星空到简道云的数据集成,为企业提供实时、准确的数据支持。 ![钉钉与CRM系统接口开发配置](https://pic.qeasy.cloud/S1.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台进行ETL转换并写入简道云API接口 在数据集成的生命周期中,将源平台的数据转换为目标平台所能接受的格式是至关重要的一步。本文将重点探讨如何利用轻易云数据集成平台,将金蝶系统中的供应商数据通过ETL(提取、转换、加载)过程,转化为简道云API接口所能接收的格式,并最终写入简道云。 #### 数据请求与清洗 首先,从金蝶系统中提取供应商相关的数据。假设我们已经完成了这一阶段,获取了如下字段: - FUseOrgId_FNumber: 使用组织编码 - FNumber: 编码 - FName: 供应商名称 - FUseOrgId_FName: 使用组织 这些字段需要经过清洗和标准化处理,以确保数据的一致性和完整性。 #### 数据转换与写入 接下来,我们进入数据生命周期的第二步:将清洗后的数据进行ETL转换,并通过简道云API接口写入目标平台。以下是元数据配置,该配置定义了如何将源数据字段映射到目标平台的字段: ```json { "api": "/api/v2/app/{app_id}/entry/{entry_id}/data_create", "effect": "EXECUTE", "method": "POST", "idCheck": true, "request": [ { "field": "_widget_1704877011053", "label": "使用组织编码", "type": "string", "describe": "111", "value": "{FUseOrgId_FNumber}", "parser": { "name": "ConvertObjectParser", "params": "value" } }, { "field": "_widget_1704877011054", "label": "编码", "type": "string", "describe": "111", "value": "{FNumber}", "parser": { "name": "ConvertObjectParser", "params": "value" } }, { "field": "_widget_1602205469196", "label": "供应商名称", "type": "string", "value": "{FName}", "parser": { "name": "ConvertObjectParser", "params": "value" } }, { "field": "_widget_1704877011055", "label": "使用组织", "type": "string", "value": "{FUseOrgId_FName}", ``parser``: { ``name``: ``ConvertObjectParser``, ``params``: ``value`` } } ], ``otherRequest``: [ { ``field``: ``is_start_workflow``, ``label``: ``is_start_workflow``, ``type``: ``string``, ``describe``: ``111``, ``value``: ``true`` }, { ``field``: ``is_start_trigger``, ``label``: ``is_start_trigger``, ``type``: ``string``, ``describe``: ``111``, ``value``: ``false`` }, { ``field``: ``appId``, ``label``: ``appId``, ``type``: ``string``, ``describe``: ``111``, ``value``: ``` 642307c010703500087839ac }, { ``` field ```: ```entryId ```: ```entryId ```: ```entryId ```: ```entryId ```: ```entryId ```: ```entryId ```: ```entryId ```: ```entryId ```: ```entryId ```: ```entryId ```: ```entryId ![打通金蝶云星空数据接口](https://pic.qeasy.cloud/T16.png~tplv-syqr462i7n-qeasy.image)