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