金蝶供应商同步简道云:系统对接集成技术案例
在本次技术分享中,我们将重点讨论如何高效地实现金蝶云星空的数据集成到简道云,具体方案为“金蝶供应商同步简道云”。我们通过轻易云数据集成平台,成功解决了多个在系统对接过程中遇到的关键问题,包括API接口调用、数据格式差异转换和定时可靠的数据抓取。
首先,我们需要从金蝶云星空获取供应商相关数据,这一步主要依赖于executeBillQuery
API接口。由于金蝶云星空接口执行存在分页和限流问题,因此我们设计了一套机制以确保所有条目都能被完整提取。在处理分页请求时,每个响应结果都会逐步存入临时数据库以供后续批量操作,防止任何记录遗漏。
接下来是大量数据信息的快速写入至简道云。利用其开放的API /api/v2/app/{app_id}/entry/{entry_id}/data_create
,我们得以高效进行批量插入操作。然而,为确保这一过程顺利,无论是在字段匹配上还是在数据类型转换上,都需特别注意。例如,针对日期格式或数值型字段,需要进行适当转换来保证兼容性。
不幸的是,在实际操作中难免会出现一些异常情况。因此,本方案中特别引入了错误重试机制及实时监控与日志记录功能。通过这些措施,不仅可以及时发现并处理错误,还可追溯整个数据处理过程各环节的状态,从而提升整体项目运作的稳定性与安全性。
当然,这一系列步骤也涉及到复杂的数据映射配置,为此我们借助轻易云平台提供的新特性,实现了高度定制化的数据映射,从而使每一次的数据写入都符合预期要求。这些关键点不仅保障了项目顺利上线,也大幅提高了工作效率和准确性,使得我们的客户能够持续稳定地获得他们所需的重要业务信息。
调用金蝶云星空接口executeBillQuery获取并加工数据
在轻易云数据集成平台中,调用源系统接口是数据集成生命周期的第一步。本文将详细探讨如何通过调用金蝶云星空的executeBillQuery
接口获取供应商数据,并进行必要的数据加工。
接口配置与请求参数
首先,我们需要配置接口的基本信息和请求参数。根据提供的元数据配置,executeBillQuery
接口采用POST方法,主要用于查询供应商信息。以下是具体的请求参数配置:
{
"api": "executeBillQuery",
"method": "POST",
"number": "FNumber",
"id": "FSupplierId",
"pagination": {
"pageSize": 100
},
"idCheck": true,
"request": [
{"field":"FSupplierId","label":"FSupplierId","type":"string","value":"FSupplierId"},
{"field":"FNumber","label":"编码","type":"string","value":"FNumber"},
{"field":"FName","label":"名称","type":"string","value":"FName"},
{"field":"FCreateOrgId_FNumber","label":"创建组织","type":"string","value":"FCreateOrgId.FNumber"},
{"field":"FUseOrgId_FNumber","label":"使用组织","type":"string","value":"FUseOrgId.FNumber"},
{"field":"FDescription","label":"描述","type":"string","value":"FDescription"},
{"field":"FShortName","label":"简称","type":"string","value":"FShortName"},
{"field":"FMinPOValue","label":"最小订单量","type":"string","describe":"小数","value":"FMinPOValue"},
{"field":"FCountry_FNumber","label":"国家","type":"string","describe":"单选辅助资料列表","value":"FCountry.FNumber"},
{"field":"FBusinessStatus","label":"业务状态","type":"string","describe":"单据状态","value":"FBusinessStatus"},
{"field":...}
],
"otherRequest": [
{"field": "Limit", "label": "最大行数", "type": "string", "describe": "金蝶的查询分页参数", "value": "{PAGINATION_PAGE_SIZE}"},
{"field": "StartRow", "label": "开始行索引", "type": "string", "describe": "金蝶的查询分页参数", "value": "{PAGINATION_START_ROW}"},
{"field":...}
]
}
数据请求与清洗
在实际操作中,首先需要构建HTTP请求来调用executeBillQuery
接口。以下是一个示例代码片段,用于发送POST请求并获取响应数据:
import requests
url = 'https://api.kingdee.com/executeBillQuery'
headers = {'Content-Type': 'application/json'}
payload = {
'FormId': 'BD_Supplier',
'FieldKeys': 'FSupplierId,FNumber,FName,FCreateOrgId.FNumber,FUseOrgId.FNumber,...',
'FilterString': 'FAuditDate>=\'2023-01-01\'',
'Limit': 100,
'StartRow': 0
}
response = requests.post(url, json=payload, headers=headers)
data = response.json()
在获取到原始数据后,需要对其进行清洗和转换,以便后续处理。例如,将日期格式统一、处理空值、转换字段类型等。以下是一个简单的数据清洗示例:
import pandas as pd
# 假设data是从API返回的JSON数据
df = pd.DataFrame(data)
# 清洗和转换数据
df['FAuditDate'] = pd.to_datetime(df['FAuditDate'])
df['FMinPOValue'] = df['FMinPOValue'].astype(float)
df.fillna('', inplace=True)
数据转换与写入
经过清洗的数据需要进一步转换为目标系统所需的格式,并写入目标系统。在此过程中,可以利用轻易云平台提供的可视化工具,实现数据映射和转换规则的配置。
例如,将供应商编码和名称映射到目标系统中的相应字段:
{
"mappingRules": [
{"sourceField": "FSupplierId", "targetField": "supplier_id"},
{"sourceField": "FNumber", "targetField": "supplier_code"},
{"sourceField":...}
]
}
通过这些映射规则,可以确保数据在不同系统之间无缝对接。
实时监控与错误处理
在整个数据集成过程中,实时监控和错误处理至关重要。轻易云平台提供了完善的监控机制,可以实时跟踪每个环节的数据流动和处理状态。一旦出现错误,可以及时捕获并进行处理,确保数据集成过程顺利进行。
例如,通过日志记录和告警机制,可以快速定位并解决问题:
import logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
try:
response = requests.post(url, json=payload, headers=headers)
response.raise_for_status()
except requests.exceptions.RequestException as e:
logger.error(f"API request failed: {e}")
以上就是调用金蝶云星空接口executeBillQuery
获取并加工数据的详细技术方案。通过合理配置接口、清洗和转换数据,以及实时监控和错误处理,可以有效提升数据集成效率,确保业务流程顺畅运行。
使用轻易云数据集成平台实现金蝶供应商数据同步至简道云
在数据集成的生命周期中,ETL(Extract, Transform, Load)转换是将源平台的数据转换为目标平台所需格式的关键步骤。本文将详细探讨如何利用轻易云数据集成平台,将金蝶供应商数据转换并写入简道云API接口。
数据请求与清洗
在进行ETL转换之前,首先需要从金蝶系统中提取供应商数据,并对其进行必要的清洗和预处理。这一步骤确保了数据的准确性和一致性,为后续的转换和写入打下坚实基础。
数据转换与写入
接下来,我们重点关注如何将清洗后的数据通过轻易云平台进行转换,并最终写入到简道云。以下是具体的元数据配置及其解析:
{
"api": "/api/v2/app/{app_id}/entry/{entry_id}/data_create",
"method": "POST",
"idCheck": true,
"request": [
{"field":"_widget_1670218674091","label":"供应商编号","type":"string","parser":{"name":"ConvertObjectParser","params":"value"},"value":"{FNumber}"},
{"label":"供应商名称","field":"_widget_1670218674092","type":"string","value":"{FName}","parser":{"name":"ConvertObjectParser","params":"value"}},
{"label":"创建组织","field":"_widget_1670218674093","type":"string","value":"{FCreateOrgId_FNumber}","parser":{"name":"ConvertObjectParser","params":"value"}},
{"label":"简称","field":"_widget_1670218674095","type":"string","value":"{FShortName}","parser":{"name":"ConvertObjectParser","params":"value"}},
{"label":"使用组织","field":"_widget_1670218674094","type":"string","value":"{FUseOrgId_FNumber}","parser":{"name":"ConvertObjectParser","params":"value"}},
{"label":"税务登记号","field":"_widget_1670218674096","type":"string","value":"{FTaxRegisterCode}","parser":{"name":"ConvertObjectParser","params":"value"}},
{"label":"付款条件","field":"_widget_1670218674097","type":"string","value":"{FPayCondition_FNumber}","parser":{"name":"ConvertObjectParser","params":"value"}},
{"label":"开户银行","field":"_widget_1670218674098","type":"string","value":"{FOpenBankName}"},
{"label": "银行账号", "field": "_widget_1670218674099", "type": "string", "value": "{FBankCode}", "parser": { "name": "ConvertObjectParser", "params": "value" }},
{"label": "账户名称", "field": "_widget_1670218674100", "type": "string", "parser": { "name": "ConvertObjectParser", "params": "value" }}
],
"otherRequest":[
{"field": "is_start_workflow", "label": "是否发起流程(仅流程表单有效)", "type": "string", "value": "true"},
{"field": "is_start_trigger", "label": "是否触发智能助手", "type": "string", "value": "false"},
{"field": "transaction_id", "label": "", type: string},
{"field": "", label: "", type: ""},
{"field":"","label":"","type":"","}
]
}
元数据配置解析
-
API接口:
/api/v2/app/{app_id}/entry/{entry_id}/data_create
- 方法:POST
- ID检查:
idCheck: true
,确保不会重复创建记录。
-
请求字段:
供应商编号
(FNumber
) ->_widget_1670218674091
供应商名称
(FName
) ->_widget_1670218674092
创建组织
(FCreateOrgId_FNumber
) ->_widget_1670218674093
简称
(FShortName
) ->_widget_1670218674095
使用组织
(FUseOrgId_FNumber
) ->_widget_1670218674094
税务登记号
(FTaxRegisterCode
) ->_widget_1670218674096
付款条件
(FPayCondition_FNumber
) ->_widget_1670218674097
开户银行
(FOpenBankName
) ->_widget_1670218674098
银行账号
(FBankCode
) ->_widget_1670218674099
账户名称
->_widget_1670218674100
每个字段都使用了名为ConvertObjectParser
的解析器,将金蝶系统中的字段值转换为简道云所需的格式。
- 其他请求参数:
- 是否发起流程:设置为true。
- 是否触发智能助手:设置为false。
这些配置确保了在向简道云写入数据时,能够正确触发相关工作流和智能助手功能。
实际操作步骤
- 配置元数据:根据上述元数据配置,在轻易云平台上设置对应的API接口和字段映射关系。
- 测试接口连接:通过轻易云提供的测试功能,验证API接口是否能够正常连接并接收数据。
- 执行ETL任务:启动ETL任务,将从金蝶系统提取的数据进行转换,并通过配置好的API接口写入到简道云。
通过上述步骤,可以实现从金蝶系统到简道云的数据无缝对接,大大提升了业务处理效率和透明度。