如何通过轻易云实现供应商数据集成

  • 轻易云集成顾问-蔡威
### 金蝶云星空到泛微OA-Http的供应商数据集成案例 在本技术案例中,我们探讨了将金蝶云星空系统中的供应商数据集成到泛微OA-Http平台的方法。这一过程通过逐单查询和批量写入,确保每个环节都顺畅无误。下面我们将详细介绍如何利用轻易云的数据集成平台,实现这一目标。 首先,我们需要从金蝶云星空系统获取供应商数据,这一步骤使用的是ExecuteBillQuery接口。为了确保数据的完整性和及时性,我们设计了一套定时可靠的抓取机制,通过处理分页和限流问题来高效获取大规模数据。在这一过程中,支持高吞吐量的数据写入能力显得尤为重要,它使得大量数据能够快速被提取并写入下一流程。 具体而言,为了解决不同系统之间的数据格式差异,我们自定义了专门的数据转换逻辑。这些转换规则不仅涵盖了字段映射,还包括复杂业务逻辑的适配。例如,将金蝶云星空中的某些特定字段转化为泛微OA-Http可识别且符合其业务要求的格式。同时,通过轻易云提供的可视化数据流设计工具,使整个配置过程变得直观且易于管理。 接下来是实现实际的数据提交操作。我们调用了泛微OA-Http接口/api/cube/new/card/doSubmit来进行逐单记录插入。在整个对接过程中,一系列监控与告警系统随时跟踪任务状态及性能参数,以便实时发现并解决潜在问题。 此外,在异常处理方面,如果出现任何意料之外的问题,会自动触发错误重试机制,从而保障整体流程的稳定性。因此,无论是网络波动还是暂时无法访问API,都不会影响最终的数据一致性和平稳运行。 通过这种全生命周期管理方式,不仅提高了业务透明度,也极大地提升了工作效率和准确率。在后续文章中,我们将进一步深入探讨各个步骤及细节,包括如何具体实施这些接口调用、如何优化性能以及怎样处理异常情况等。 ![金蝶与WMS系统接口开发配置](https://pic.qeasy.cloud/D21.png~tplv-syqr462i7n-qeasy.image) ### 调用金蝶云星空接口ExecuteBillQuery获取并加工数据 在数据集成的生命周期中,调用源系统接口获取数据是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用金蝶云星空的ExecuteBillQuery接口来获取供应商数据,并进行初步的数据加工。 #### 接口配置与请求参数 在轻易云平台上,我们需要配置元数据以便正确调用金蝶云星空的API接口。以下是我们需要配置的元数据: ```json { "api": "ExecuteBillQuery", "effect": "QUERY", "method": "POST", "number": "FNumber", "id": "FId", "request": [ { "field": "Limit", "label": "Limit", "type": "string", "describe": "金蝶的查询分页参数", "value": "500" }, { "field": "StartRow", "label": "StartRow", "type": "string", "describe": "金蝶的查询分页参数" }, { "field": "TopRowCount", "label": "TopRowCount", "type": "int", "describe": "金蝶的查询分页参数" }, { "field": "FilterString", "label": "FilterString", "type": "string", "describe": `示例写法 FSupplierId.FNumber = 'VEN00010' and FApproveDate>=`, `value":"FAuditDate>='{{LAST_SYNC_TIME|dateTime}}' and FUseOrgId.FNumber='000' and FForbidStatus='A'" }, { ``field``: ``FieldKeys``, ``label``: ``FieldKeys``, ``type``: ``array``, ``describe``: `金蝶分录主键ID格式:FPOOrderEntry_FEntryId,其它格式 FPurchaseOrgId.FNumber`, `value":"{MAIN_REQUEST}" }, { ``field``: ``FormId``, ``label``: ``FormId``, ``type``: ``string``, ``describe``: `必须填写金蝶的表单ID如:PUR_PurchaseOrder`, `value":"BD_Supplier" } ], autoFillResponse: true } ``` #### 请求参数详解 1. **Limit**:用于设置每次查询返回的数据条数,本文设置为500。 2. **StartRow**:用于设置查询起始行,通常用于分页。 3. **TopRowCount**:用于限制返回结果的最大行数。 4. **FilterString**:用于设置过滤条件。例如,`FAuditDate>='{{LAST_SYNC_TIME|dateTime}}' and FUseOrgId.FNumber='000' and FForbidStatus='A'`表示只查询审核日期在上次同步时间之后、使用组织编号为‘000’且未禁用的记录。 5. **FieldKeys**:指定需要返回的字段,例如主键ID等。 6. **FormId**:指定要查询的表单ID,这里为供应商表单`BD_Supplier`。 #### 调用API并处理响应 通过上述配置,我们可以使用POST方法调用ExecuteBillQuery接口。以下是一个示例请求体: ```json { “FormId”: “BD_Supplier”, “FieldKeys”: “FNumber,FName,FCreateDate”, “FilterString”: “FAuditDate>='2023-01-01' and FUseOrgId.FNumber='000' and FForbidStatus='A'”, “Limit”: “500” } ``` 该请求将返回符合条件的供应商信息,包括供应商编号、名称和创建日期。 #### 数据清洗与转换 获取到原始数据后,需要对其进行清洗和转换,以便后续写入目标系统。常见的数据清洗操作包括: 1. **字段映射**:将源系统字段映射到目标系统字段。例如,将金蝶中的`FNumber`映射到目标系统中的供应商编号字段。 2. **数据格式转换**:例如,将日期格式从YYYY-MM-DD转换为目标系统所需的格式。 3. **数据过滤**:根据业务规则过滤掉不需要的数据。 #### 自动填充响应 轻易云平台支持自动填充响应功能,可以简化部分开发工作。例如,通过配置`autoFillResponse: true`,平台会自动处理API响应并填充到预定义的数据结构中。 通过以上步骤,我们实现了从金蝶云星空获取供应商数据并进行初步加工,为后续的数据写入和进一步处理奠定了基础。这一过程不仅提高了数据集成效率,也确保了数据的一致性和准确性。 ![金蝶与WMS系统接口开发配置](https://pic.qeasy.cloud/S1.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台实现供应商数据转换与写入泛微OA-HttpAPI接口 在数据集成过程中,ETL(Extract, Transform, Load)是关键步骤之一。本文将详细探讨如何利用轻易云数据集成平台,将来自供应商金蝶的数据转换为泛微OA-HttpAPI接口所能接收的格式,并最终写入目标平台。 #### 1. 数据请求与清洗 首先,我们需要从源系统(金蝶)获取供应商相关的数据。假设我们已经完成了数据的提取和初步清洗,接下来就是对这些数据进行转换,以适应目标系统(泛微OA)的要求。 #### 2. 数据转换与写入 在这一阶段,我们将使用轻易云提供的元数据配置来实现数据的转换和写入。以下是具体的元数据配置: ```json { "api": "/api/cube/new/card/doSubmit", "effect": "EXECUTE", "method": "POST", "idCheck": true, "request": [ { "field": "billid", "label": "参数ID", "type": "string", "describe": "打开泛微表单后可以在URL中获取该参数", "value": "{F_WMMX_OAId}" }, { "field": "type", "label": "类型", "type": "string", "describe": "类型", "value": "_function case '{F_WMMX_OAId}' when '' then 1 else 2 end" }, { "field": "modeId", "label": "modeId", "type": "string", "describe": "//0 正常,1重要,2紧急", "value": "32" }, { "field": "formId", ... ``` #### 3. 配置解析与应用 ##### API接口配置 `api`字段指定了目标系统的API路径,即`/api/cube/new/card/doSubmit`。该路径用于提交新的卡片信息。 ##### 请求方法 `method`字段定义了请求方法为`POST`,表示我们将以POST请求方式提交数据。 ##### 参数配置 每个参数的配置如下: - `billid`: 从URL中获取的表单参数ID。 - `type`: 类型字段,根据条件判断设置为1或2。 - `modeId`: 固定值32,表示正常模式。 - `formId`: 固定值-179,对应特定表单ID。 - `JSONStr`: 包含多个子字段,用于传递具体的供应商信息。 ##### JSONStr子字段解析 以下是部分关键子字段及其对应关系: - `field11628`(银行账号): 对应金蝶中的`SupplierBank.0.BankCode`。 - `field11626`(使用组织): 对应金蝶中的`UseOrgId_Name`。 - `field11627`(收款银行): 对应金蝶中的`SupplierBank.0.OpenBankName_new`。 - `field11625`(供应商编码): 对应金蝶中的`Number`。 - `field11257`(供应商名字): 对应金蝶中的`chinese_name`。 通过这些配置,我们可以将从金蝶提取的数据映射到泛微OA所需的格式。 #### 4. 特殊处理逻辑 在某些情况下,需要对特定字段进行特殊处理。例如: ```json { ... { "field":"iscreate","label":"iscreate","type":"string","value":"_function case '{F_WMMX_OAId}' when '' then 1 else 0 end" } } ``` 上述配置表示,如果参数ID为空,则设置为1,否则设置为0。这种条件判断可以确保在不同情况下正确处理数据。 #### 5. 提交与监控 最后,通过轻易云的数据集成平台,我们可以实时监控数据流动和处理状态,确保每个环节都清晰可见。当所有配置完成后,执行POST请求,将转换后的数据提交到泛微OA系统,实现无缝对接。 以上就是利用轻易云数据集成平台实现供应商数据转换与写入泛微OA-HttpAPI接口的详细过程。通过灵活运用元数据配置,可以高效地完成不同系统间的数据集成任务。 ![钉钉与ERP系统接口开发配置](https://pic.qeasy.cloud/T25.png~tplv-syqr462i7n-qeasy.image)