吉客云数据集成到金蝶云星空:JY-BDS组装拆卸单案例分享
在本篇技术文章中,我们将深入探讨如何通过轻易云数据集成平台,将吉客云的数据高效、可靠地集成到金蝶云星空系统中。目标是配置和实现名为“JY-BDS组装拆卸单”的实际运行方案。
首先,考虑到两大系统之间的API接口特性,吉客云提供了获取数据的 erp.combined.get
API,而金蝶云星空则支持批量写入操作,通过其 batchSave
API 实现。本次集成过程中,我们着重于以下关键环节:
-
定时可靠的数据抓取: 使用定时任务机制,从吉客云的
erp.combined.get
接口定期拉取最新数据,并确保每次获取的数据完整且不漏单。在处理分页和限流问题上进行了优化,以便应对大量数据请求。 -
自定义数据转换逻辑: 针对业务需求,对从吉客云获取的数据进行必要的格式转化,使其符合金蝶云星空要求。例如,在字段映射与值转换方面,使用自定义规则来保证转换过程准确无误。
-
快速批量写入: 实现从轻易平台直接向金蝶云星空的大规模高效写入。在这部分,通过运用分批处理技术以及优化并发数量,使得大量数据能够被快速且稳定地录入到目标系统中。
-
集中监控与告警系统: 在整个集成流程中,实时跟踪各项任务状态,包括成功率、执行耗时及异常情况等。一旦出现问题,比如网络延迟或者服务崩溃,可以即时触发告警并启动错误重试机制以保障业务连续性。
-
异常处理与日志记录: 详细记录每一笔操作日志,对于可能出现的任何异常都设立完善的捕捉与重试策略,从而减少因偶然因素导致的数据丢失或重复。同时,为后续复盘和调优提供充分依据。
以上几个核心步骤构建了一个健全、高效、安全可靠的数据集成模式。接下来我们将逐步展开详细讲解具体实施方案及相关技术细节。
调用吉客云接口erp.combined.get获取并加工数据的技术实现
在数据集成生命周期的第一步,我们需要从源系统吉客云中调用接口erp.combined.get
来获取原始数据,并对其进行初步加工。以下将详细探讨如何通过轻易云数据集成平台配置元数据,完成这一过程。
接口调用配置
首先,我们需要根据提供的元数据配置来设置API调用参数。以下是具体的配置细节:
{
"api": "erp.combined.get",
"method": "POST",
"number": "assNo",
"id": "assId",
"pagination": {
"pageSize": 50
},
"idCheck": true,
"request": [
{
"label": "开始日期",
"field": "applyStartDate",
"type": "string",
"value": "{{DAYS_AGO_1|datetime}}"
},
{
"label": "结束日期",
"field": "applyEndDate",
"type": "string",
"value": "{{CURRENT_TIME|datetime}}"
}
]
}
参数解析与配置
-
API与方法:
api
: 指定了要调用的API接口为erp.combined.get
。method
: 使用POST方法进行请求。
-
标识字段:
number
: 数据记录的编号字段为assNo
。id
: 数据记录的唯一标识字段为assId
。
-
分页设置:
pagination
: 设置每次请求的数据条数为50条,以便处理大批量数据时能够分批获取,避免单次请求过多导致性能问题。
-
ID检查:
idCheck
: 设置为true,表示在处理数据时会进行ID检查,确保数据唯一性和完整性。
-
请求参数:
request
: 包含两个时间参数,分别是开始日期和结束日期,用于限定查询的数据范围。applyStartDate
: 开始日期,使用模板变量{{DAYS_AGO_1|datetime}}
表示当前时间前一天。applyEndDate
: 结束日期,使用模板变量{{CURRENT_TIME|datetime}}
表示当前时间。
数据请求与清洗
在完成上述配置后,通过轻易云平台发起API请求,从吉客云中获取符合条件的数据。以下是一个示例请求体:
{
"applyStartDate": "<昨天的日期>",
"applyEndDate": "<当前时间>"
}
假设我们今天是2023年10月10日,那么实际发送的请求体可能如下:
{
"applyStartDate": "2023-10-09T00:00:00Z",
"applyEndDate": "2023-10-10T23:59:59Z"
}
数据转换与写入
获取到原始数据后,需要对其进行初步清洗和转换,以便后续处理和分析。主要包括以下步骤:
- 格式转换:将日期、时间等字段转换为标准格式,确保一致性。
- 字段映射:根据业务需求,将原始数据中的字段映射到目标系统所需的字段。例如,将吉客云中的
assNo
映射到目标系统中的订单编号字段。 - 去重与校验:利用ID检查功能,对获取的数据进行去重和校验,确保每条记录都是唯一且有效的。
通过以上步骤,我们可以高效地从吉客云中获取并初步加工所需的数据,为后续的数据转换与写入奠定基础。这一过程中,轻易云平台提供了全透明可视化操作界面,使得每个环节都清晰易懂,并实时监控数据流动和处理状态,大大提升了业务透明度和效率。
使用轻易云数据集成平台将源数据转换并写入金蝶云星空API接口
在数据集成的生命周期中,第二步是将已经集成的源平台数据进行ETL转换,并转为目标平台能够接收的格式。本文将详细探讨如何利用轻易云数据集成平台,将源数据转换为金蝶云星空API接口所需的格式,并最终写入目标平台。
元数据配置解析
首先,我们需要理解元数据配置中的各个字段及其作用。以下是一个典型的元数据配置示例:
{
"api": "batchSave",
"method": "POST",
"idCheck": true,
"operation": {
"rowsKey": "array",
"rows": 1,
"method": "batchArraySave"
},
"request": [
{"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"{assNo}"},
{"field":"FStockOrgId","label":"库存组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"{companyCode}"},
{"field":"FBillTypeID","label":"单据类型","type":"string","describe":"单据类型","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"ZZCX01_SYS"},
{"field":"FAffairType","label":"事务类型","type":"string","describe":"下拉列表","value":"_function case {assembleType} when 1 then 'Assembly' else 'Dassembly' end"},
{"field":"FSubProOwnerIdH","label":"子件货主","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"{companyCode}"},
{"field":"FSubProOwnTypeIdH","label":"子件货主类型","type":"string","describe":"组织","value":"BD_OwnerOrg"},
{"field":"FOwnerTypeIdHead","label":"成品货主类型","type":"string","describe":"多类别基础资料列表","value":"BD_OwnerOrg"},
{"field":"FOwnerIdHead","label":"成品货主","type":"string","describe":"多类别基础资料","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"{companyCode}"},
{"field":"FDate","label":"","type":"","describe":"","value":""},
{"field":"","label":"","type":"","describe":"","value":""}
],
"otherRequest":[
{"field":"","label":"","type":"","describe":"","value":""}
]
}
数据转换与写入
-
请求头设置:在请求头中,我们需要指定API路径和HTTP方法。在这个例子中,
api
字段设定为batchSave
,表示我们将使用金蝶云星空的批量保存接口;method
字段设定为POST
,表示我们将使用HTTP POST方法发送请求。 -
字段映射与转换:
FBillNo
:单据编号,从源数据中的assNo
字段获取。FStockOrgId
:库存组织,需要通过ConvertObjectParser
解析器将源数据中的公司代码(companyCode
)转换为金蝶系统识别的格式。FBillTypeID
:单据类型,固定值为“ZZCX01_SYS”,同样需要通过解析器进行转换。FAffairType
:事务类型,根据条件判断,如果装配类型(assembleType
)为1,则值为“Assembly”,否则为“Dassembly”。FSubProOwnerIdH
,FOwnerIdHead
,FOwnerIdSETY
, 等等:这些字段都需要通过解析器将公司代码转换为金蝶系统识别的格式。
-
日期格式化:
FDate
: 日期字段,需要通过函数将UNIX时间戳(毫秒)转换为标准日期时间格式。
-
嵌套数组处理:
FEntity
: 成品信息,包括物料编码、数量、仓库等,需要从源数据中的产品信息(product)提取并映射到相应字段。FSubEntity
: 子件信息,包括物料编码、数量、仓库等,需要从源数据中的材料信息(material)提取并映射到相应字段。
-
其他请求参数:
FormId
: 固定值“STK_AssembledApp”,表示业务对象表单ID。IsAutoSubmitAndAudit
: 设置为true,表示自动提交并审核。IsVerifyBaseDataField
: 设置为true,表示验证所有基础资料有效性。
实际案例
假设我们有如下源数据:
{
"assNo": "A12345",
"companyCode": "C001",
"assembleType": 1,
"applyDate": 1672531199000,
"remark": "测试备注",
"product": [
{
"goodsNo": "P001",
"quantity": 10,
"warehouseCode": "W001",
"rowRemark": ""
}
],
"material": [
{
"goodsNo": "",
""
""
""
""
""
""
根据上述元数据配置和处理逻辑,我们可以生成如下目标平台所需的数据格式:
{
...
}
通过轻易云的数据集成平台,我们可以轻松实现复杂的数据转换和写入操作,从而确保不同系统间的数据无缝对接,提高业务效率。