聚水潭数据集成到金蝶云星空的技术案例分享
在企业日常运营中,数据的高效流转和准确对接至关重要。本文将聚焦于一个具体的系统对接集成案例:如何通过轻易云数据集成平台,将聚水潭中的盘点单数据无缝集成到金蝶云星空中的其他出库单。
方案概述
本次集成方案命名为“聚水潭-盘点单-->金蝶-其他出库单”,旨在实现从聚水潭获取盘点单数据,并将其批量写入到金蝶云星空的其他出库单模块中。该方案不仅需要处理大量的数据,还需确保每一条记录的准确性和实时性。
技术要点
-
高吞吐量的数据写入能力: 为了满足业务需求,我们需要支持高吞吐量的数据写入能力,使得大量盘点单数据能够快速被集成到金蝶云星空系统中,从而提升整体数据处理时效性。
-
API接口调用与分页处理: 聚水潭提供了获取盘点单数据的API接口
/open/inventory/count/query
,我们需要定时可靠地抓取这些接口数据。同时,由于接口存在分页和限流问题,我们必须设计合理的分页策略,以确保所有数据都能被完整获取,不漏单。 -
自定义数据转换逻辑: 聚水潭与金蝶云星空之间的数据格式存在差异,为此我们需要支持自定义的数据转换逻辑,以适应特定业务需求和不同的数据结构。这一步骤对于保证数据的一致性和完整性尤为关键。
-
集中监控与告警系统: 集成过程中,实时监控任务状态和性能是必不可少的。通过集中监控和告警系统,我们可以及时发现并处理任何异常情况,确保整个流程顺利进行。
-
异常处理与错误重试机制: 在实际操作中,可能会遇到各种异常情况,如网络波动或API调用失败等。因此,我们设计了完善的异常处理与错误重试机制,以提高系统的稳定性和可靠性。
-
批量集成与日志记录: 为了提高效率,我们采用批量方式将聚水潭的数据写入到金蝶云星空,同时实现实时监控与日志记录功能,以便后续审计和问题排查。
通过上述技术要点,本次集成方案不仅能够有效解决两大平台间的数据对接问题,还能显著提升业务透明度和运行效率。接下来,我们将详细介绍具体实施步骤及相关配置细节。
调用聚水潭接口获取并加工数据
在数据集成过程中,调用源系统的API接口是关键的一步。本文将详细探讨如何通过轻易云数据集成平台调用聚水潭接口/open/inventory/count/query
,并对获取的数据进行加工处理。
配置元数据
首先,我们需要配置元数据以便正确调用聚水潭的API接口。以下是相关配置:
{
"api": "/open/inventory/count/query",
"method": "POST",
"number": "io_id",
"id": "io_id",
"idCheck": true,
"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": "lt", "value": "-0"}]]
}
数据请求与清洗
在生命周期的第一步,我们需要从聚水潭系统中获取盘点单的数据。通过上述配置,我们可以发起一个POST请求来获取所需的数据。
- 分页处理:由于每次请求返回的数据量有限(最大50条),我们需要实现分页机制,通过
page_index
和page_size
字段控制分页。 - 时间过滤:使用
modified_begin
和modified_end
字段限定查询范围,以确保只获取指定时间段内的数据。 - 状态过滤:通过设置
status
为“Confirmed”,我们只提取已生效的盘点单。
数据转换与写入
在成功获取数据后,需要对其进行清洗和转换,以适应目标系统金蝶云星空的格式要求。这一步骤包括:
- 字段映射:将聚水潭返回的数据字段映射到金蝶云星空所需的字段。例如,将盘点单中的数量信息映射到其他出库单中的相应字段。
- 数据过滤:根据业务需求,对不符合条件的数据进行过滤。例如,只保留数量大于零的记录。
- 自定义逻辑:根据特定业务需求,实现自定义的数据转换逻辑。这可能涉及复杂的计算或条件判断。
实时监控与日志记录
为了确保整个过程顺利进行,并及时发现问题,可以利用平台提供的实时监控和日志记录功能。通过这些功能,可以跟踪每个数据集成任务的状态、性能,并在出现异常时及时告警。
- 高吞吐量支持:平台支持高吞吐量的数据写入能力,使得大量数据能够快速被集成到目标系统中。
- 异常检测与重试机制:当发生错误时,可以自动触发重试机制,以确保数据不丢失、不漏单。
示例场景
假设我们需要定期从聚水潭拉取过去一天内所有已确认的盘点单,并将其转换为金蝶云星空中的其他出库单。具体步骤如下:
- 设置定时任务,每天凌晨执行一次。
- 调用聚水潭接口,通过设置合适的时间范围(如前一天至当前时间)来拉取数据。
- 对拉取到的数据进行清洗、转换,并批量写入金蝶云星空系统中。
- 利用实时监控功能跟踪任务执行情况,并在出现异常时触发告警和重试机制。
以上就是调用聚水潭接口并加工处理数据的方法,通过合理配置元数据和利用平台提供的各种特性,可以高效地完成这一过程。
将聚水潭盘点单数据转换并写入金蝶云星空
在数据集成过程中,ETL(提取、转换、加载)是关键步骤之一。将聚水潭的盘点单数据转换为金蝶云星空可接收的其他出库单格式,需经过多个环节的数据处理与映射。以下详细探讨如何实现这一过程。
数据提取与转换
首先,从聚水潭平台提取盘点单数据。提取的数据包含多个字段,如单据编号、库存组织、领用组织、日期、物料编码等。这些数据需要根据金蝶云星空API接口的要求进行转换。
元数据配置如下:
{
"api": "batchSave",
"effect": "EXECUTE",
"method": "POST",
"idCheck": true,
"request": [
{"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"{items_io_id}"},
{"field":"FBillTypeID","label":"单据类型","type":"string","describe":"标准其他出库单:QTCKD01_SYS\n资产出库:QTCKD02_SYS\nVMI出库:QTCKD03_SYS\n费用物料出库:QTCKD04_SYS\n库存调整:QTCKD05_SYS","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"QTCKD01_SYS"},
{"field":"FStockOrgId","label":"库存组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"{brand}"},
{"field":"FPickOrgId","label":"领用组织","type":"string","describe":"领用组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"{brand}"},
{"field":"FStockDirect","label":"库存方向","type":"string","describe":"库存方向","value":"GENERAL"},
{"field":"FDate","label":"日期","type":"string","describe":"日期","value":"{io_date}"},
{"field": "FEntity", "label": "明细信息", "type": "array", "describe": "明细信息", "value": "list",
"children":[{"field": "FMaterialId", "label": "物料编码", "type": "string",
"describe": "基础资料",
"parser":{"name": "ConvertObjectParser",
"params": "FNumber"},
"value": "{items_sku_id}"}
]
}
],
...
}
数据映射与转换逻辑
-
字段映射:
FBillNo
映射到items_io_id
。FBillTypeID
固定为QTCKD01_SYS
。FStockOrgId
和FPickOrgId
均映射到brand
,并通过ConvertObjectParser
进行解析。FDate
直接从源数据中的日期字段获取。
-
复杂逻辑处理:
FDeptId
: 根据品牌(brand)字段的值,通过条件语句选择不同的部门编码。例如,当品牌是'7or9'时,部门编码为'BM2800'。FEntity
: 包含多条明细记录,每条记录对应一个物料编码和数量等信息。需要对子项进行循环处理,将每个子项的物料编码(items_sku_id)和实发数量(items_qty)进行相应的转换。
数据加载
完成数据转换后,通过调用金蝶云星空API接口将数据写入目标平台。调用方式采用POST请求,并设置相关参数,如自动提交并审核、验证基础资料等。
{
...
{
field: 'FormId',
label: '业务对象表单Id',
type: 'string',
describe: '必须填写金蝶的表单ID如:PUR_PurchaseOrder',
value: 'STK_MisDelivery'
},
{
field: 'IsAutoSubmitAndAudit',
label: '提交并审核',
type: 'bool',
describe: '提交并审核',
value: true
},
...
}
异常处理与重试机制
在实际操作中,可能遇到网络延迟或API调用失败等异常情况,需要设计异常处理与重试机制。例如,当接口返回错误时,可以记录日志并设置重试次数,以确保数据最终成功写入目标平台。
实时监控与日志记录
为了确保整个ETL过程顺利进行,实时监控和日志记录至关重要。通过集成平台提供的监控系统,可以实时跟踪每个数据集成任务的状态和性能,及时发现并解决问题。
总结
通过上述步骤,实现了将聚水潭盘点单数据转换为金蝶云星空其他出库单格式,并成功写入目标平台。在这个过程中,关键在于准确的数据映射、灵活的转换逻辑以及完善的异常处理机制。