金蝶云星空数据集成到简道云客户表的技术实践
在本案例中,我们将详细解析如何通过轻易云数据集成平台,将金蝶云星空(Kingdee Cloud Galaxy)的客户数据高效、安全地对接至简道云(Jiandao Cloud)中的客户表,并确保整个过程中不漏单、快速写入和可靠抓取。具体实施方案被命名为:金蝶-客户--->简道云-客户。
一、调用金蝶云星空接口executeBillQuery获取源数据
首先,在系统对接初期,最关键的一步是从金蝶云星空获取所需的原始数据。在这里,我们利用其公开的API接口 executeBillQuery
来实现这一目标。该接口能够灵活地查询并返回符合条件的数据记录,为后续的数据处理与传输奠定了基础。
二、大量数据快速写入到简道云
一旦成功抓取到金蝶端的数据,如何高效地将这些大量信息批量导入至简道云便成为新的挑战。借助轻易平台强大的可视化操作界面及其支持的大量并发处理能力,我们可以通信调度 /api/v2/app/{app_id}/entry/{entry_id}/data_create
接口,实现大批量数据库创建操作,从而显著提升整体效率。
三、分页与限流问题的解决策略
由于我们面对的是庞大的企业级系统互联,因此不可避免会遇到分页和限流的问题。例如,针对金蝶API返回结果进行分页处理以及如何应对请求频次限制。对此,我们设计了一套自适应分步查询机制,通过合理配置参数来控制每次请求的记录数,使得即使是在极其复杂的数据增删改查业务场景下,也能保证顺利完成任务而不会触发目标服务器过载保护措施。
四、跨系统之间的数据格式差异转换
在不同系统间集成时,经常需要解决各自字段定义以及存储格式规范上的差异。本次案例中尤为如此:必须针对从金蝶采集来的JSON结构体进行适配性调整,以符合简道接受规则及显示要求。这部分工作同样依赖轻易平台强大且富有弹性的映射能力,以自动化方式实现字段匹配、类型变换等多项步骤,大幅减少人工参与干预环节,提高整合效率和准确度。
通过上述几大核心要点,本篇文章开头部分介绍了在实际项目中应当关注的重要技术细节,为后续深化探讨提供了坚实铺垫。
调用金蝶云星空接口executeBillQuery获取并加工数据
在数据集成过程中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用金蝶云星空的executeBillQuery
接口,以获取客户数据并进行初步加工。
元数据配置解析
首先,我们需要理解元数据配置metadata
的各个字段及其作用。以下是关键字段的解释:
api
: 接口名称,这里为executeBillQuery
。effect
: 操作类型,这里为QUERY
,表示查询操作。method
: HTTP请求方法,这里为POST
。number
,id
,name
: 这些字段用于标识和校验数据的唯一性。request
: 请求参数列表,包含了需要从金蝶云星空获取的字段信息。
请求参数详解
在请求参数中,每个字段都有特定的用途和格式要求。以下是一些关键字段及其描述:
FCUSTID
: 客户IDFNumber
: 编码FName
: 名称FCreateOrgId_FNumber
: 创建组织FUseOrgId_FNumber
: 使用组织- 其他字段如描述、客户类别、客户分组等也都包含在内。
此外,还有一些分页和过滤参数:
Limit
: 最大行数,用于分页控制。StartRow
: 开始行索引,用于分页控制。FilterString
: 过滤条件,用于限定查询范围,例如:FApproveDate>='{{LAST_SYNC_TIME|datetime}}' and FUseOrgId.FNumber in ('102','109')
FieldKeys
: 需查询的字段key集合。
调用接口获取数据
在轻易云数据集成平台上,我们可以通过配置上述元数据来调用金蝶云星空的接口。以下是一个示例请求体:
{
"FormId": "BD_Customer",
"FieldKeys": "FCUSTID,FNumber,FName,FCreateOrgId.FNumber,FUseOrgId.FNumber,FDescription,FCustTypeId.FNumber,FGroup.FNumber,FSALDEPTID.FNumber,FSELLER.FNumber,FSETTLETYPEID.FNumber,FRECCONDITIONID.FNumber,FShortName,FADDRESS,FTEL,FFAX,FCompanyClassify.FNumber,FINVOICETITLE,FINVOICEBANKACCOUNT,FCURRENCYID.FNumber,FTRADINGCURRID,FUseOrgId.FName",
"FilterString": "FApproveDate>='2023-01-01' and FUseOrgId.FNumber in ('102','109')",
"Limit": "100",
"StartRow": "0"
}
该请求体指定了需要查询的表单ID(客户表),以及所需字段和过滤条件。
数据清洗与加工
获取到原始数据后,需要对其进行清洗和初步加工。例如,可以对日期格式进行转换,对某些字段进行合并或拆分等。这一步骤可以通过轻易云平台提供的数据处理工具来实现。
以下是一个简单的数据清洗示例:
def clean_data(raw_data):
cleaned_data = []
for record in raw_data:
cleaned_record = {
"CustomerID": record["FCUSTID"],
"CustomerCode": record["FNumber"],
"CustomerName": record["FName"],
# 对日期格式进行转换
"ApprovedDate": convert_date_format(record["FApproveDate"]),
# 合并地址信息
"FullAddress": f"{record['FADDRESS']}, {record['FCity']}, {record['FState']}"
}
cleaned_data.append(cleaned_record)
return cleaned_data
写入目标系统
经过清洗和加工后的数据,可以通过轻易云平台写入到目标系统(如简道云)。这一步骤通常涉及到目标系统API的调用,并确保数据格式符合目标系统要求。
{
"api": "/api/v1/customers",
"method": "POST",
"data": {
"CustomerID": "{CustomerID}",
"CustomerCode": "{CustomerCode}",
"CustomerName": "{CustomerName}",
# 其他字段...
}
}
通过上述步骤,我们完成了从金蝶云星空获取客户数据,并将其清洗、加工后写入到简道云的全过程。这不仅提高了数据处理效率,也确保了数据的一致性和准确性。
使用轻易云数据集成平台进行ETL转换并写入简道云API接口
在数据集成的生命周期中,ETL(提取、转换、加载)是关键步骤之一。本文将重点探讨如何使用轻易云数据集成平台,将已经集成的源平台(金蝶)的客户数据进行ETL转换,转为简道云API接口所能够接收的格式,并最终写入目标平台。
数据请求与清洗
在开始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_1706498287239",
"label": "对应门店",
"type": "string",
"describe": "111",
"parser": {
"name": "ConvertObjectParser",
"params": "value"
}
},
{
...
}
],
...
}
配置解析与应用
-
API接口配置:
api
: 指定了简道云的数据创建接口路径。method
: 使用POST方法提交数据。idCheck
: 启用ID检查,确保唯一性。
-
字段映射与解析: 每个字段都有详细的映射配置,包括字段名、标签、类型、描述和解析器。例如:
{ "field": "_widget_1704877011053", "label": "使用组织编码", ... "value": "{FUseOrgId_FNumber}", ... }
这里将金蝶中的
FUseOrgId_FNumber
字段映射到简道云中的_widget_1704877011053
字段,并通过ConvertObjectParser
解析器进行值的转换。 -
附加请求参数: 除了主要的数据字段,还可以配置其他请求参数,如启动工作流等:
{ ... {"field":"is_start_workflow","label":"is_start_workflow","type":"string","describe":"111","value":"true"}, {"field":"transaction_id","label":"transaction_id","type":"string","describe":"111","value":"1"}, ... }
实际操作步骤
- 提取数据:通过调用金蝶API获取客户数据。
- 配置元数据:根据上述元数据配置,将提取的数据进行映射和解析。
- 执行转换:利用轻易云的数据处理功能,对提取的数据进行必要的清洗和转换。
- 提交请求:通过POST方法,将处理后的数据提交到简道云API接口,实现数据写入。
技术要点
- 异构系统支持:轻易云平台能够无缝对接不同系统,实现异构系统间的数据传输和转换。
- 全生命周期管理:从数据提取到最终写入,全过程透明可视化,确保每个环节都可追踪。
- 实时监控与调试:在实际操作中,可以实时监控每个步骤的数据流动和处理状态,及时发现并解决问题。
通过以上步骤,我们成功实现了从金蝶到简道云的数据集成。利用轻易云平台强大的ETL功能,可以高效地完成复杂的数据处理任务,提高业务透明度和效率。