金蝶-供应商--->简道云-供应商:系统对接集成案例分享
在企业日常业务管理中,数据高效流通和无缝对接是关键环节之一。本文将聚焦于一个具体的系统集成场景——从金蝶云星空的供应商数据到简道云平台的数据对接,实现这一过程的数据流设计、API调用、异常处理与监控。
首先,我们需要利用金蝶云星空提供的executeBillQuery
API接口批量抓取供应商数据。该接口具有较强的数据吞吐能力,但也面临分页和限流等问题,需要通过合理的调用策略加以应对。在获取数据后,通过轻易云的平台实现自定义转换逻辑,将这些复杂多样的数据格式统一并映射到适合简道云的平台结构。
为了确保大规模数据写入过程中不漏单,采用分步抓取及实时监控机制显得尤为重要。我们借助精细化操作界面可视化构建了整个流程,并配备了集中监控和告警功能,以便及时发现并处理任何异常情况。
此外,为了提升金蝶与简道之间的数据兼容性问题,需特别注意两者在字段命名、类型以及数值范围等方面的差异。同时,还要考虑如何通过简道云提供的API(例如:/api/v2/app/{app_id}/entry/{entry_id}/data_create
)可靠、高效地完成批量数据写入。
这些技术措施不仅确保了跨平台数据的一致性与准确性,也极大地优化了资源配置,并提高了企业运营效率。下面我们将具体探讨各个实施步骤及其技术细节。
调用金蝶云星空接口executeBillQuery获取并加工数据
在轻易云数据集成平台中,调用源系统的API接口是数据集成生命周期的第一步。本文将详细探讨如何通过调用金蝶云星空的executeBillQuery
接口来获取供应商数据,并进行初步加工。
接口配置与请求参数
首先,我们需要配置元数据,以便正确调用金蝶云星空的executeBillQuery
接口。以下是关键的元数据配置:
{
"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
}
请求示例
根据上述元数据配置,我们可以构建一个请求示例:
{
"FormId": "BD_Supplier",
"FieldKeys": ["FSupplierId", "FNumber", ...], // 根据实际需求填写字段
"FilterString": "FAuditDate>='2023-01-01' and FUseOrgId.FNumber in ('102','109')",
...
}
数据获取与初步加工
在成功调用API并获取到供应商数据后,需要对返回的数据进行初步加工。这包括但不限于以下几个步骤:
- 字段映射:将API返回的数据字段映射到目标系统所需的字段。例如,将
FSupplierId
映射为目标系统中的供应商ID。 - 数据清洗:处理缺失值、格式不一致等问题。例如,将日期格式统一为ISO标准。
- 过滤与筛选:根据业务需求进一步过滤数据。例如,只保留业务状态为“有效”的供应商。
以下是一个简单的数据清洗和映射示例:
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
实践案例
假设我们需要将金蝶云星空中的供应商数据同步到简道云。在轻易云平台上,我们可以通过以下步骤实现这一目标:
- 配置API调用:使用上述元数据配置,设置好API调用参数。
- 执行API请求:通过轻易云平台发起请求,获取原始供应商数据。
- 数据清洗与转换:使用自定义脚本或轻易云提供的数据处理工具,对原始数据进行清洗和转换。
- 写入目标系统:将处理后的数据写入简道云。
通过以上步骤,我们能够高效地完成从金蝶云星空到简道云的数据集成,为企业提供实时、准确的数据支持。
使用轻易云数据集成平台进行ETL转换并写入简道云API接口
在数据集成的生命周期中,将源平台的数据转换为目标平台所能接受的格式是至关重要的一步。本文将重点探讨如何利用轻易云数据集成平台,将金蝶系统中的供应商数据通过ETL(提取、转换、加载)过程,转化为简道云API接口所能接收的格式,并最终写入简道云。
数据请求与清洗
首先,从金蝶系统中提取供应商相关的数据。假设我们已经完成了这一阶段,获取了如下字段:
- FUseOrgId_FNumber: 使用组织编码
- FNumber: 编码
- FName: 供应商名称
- FUseOrgId_FName: 使用组织
这些字段需要经过清洗和标准化处理,以确保数据的一致性和完整性。
数据转换与写入
接下来,我们进入数据生命周期的第二步:将清洗后的数据进行ETL转换,并通过简道云API接口写入目标平台。以下是元数据配置,该配置定义了如何将源数据字段映射到目标平台的字段:
{
"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)