仓库调拨-杭州佰健盛吉:汤臣倍健营销云数据集成到金蝶云星辰V2技术案例分享
在本案例中,我们将详细解析如何通过轻易云数据集成平台,将汤臣倍健营销云的数据高效整合到金蝶云星辰V2系统中。具体操作涉及的API接口分别是:从汤臣倍健营销云获取数据的/erp/api/order/query/borrowOrder
接口,以及向金蝶云星辰V2写入数据的/jdy/v2/scm/inv_tfmove
接口。
数据抓取与高吞吐量处理
首先,通过定时任务可靠地抓取汤臣倍健营销云提供的数据。这些操作通过调用其API,确保每一次抓取都完整且无遗漏。在处理过程中,面对大量的数据流,采用支持高吞吐量的数据写入能力,以保证信息能够及时、高效地转移到目标系统。
数据转换和映射
对于不同系统间可能存在的数据格式差异问题,本方案特别注重自定义数据转换逻辑。这种灵活性使得我们能根据业务需求精细化编排和调整数据信息,使之符合目标系统金蝶云星辰V2的要求。同样,对于分页和限流等常见的问题,也有特定策略进行有效应对。
监控、告警与异常处理
为了保障整个集成过程顺利进行,我们利用集中化的监控和告警系统来实时跟踪每一个步骤。如果出现任何异常情况,该机制将立刻触发预设的错误重试流程,从而最大程度上降低潜在风险。此外,还可以实时查看日志记录,全面掌握各个操作环节的信息反馈,这为后期维护及优化提供了重要依据。
下一步,将详细介绍具体实施方案,包括调用各类API的方法、参数配置以及返回结果分析。
调用源系统汤臣倍健营销云接口/erp/api/order/query/borrowOrder获取并加工数据
在数据集成的生命周期中,调用源系统接口获取数据是至关重要的一步。本文将详细探讨如何通过调用汤臣倍健营销云的接口/erp/api/order/query/borrowOrder
来获取仓库调拨数据,并进行初步的数据加工。
接口调用配置
首先,我们需要配置API调用的元数据。根据提供的元数据配置,我们可以看到该接口使用POST方法进行请求,主要参数如下:
tenantId
: 经销商id,必填项。number
: 系统订单号(调拨出库单),传此参数时其他时间状态等条件无效。status
: 订单状态,0表示未审核,1表示已审核(已出库)。beginTime
: 开始时间,基于更新时间查询。endTime
: 结束时间,基于更新时间查询。pageNo
: 页码,默认值为1。pageSize
: 每页条数,默认值为30。
请求参数设置
为了确保请求的有效性和准确性,我们需要设置必要的请求参数。以下是一个示例请求参数配置:
{
"tenantId": "08e2fd9d074f4ef7b5e6416b74d006d6",
"status": "1",
"beginTime": "{{DAYS_AGO_1|datetime}}",
"endTime": "{{CURRENT_TIME|datetime}}",
"pageNo": "1",
"pageSize": "30"
}
在这个配置中,我们指定了经销商ID、订单状态为已审核、开始时间为一天前、结束时间为当前时间,以及分页信息。
数据清洗与加工
在获取到原始数据后,需要对数据进行清洗和加工,以便后续的数据转换与写入。以下是一些常见的数据清洗步骤:
- 字段映射:将源系统中的字段映射到目标系统中的字段。例如,将
number
映射到目标系统中的订单号字段。 - 数据过滤:根据业务需求过滤掉不需要的数据。例如,只保留订单状态为已审核的数据。
- 格式转换:将日期格式转换为目标系统所需的格式。
以下是一个简单的数据清洗示例代码:
import datetime
def clean_data(raw_data):
cleaned_data = []
for record in raw_data:
if record['status'] == '1': # 只保留已审核的数据
cleaned_record = {
'order_id': record['number'],
'dealer_id': record['tenantId'],
'update_time': datetime.datetime.strptime(record['updateTime'], '%Y-%m-%d %H:%M:%S')
}
cleaned_data.append(cleaned_record)
return cleaned_data
异常处理与补偿机制
在实际操作中,可能会遇到各种异常情况,例如网络故障、接口超时等。因此,需要设计异常处理与补偿机制,以确保数据集成过程的稳定性和可靠性。
元数据配置中提到了一个补偿机制omissionRemedy
,其中包含了定时任务和接管请求的配置。例如,每两小时执行一次定时任务,以确保遗漏的数据能够被及时补偿。
"omissionRemedy": {
"crontab": "2 */2 * * *",
"takeOverRequest": [
{
"field": "beginTime",
"label": "修改时间开始段",
"type": "string",
"is_required": true,
"value": "{{HOURE_AGO_2|datetime}}"
}
]
}
通过这种方式,可以定期检查并补偿遗漏的数据,从而提高数据集成过程的可靠性。
总结
通过调用汤臣倍健营销云接口/erp/api/order/query/borrowOrder
获取仓库调拨数据,并进行初步的数据清洗与加工,可以有效地实现不同系统间的数据无缝对接。在实际操作中,需要注意请求参数的设置、数据清洗的方法以及异常处理与补偿机制,以确保整个过程的顺利进行。
轻易云数据集成平台生命周期第二步:ETL转换与写入金蝶云星辰V2API接口
在数据集成过程中,ETL(Extract, Transform, Load)转换是关键的一环。本文将详细探讨如何使用轻易云数据集成平台,将源平台的数据经过ETL转换后,转为金蝶云星辰V2API接口所能接收的格式,并最终写入目标平台。
数据请求与清洗
首先,从源平台获取初始数据,并进行必要的清洗和预处理。这一步骤确保了数据的准确性和一致性,为后续的转换和写入打下基础。清洗后的数据需要符合目标平台的要求,特别是在字段类型和格式上。
数据转换与写入
在数据清洗完成后,进入数据转换阶段。根据提供的元数据配置,我们需要将源数据映射到金蝶云星辰V2API接口所需的格式。
以下是具体的元数据配置解析及其应用:
{
"api": "/jdy/v2/scm/inv_tfmove",
"effect": "EXECUTE",
"method": "POST",
"number": "1",
"autoCheck": "inv_tfmove_bill_order",
"id": "1",
"name": "1",
"idCheck": true,
"request": [
{
"field": "bill_date",
"label": "出库日期",
"type": "string",
"describe": "出库日期,格式:2019-01-01",
"value": "{created}"
},
{
"field": "trans_type",
"label": "业务类型",
"type": "string",
"describe": "1:同价调拨(默认),2:异价调拨",
"value": "1"
},
{
"field": "trans_fer_status",
"label": "调拨状态",
...
}
]
}
核心字段解析与映射
-
bill_date(出库日期)
- 类型:字符串
- 描述:出库日期,格式为
YYYY-MM-DD
- 映射值:
{created}
,从源数据中提取创建日期并格式化为目标格式。
-
trans_type(业务类型)
- 类型:字符串
- 描述:1表示同价调拨(默认),2表示异价调拨
- 固定值:
1
-
trans_fer_status(调拨状态)
- 类型:字符串
- 描述:0表示未出库(默认),1表示未入库,2表示部分入库,3表示全部入库
- 固定值:
3
-
remark(单据备注)
- 类型:字符串
- 描述:单据备注信息
- 映射值:
来自营销云{number}
,将源系统中的编号信息嵌入备注中。
商品分录字段解析与映射
商品分录是一个数组,其中每个元素代表一个商品条目。以下是主要字段及其映射方式:
-
material_id(商品)
- 类型:字符串
- 描述:商品编码
- 映射值:通过
_findCollection
函数,根据商品编码从指定集合中查找对应ID。
-
in_stock_id(调入仓库)
- 类型:字符串
- 描述:调入仓库编码
- 映射值:通过
_findCollection
函数,根据仓库编码从指定集合中查找对应ID。
-
out_stock_id(调出仓库)
- 类型:字符串
- 描述:调出仓库编码
- 映射值:通过
_findCollection
函数,根据仓库编码从指定集合中查找对应ID。
-
batch_no(批次号)、kf_date(生产日期)、valid_date(有效日期)、kf_period(保质期天数)、kf_type(保质期单位)、qty(数量)、unit_id(单位)
- 各字段分别从源数据中的相应字段进行映射,如批次号、生产日期、有效日期等。
数据提交
完成所有字段的映射后,通过POST方法将转换后的数据提交至金蝶云星辰V2API接口:
POST /jdy/v2/scm/inv_tfmove HTTP/1.1
Host: api.kingdee.com
Content-Type: application/json
{
...
}
实践案例
假设我们有一条源系统的数据记录,其包含如下信息:
- 创建日期
2023-10-01
- 商品列表包含若干条目,每个条目包含商品编码、数量、仓库编码等信息。
我们将这些信息按照上述元数据配置进行ETL转换,并通过API接口提交至金蝶云星辰V2系统,实现跨系统的数据无缝对接。
通过轻易云数据集成平台,我们能够高效地完成这一过程,确保每个环节都透明可控,从而大幅提升业务效率和准确性。