聚水潭数据集成到金蝶云的系统对接技术分析
聚水潭数据集成到金蝶云星空的技术案例分享
在企业信息化系统中,数据的高效流转和准确对接是业务顺利进行的关键。本文将聚焦于一个具体的系统对接集成案例:如何将聚水潭平台上的盘盈单数据无缝集成到金蝶云星空中的其他入库单。
背景与挑战
在本次项目中,我们需要解决以下几个技术难题:
- 高吞吐量的数据写入能力:确保大量盘盈单数据能够快速且准确地从聚水潭导入到金蝶云星空。
- 实时监控与告警:通过集中监控和告警系统,实时跟踪数据集成任务的状态和性能,及时发现并处理异常情况。
- API资产管理:利用聚水潭与金蝶云星空的API资产管理功能,通过统一视图全面掌握API使用情况,实现资源优化配置。
- 数据质量监控与异常检测:确保每一条数据都能准确无误地传输,并在出现问题时及时处理。
- 自定义数据转换逻辑:适应特定业务需求和数据结构,实现精准的数据映射。
方案概述
我们采用了轻易云数据集成平台来实现这一复杂的数据对接任务。该平台提供了全生命周期管理、全透明可视化操作界面以及强大的实时监控功能,使得整个过程清晰易懂且高效可靠。
具体方案名称为“聚水潭-盘盈单-->金蝶-其他入库单”,主要涉及以下步骤:
- 定时可靠抓取聚水潭接口数据:通过调用聚水潭提供的
/open/inventory/count/query
API接口,定时获取最新盘盈单数据。 - 批量集成到金蝶云星空:利用金蝶云星空的
batchSave
API接口,将获取的数据批量写入目标系统中。 - 处理分页和限流问题:针对大批量数据传输过程中可能遇到的分页和限流问题,设计了相应的解决策略,以保证稳定性和效率。
- 格式差异处理及映射:通过自定义转换逻辑,将聚水潭的数据格式转换为符合金蝶云星空要求的数据格式,并进行精确映射。
技术要点
为了确保整个流程顺利进行,我们特别关注以下技术要点:
- 高吞吐量支持:轻易云平台具备强大的高吞吐量支持能力,使得大量盘盈单数据能够快速被导入目标系统,提高整体效率。
- 集中监控与告警系统:实时跟踪每个环节的数据流动状态,一旦出现异常立即触发告警机制,确保问题能够第一时间得到解决。
- 自定义转换逻辑及映射工具:通过可视化的数据流设计工具,自定义转换逻辑,使得复杂的数据映射变得直观且易于管理。
以上是本次技术案例分享的开篇部分。在后续章节中,我们将详细介绍每个步骤中的具体实现方法及注意事项。
调用聚水潭接口/open/inventory/count/query获取并加工数据
在数据集成过程中,调用源系统的API接口是关键的一步。本文将详细探讨如何通过轻易云数据集成平台调用聚水潭接口/open/inventory/count/query
,并对获取的数据进行加工处理。
接口调用配置
首先,我们需要配置元数据,以便正确调用聚水潭的API接口。以下是具体的元数据配置:
{
"api": "/open/inventory/count/query",
"method": "POST",
"number": "io_id",
"id": "io_id",
"buildModel": true,
"request": [
{
"field": "page_index",
"label": "开始页码",
"type": "string",
"describe": "第几页,从第一页开始,默认1",
"value": "1"
},
{
"field": "page_size",
"label": "每页条数",
"type": "string",
"describe":"每页多少条,默认30,最大50",
"value":"50"
},
{
"field":"modified_begin",
"label":"修改开始时间",
"type":"datetime",
“describe”:”修改起始时间,和结束时间必须同时存在,时间间隔不能超过七天,与线上单号不能同时为空”,
“value”:”{{LAST_SYNC_TIME|datetime}}”
},
{
“field”:”modified_end”,
“label”:”修改结束时间”,
“type”:”datetime”,
“describe”:”修改结束时间,和起始时间必须同时存在,时间间隔不能超过七天,与线上单号不能同时为空”,
“value”:”{{CURRENT_TIME|datetime}}”
},
{
“field”:”status”,
“label”:”单据状态”,
“type”:”string”,
”describe”:"单据状态, Confirmed=生效, WaitConfirm待审核, Creating=草拟, Archive=归档, Cancelled=作废",
”value”:"Confirmed"
}
],
”condition_bk":[[{"field":"items.qty","logic":"gt","value":"0"}]],
”beatFlat":["items"],
”condition":[[{"field":"items.qty","logic":"gt","value":"0"}]]
}
数据请求与清洗
在发起请求时,需要注意分页和限流问题。由于聚水潭接口返回的数据量可能较大,因此我们设置了分页参数page_index
和page_size
。这确保了每次请求的数据量在可控范围内,同时避免因过多请求导致的限流问题。
{
...
{
field: 'page_index',
value: '1'
},
{
field: 'page_size',
value: '50'
}
}
此外,为了确保数据的时效性,我们使用了动态参数modified_begin
和modified_end
来限定查询的时间范围。这两个参数分别表示上次同步的结束时间和当前同步的开始时间。
{
...
{
field: 'modified_begin',
value: '{{LAST_SYNC_TIME|datetime}}'
},
{
field: 'modified_end',
value: '{{CURRENT_TIME|datetime}}'
}
}
数据转换与写入
在获取到原始数据后,需要对其进行清洗和转换,以适应目标系统金蝶云星空的数据格式。在这个过程中,可以利用轻易云平台提供的数据转换功能,例如自定义映射、字段过滤等。
例如,对于盘盈单中的商品数量字段,我们可以设置条件过滤,只保留数量大于零的数据:
{
...
condition_bk:[
[{"field":"items.qty","logic":"gt","value":"0"}]
]
}
这种方式不仅提高了数据质量,还能有效减少无效数据传输,提高整体处理效率。
实时监控与日志记录
为了确保整个过程顺利进行,并及时发现潜在问题,可以利用轻易云平台提供的实时监控和日志记录功能。通过集中监控界面,可以实时跟踪每个任务的执行状态,并查看详细日志信息。这对于快速定位问题、优化流程具有重要意义。
异常处理与重试机制
在实际操作中,不可避免会遇到各种异常情况,如网络波动、接口超时等。因此,需要设计健壮的异常处理与重试机制。例如,当某次请求失败时,可以自动重试一定次数;如果仍然失败,则记录错误日志并发送告警通知,以便及时处理。
综上所述,通过合理配置元数据、精细化管理请求参数以及充分利用轻易云平台提供的各项功能,可以高效地实现聚水潭到金蝶云星空的数据集成。这不仅提升了业务透明度,也极大提高了整体运营效率。
聚水潭盘盈单数据ETL转换与写入金蝶云星空
在数据集成生命周期的第二步,我们需要将已经从源平台(聚水潭)获取的数据进行ETL转换,最终转为目标平台(金蝶云星空)API接口所能够接收的格式,并写入目标平台。本文将详细探讨如何通过轻易云数据集成平台配置元数据,实现这一过程。
数据请求与清洗
首先,从聚水潭获取盘盈单数据。假设我们已经通过API接口成功获取了所需的数据,接下来需要对这些数据进行清洗和转换,以符合金蝶云星空的要求。以下是一个示例的元数据配置,用于指导这一过程:
{
"api": "batchSave",
"effect": "EXECUTE",
"method": "POST",
"idCheck": true,
"request": [
{"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"{items_io_id}-TEST"},
{"field":"FBillTypeID","label":"单据类型","type":"string","describe":"单据类型","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"QTRKD01_SYS"},
{"field":"FStockOrgId","label":"库存组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"{brand}","mapping":{"target":"65795ef25d4e0914df5d73ae","direction":"positive"}},
{"field":"FStockDirect","label":"库存方向","type":"string","describe":"下拉列表","value":"GENERAL"},
{"field":"FDEPTID","label":"部门","type":"string","value":"'function CASE '{brand}' WHEN '7or9' THEN 'BM2800' WHEN '对面' THEN 'DM1003' ELSE '' END'"},
{"field":"FDate","label":"日期","type":"string","describe":"日期","value":"{io_date}"},
{"field":"FOwnerTypeIdHead","label":"货主类型","type":"string","describe":"多类别基础资料列表","value":"BD_OwnerOrg"},
{"field":"FOwnerIdHead","label":"货主","type":"string","describe":"多类别基础资料列表基础资料列表基础资料列表基础资料列表基础资料列表基础资料列表基础资料列表基础资料列表基础资料列表基础资料列表基础资料列表基础资料列表基础资料列表基础资料"}
],
"otherRequest": [
{"field": "FormId", "label": "业务对象表单Id", "type": "string", "describe": "必须填写金蝶的表单ID如:PUR_PurchaseOrder", "value": "STK_MISCELLANEOUS"},
{"field": "IsVerifyBaseDataField", "label": "验证基础资料", "type": "bool", "describe": "是否验证所有的基础资料有效性,布尔类,默认false(非必录)", "value": false},
{"field": "Operation", "label": "执行的操作", "type": "string", "describe": "", "", "", "", "", "", "", "", ""}
]
}
数据转换与写入
通过上述元数据配置,我们可以看到每个字段的详细定义和转换逻辑。以下是几个关键字段的处理方式:
-
单据编号(FBillNo):
- 来源:聚水潭
items_io_id
- 转换:附加
-TEST
后缀 - 示例:
12345-TEST
- 来源:聚水潭
-
库存组织(FStockOrgId):
- 来源:聚水潭
brand
- 转换:通过
ConvertObjectParser
转换为金蝶云星空所需格式 - 示例:
品牌A -> 65795ef25d4e0914df5d73ae
- 来源:聚水潭
-
部门(FDEPTID):
- 来源:根据
brand
字段值进行条件判断 - 转换:使用 SQL CASE WHEN 语句实现动态映射
- 示例:
7or9 -> BM2800
- 来源:根据
-
日期(FDate):
- 来源:聚水潭
io_date
- 无需复杂转换,直接映射
- 来源:聚水潭
-
明细信息(FEntity):
- 包含多个子字段,如物料编码(FMATERIALID)、实收数量(FQty)、收货仓库(FSTOCKID)
- 各子字段均需通过特定解析器进行转换,以匹配金蝶云星空的格式要求
批量写入
在完成上述字段转换后,通过配置批量写入功能,将整理好的数据一次性提交到金蝶云星空:
{
...
"operation":{"rowsKey":"","rows":"","method":"","batchArraySave"}
}
该操作不仅提高了数据传输效率,还能确保大批量数据在短时间内快速准确地写入目标系统。
异常处理与监控
为了确保集成过程的可靠性,轻易云提供了实时监控和告警系统,可以跟踪每个ETL任务的状态和性能。一旦发现异常,系统会自动触发告警,并根据预设策略进行错误重试。
总结
通过精确配置元数据并利用轻易云强大的ETL功能,我们可以高效地将聚水潭盘盈单数据转化并写入到金蝶云星空中。这一过程涉及多个步骤和细节,但通过合理设计和配置,可以确保整个流程顺畅无误。