采购入库同步-(Life-Space)厦门众之健技术案例分享
在本篇文章中,我们将深入探讨如何通过轻易云数据集成平台,完成汤臣倍健营销云数据到金蝶云星辰V2的高效对接。本次案例的核心是"采购入库同步 -(Life-Space)厦门众之健",它涉及多个复杂的数据处理环节和接口,并需要解决各种实际应用中的常见问题。从数据获取,到数据转换,再到最终写入目标系统,每个步骤都是确保无缝连接的重要环节。
数据获取与API调用
为了实现从汤臣倍健营销云抓取最新的采购入库订单信息,我们使用了其提供的标准接口:/erp/api/order/query/purInWarehsOrder
。这一过程不但要保证定时自动拉取,还需处理分页和限流问题,以避免漏单现象。
GET /erp/api/order/query/purInWarehsOrder?date=2023-10-01&page=1&limit=100
通过精细化配置API参数,可以按时间、分页等条件进行灵活查询。此外,在轻易云平台上,配置定制化任务计划,实现一个稳定可靠的数据抓取频率,例如每小时一次,确保所有新生成或更新的订单及时被捕捉。
数据格式转换及映射
获取到原始订单数据后,下一个重要步骤即为数据格式转换。这一步骤旨在将汤臣倍健营销云返回的不规则JSON结构转化为符合金蝶云星辰V2要求的数据格式。不同系统间的数据结构差异,是导致对接失败的重要原因之一,因此精准且高效地映射字段至关重要。以下是两者主要字段对应关系示例:
{
"source_order_id": "original_order_number",
"product_sku": "item_code",
...
}
基于以上映射关系,通过轻易云内置的脚本功能,动态生成满足需求的新JSON对象,为下游系统写入操作做好准备。
高速批量写入金蝶云星辰V2
经过上述处理后,将整理好的批量数据快速上传至金蝶云星辰V2,需要借助其指定API:/jdy/v2/scm/pur_inbound
。这一过程中,不仅要考虑高并发情况,还需具备异常处理与错误重试机制,以保证每一条记录都能正确落地目标数据库。
POST /jdy/v2/scm/pur_inbound
Content-Type: application/json
{
"data": [
{ ... },
{ ... }
]
}
我们利用轻易云强大的日志监控
调用源系统汤臣倍健营销云接口获取并加工数据
在数据集成的生命周期中,第一步是调用源系统接口获取数据。本文将详细探讨如何通过调用汤臣倍健营销云的/erp/api/order/query/purInWarehsOrder
接口来获取采购入库数据,并进行初步加工。
接口调用配置
我们需要通过POST方法调用/erp/api/order/query/purInWarehsOrder
接口,以获取采购入库订单的数据。以下是元数据配置的关键字段和参数:
- tenantId: 经销商ID,必填项,用于标识具体的经销商。
- yxyNumber: 营销云销售订单号,传此参数时其他时间状态等条件无效。
- number: 系统订单号,传此参数时其他时间状态等条件无效。
- status: 订单状态,0表示未审核,1表示已审核(已出库)。
- beginTime: 开始时间,根据创建时间或更新时间查询。
- endTime: 结束时间,根据创建时间或更新时间查询。
- pageNo: 页码,默认值为1。
- pageSize: 每页条数,默认值为30。
- timeType: 时间段标志,0表示基于创建时间查询,1表示基于更新时间查询。
以下是一个典型的请求示例:
{
"tenantId": "08e2fd9d074f4ef7b5e6416b74d006d6",
"status": "1",
"beginTime": "{{LAST_SYNC_TIME|datetime}}",
"endTime": "{{CURRENT_TIME|datetime}}",
"pageNo": "1",
"pageSize": "30",
"timeType": "1"
}
数据请求与清洗
在获取到原始数据后,需要对数据进行清洗和初步处理。轻易云平台提供了自动填充响应(autoFillResponse)的功能,可以简化这一过程。以下是一些常见的数据清洗操作:
-
字段过滤与重命名:根据业务需求,仅保留必要的字段,并对字段进行重命名以符合目标系统的要求。例如,将
materialNumber
重命名为itemCode
。 -
数据格式转换:将日期、金额等字段转换为目标系统所需的格式。例如,将日期格式从
YYYY-MM-DD HH:mm:ss
转换为ISO标准格式。 -
条件过滤:根据特定条件过滤掉不需要的数据。例如,通过配置条件过滤器(condition_bk),可以排除掉物料编号包含"F.A"的记录。
{
"condition_bk": [
[
{
"field": "itemList.materialNumber",
"logic": "notlike",
"value": "F.A"
}
]
]
}
数据转换与写入
在完成数据清洗后,需要将数据转换为目标系统所需的格式,并写入目标系统。这一步通常涉及到复杂的数据映射和转换规则。在轻易云平台上,可以通过可视化界面配置这些规则,从而简化操作并减少出错率。
例如,将采购入库订单的数据映射到ERP系统中的相应表结构:
{
"sourceField": "materialNumber",
"targetField": "itemCode"
},
{
"sourceField": "quantity",
"targetField": "qty"
},
{
...
}
实时监控与日志记录
为了确保数据集成过程的透明度和可追溯性,需要对每个环节进行实时监控,并记录详细的日志信息。轻易云平台提供了强大的监控和日志功能,可以帮助用户及时发现并解决问题。
通过以上步骤,我们可以高效地调用汤臣倍健营销云接口获取采购入库订单数据,并进行初步加工,为后续的数据转换与写入打下坚实基础。
将源平台数据转换为金蝶云星辰V2API接口格式并写入目标平台
在数据集成过程中,ETL(Extract, Transform, Load)是关键步骤之一。本文将深入探讨如何将已经集成的源平台数据进行ETL转换,并转为金蝶云星辰V2API接口所能够接收的格式,最终写入目标平台。
数据请求与清洗
首先,我们需要从源系统中提取原始数据,并对其进行必要的清洗和预处理。假设我们已经完成了这一步,现在我们将重点放在如何将这些清洗后的数据转换为金蝶云星辰V2API接口所能接收的格式。
数据转换与写入
根据提供的元数据配置,我们需要将源数据字段映射到目标API所需的字段格式。以下是具体的字段映射和转换逻辑:
-
单据日期(bill_date)
- 源数据中的审核时间字段
auditTime
需要转换为日期格式。 - 使用模板表达式
{{auditTime|date}}
进行转换。
- 源数据中的审核时间字段
-
单据编码(bill_no)
- 直接从源数据中获取,无需转换。
-
业务类型(transtype)
- 固定值
2
,表示特定业务类型。
- 固定值
-
供应商编码(supplier_id)
- 固定值
1269830589104549888
,表示特定供应商。
- 固定值
-
备注(remark)
- 组合字段,包含来自营销云的备注信息和单据编码。
- 使用模板表达式
{remark}-来自营销云-{number}
进行拼接。
-
商品分录(material_entity)
- 这是一个数组,每个元素代表一个商品分录,需要进一步细化子字段:
- 商品编码(material_number):直接映射源数据中的商品编码。
- 仓库编码(stock_id):固定值
1277528119946811392
。 - 是否赠品(is_free):固定值
false
。 - 数量(qty):使用模板表达式
{{itemList.opernumber}}
从源数据中获取。 - 单位(unit_id):通过查找表获取单位ID,使用模板表达式
_findCollection find base_unit_id from 72029be6-c558-39a7-8084-4b75796fcba1 where number={materialNumber}
。 - 批次号(batch_no):使用模板表达式
{{itemList._Flot}}
从源数据中获取。 - 生产日期(kf_date):使用模板表达式
{{itemList._Fmfg}}
从源数据中获取。 - 保质期天数(kf_period):固定值
730
天。 - 有效日期(valid_date):使用模板表达式
{{itemList._Fexp}}
从源数据中获取。 - 保质期类型(kf_type):固定值
1
,表示按天计算保质期。 - 含税单价(tax_price):使用模板表达式
{{itemList.taxunitprice}}
从源数据中获取。 - 税率(cess):固定值
13%
。 - 价税合计(all_amount):使用模板表达式
{{itemList.taxlastmoney}}
从源数据中获取。
- 这是一个数组,每个元素代表一个商品分录,需要进一步细化子字段:
实际操作示例
以下是一个实际操作示例,通过POST请求将转换后的JSON对象发送到金蝶云星辰V2API接口:
{
"bill_date": "2023-10-01",
"bill_no": "PO123456",
"transtype": "2",
"supplier_id": "1269830589104549888",
"remark": "采购订单-来自营销云-PO123456",
"material_entity": [
{
"material_number": "M001",
"stock_id": "1277528119946811392",
"is_free": false,
"qty": "100",
"unit_id": "_findCollection find base_unit_id from 72029be6-c558-39a7-8084-4b75796fcba1 where number=M001",
"batch_no": "BATCH001",
"kf_date": "2023-09-01",
"kf_period": "730",
"valid_date": "2025-09-01",
"kf_type": "1",
"tax_price": "10.00",
"cess": "13",
"all_amount": "1130.00"
}
]
}
通过上述步骤,我们成功地将源平台的数据转换为金蝶云星辰V2API接口所能接收的格式,并通过POST请求写入目标平台。这种方法确保了不同系统间的数据无缝对接,提高了业务流程的自动化程度和效率。