聚水潭数据集成到金蝶云星空:一个系统对接案例分享
在企业的日常运营中,确保各个业务系统之间的数据准确、及时地同步是保障业务连续性和高效运作的关键步骤。本文将重点分享如何通过轻易云数据集成平台,实现聚水潭其他入库单数据无缝对接到金蝶云星空,通过具体技术细节探讨API接口调用及处理方法。
本案例方案名为“聚水潭其他入库单对接金蝶其他入库单ok”,核心任务是实现从聚水潭获取数据并写入到金蝶云星空。首先,我们需要调用聚水潭提供的other.inout.query
接口来抓取所需的供货商入库单信息,这一过程中需要特别注意分页和限流问题,以避免因请求过多导致接口不可用或响应超时。在获取完所有相关数据后,我们将利用轻易云的数据转换功能处理不同系统间的数据格式差异,并最终使用金蝶云星空提供的批量保存API (batchSave
) 将整合后的数据快速、安全地写入目的数据库中。
为了确保整个流程的可靠性和实时性,定期执行自动化脚本成为必不可少的一环。这不仅可以有效减少漏单现象,还能实时监控每个环节的数据状态。此外,在面对异常情况时,如网络延迟或意外中断等,我们实现了错误重试机制,即在出现故障后可自动重新尝试传输,大大提升了整体集成方案的健壮性。
总之,通过针对性的技术设置与操作规范化,本案例完美展示了一种高效且稳定的数据跨平台同步解决方案,为同类项目实施提供了宝贵经验与参考依据。
调用聚水潭接口other.inout.query获取并加工数据
在轻易云数据集成平台的生命周期中,调用源系统接口是至关重要的一步。本文将深入探讨如何通过调用聚水潭的other.inout.query
接口来获取并加工数据,为后续的数据转换与写入奠定基础。
接口配置与请求参数
首先,我们需要配置元数据,以便正确调用聚水潭的other.inout.query
接口。以下是元数据配置的关键部分:
{
"api": "other.inout.query",
"method": "POST",
"number": "io_id",
"id": "io_id",
"pagination": {
"pageSize": 50
},
"idCheck": true,
"request": [
{"field":"modified_begin","label":"修改起始时间","type":"string","value":"{{LAST_SYNC_TIME|datetime}}"},
{"field":"modified_end","label":"修改结束时间","type":"string","value":"{{CURRENT_TIME|datetime}}"},
{"field":"so_ids","label":"指定线上订单","type":"string"},
{"field":"types","label":"单据类型","type":"string","describe":"单据类型 :其它退货,其它出库,其它进仓"},
{"field":"status","label":"单据状态","type":"string","describe":"单据状态,Confirmed=生效,WaitConfirm待审核,Archive=归档,Cancelled=取消","value":"Confirmed"},
{"field":"page_index","label":"开始页码","type":"string","value":"1"},
{"field":"page_size","label":"每页行数","type":"string","value":"{PAGINATION_PAGE_SIZE}"}
],
"condition_bk": [
[{"field": "drop_co_name", "logic": "neq", "value": "销售退货"}, {"field": "type", "logic": "eq", "value": "其它退货"}]
],
"condition":[
[{"field": "drop_co_name", "logic": "neq", "value": "销售退货"}, {"field": "type", "logic": "eq", "value": "其它退货"}]
]
}
请求参数详解
- modified_begin 和 modified_end: 用于指定查询的时间范围。通过模板变量
{{LAST_SYNC_TIME|datetime}}
和{{CURRENT_TIME|datetime}}
动态生成。 - so_ids: 可选参数,用于指定特定的线上订单。
- types: 单据类型,包括“其它退货”、“其它出库”、“其它进仓”。
- status: 单据状态,默认值为“Confirmed”,表示只查询已生效的单据。
- page_index 和 page_size: 分页参数,用于控制每次请求的数据量和分页索引。
数据请求与清洗
在发送请求时,我们需要确保请求参数的正确性和完整性。以下是一个示例请求:
{
"modified_begin": "<LAST_SYNC_TIME>",
"modified_end": "<CURRENT_TIME>",
"status": "Confirmed",
"page_index": 1,
"page_size": 50
}
通过上述请求,我们可以获取到符合条件的数据集。在接收到响应后,需要对数据进行初步清洗和过滤。例如,根据业务需求,可以过滤掉“销售退货”的记录,只保留“其它退货”的记录。这一步骤可以通过配置中的条件来实现:
"condition":[
[{"field": "drop_co_name", "logic": "neq", "value": "销售退货"}, {"field": "type", "logic": "eq", value:="其它退货"}]
]
数据转换与写入准备
在完成数据清洗后,需要对数据进行必要的转换,以便适配目标系统的数据格式。例如,将聚水潭的字段映射到金蝶系统所需的字段,并进行相应的数据格式转换。这一步骤将在生命周期的下一阶段详细处理。
实时监控与日志记录
为了确保数据处理过程的透明度和可追溯性,轻易云平台提供了实时监控和日志记录功能。通过这些功能,可以实时查看数据流动和处理状态,并在出现异常时及时进行排查和修正。
以上内容详细阐述了如何调用聚水潭接口other.inout.query
获取并加工数据,为后续的数据转换与写入打下坚实基础。在实际操作中,应根据具体业务需求灵活调整参数配置,以确保数据集成过程顺利高效地进行。
轻易云数据集成平台生命周期第二步:ETL转换与写入金蝶云星空API接口
在数据集成的生命周期中,ETL(提取、转换、加载)是至关重要的一环。本文将深入探讨如何利用轻易云数据集成平台,将源平台聚水潭的其他入库单数据转换为金蝶云星空API接口所能接收的格式,并最终写入目标平台。
API接口配置与元数据解析
在本案例中,我们使用金蝶云星空的batchSave
API接口,通过POST方法提交数据。以下是具体的元数据配置:
{
"api": "batchSave",
"method": "POST",
"idCheck": true,
"operation": {
"rowsKey": "array",
"rows": 1,
"method": "batchArraySave"
},
"request": [
{"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"{io_id}"},
{"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":"100"},
{"field":"FStockDirect","label":"库存方向","type":"string","describe":"下拉列表","value":"GENERAL"},
{"field":"FDate","label":"日期","type":"string","describe":"日期","value":"{io_date}"},
{"field":"FOwnerTypeIdHead","label":"货主类型","type":"string","describe":"多类别基础资料列表","value":"BD_OwnerOrg"},
{"field":"FOwnerIdHead","label":"货主","type":"string","describe":"多类别基础资料","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"100"},
{"field":"FNOTE","label":"备注","type": "string", "describe": "多行文本", "value": "{remark}"},
{
"field": "FEntity",
"label": "明细信息",
"type": "array",
"children": [
{"field": "FMATERIALID", "label": "物料编码", "type": "string", "describe": "基础资料",
"parser":{"name": "ConvertObjectParser", "params": "FNumber"},
"value": "{{batchs.sku_id}}",
"parent": "FEntity"
},
{"field": "FSTOCKID",
"label":
"收货仓库",
"type":
"string",
"describe":
"基础资料",
"parser":
{"name":
"ConvertObjectParser",
"params":
"FNumber"
},
"value":
"{wms_co_id}",
"parent":
"FEntity"
},
{
...
}
],
...
}
],
...
}
数据请求与清洗
首先,从聚水潭系统中提取其他入库单的数据。在这个过程中,需要对原始数据进行清洗和预处理,以确保其符合目标系统的数据要求。例如,确保日期格式统一,字符串字段去除多余空格等。
数据转换
接下来,使用轻易云的数据转换功能,将清洗后的数据映射到金蝶云星空API所需的格式。以下是关键字段的转换规则:
- FBillNo(单据编号):直接映射自聚水潭系统中的
io_id
。 - FBillTypeID(单据类型):固定值为
QTRKD01_SYS
,并通过ConvertObjectParser
解析为金蝶系统可识别的对象。 - FStockOrgId(库存组织):固定值为
100
,同样需要通过解析器进行转换。 - FDate(日期):映射自聚水潭系统中的
io_date
。 - FOwnerTypeIdHead(货主类型)和FOwnerIdHead(货主):分别固定值为
BD_OwnerOrg
和100
。
对于明细信息字段,需要特别注意数组结构的处理:
- FMATERIALID(物料编码):从批次信息中的
sku_id
字段映射,并通过解析器进行转换。 - FSTOCKID(收货仓库):从批次信息中的
wms_co_id
字段映射,并通过解析器进行转换。 - 其他字段:如生产日期、有效期至、实收数量等,都需要从批次信息中提取相应字段并进行映射。
数据写入
完成数据转换后,通过POST请求将处理好的数据提交到金蝶云星空的API接口。以下是一个示例请求体:
{
...
{
FBillNo: '20231010',
FBillTypeID: { FNumber: 'QTRKD01_SYS' },
FStockOrgId: { FNumber: '100' },
FStockDirect: 'GENERAL',
FDate: '2023-10-10',
FOwnerTypeIdHead: 'BD_OwnerOrg',
FOwnerIdHead: { FNumber: '100' },
FNOTE: '备注信息',
FEntity: [
{
FMATERIALID: { FNumber: 'MAT001' },
FSTOCKID: { FNumber: 'STK001' },
...
}
]
}
}
在实际操作中,还需要考虑错误处理和日志记录,以便在出现问题时能够快速定位和解决。
通过上述步骤,我们实现了从聚水潭系统到金蝶云星空的无缝数据集成,确保了各业务环节的数据一致性和准确性。这不仅提升了业务效率,也为企业决策提供了可靠的数据支持。