轻易云数据集成平台在吉客云与金蝶云星空对接中的应用
### 吉客云·奇门数据集成到金蝶云星空:礼顿销售单对接(7-零售业务)的技术案例
在实际的系统对接过程中,如何高效、可靠地将吉客云·奇门的数据无缝集成到金蝶云星空,一直是一个颇具挑战的任务。我们将在本案例中深入探讨使用轻易云数据集成平台实现这一任务的方法和技术细节。具体到礼顿销售单对接项目中,通过定时抓取、批量写入、数据格式转换以及错误处理机制,确保了海量交易数据的准确、安全传递。
首先,我们需要从吉客云·奇门获取交易相关的数据。这里使用的是jackyun.tradenotsensitiveinfos.list.get接口,该接口支持分页查询,可以有效避免一次性抓取太多数据而导致性能问题。同时,为了解决可能存在的限流问题,我们设定了请求频率控制与重试机制,保证所有应处理的数据都能被成功提取。
一旦采集到这些原始数据,下一步便是将其快速、高效地写入金蝶云星空。这部分我们通过调用batchSave API进行操作。在此过程中,不仅要注意两端系统之间的数据格式差异,还需要确保映射关系的准确性,以防止任何信息漏失或错误记录。此外,对于异常情况,如网络中断或者接口响应超时等,我们制定了一套完整的异常处理与二次重试策略,从而最大限度地保障数据传输过程中的稳定性和连续性。
为了监控整个流程并及时发现潜在问题,实时日志记录和监控仪表板也成为不可或缺的一环。这不仅有助于追踪每个阶段的数据状态,还可以提供详尽的问题分析资料以供日后优化调整。
在本方案实施过程中,不仅充分利用了轻易云平台提供的可视化操作界面,更借助其强大的全生命周期管理功能,使得整个对接流程透明化、一目了然,大大提升了工作效率及安全可靠性。而具体实施步骤及细节优化,将会在后续章节详细讲解。
![如何对接金蝶云星空API接口](https://pic.qeasy.cloud/D19.png~tplv-syqr462i7n-qeasy.image)
### 调用吉客云·奇门接口jackyun.tradenotsensitiveinfos.list.get获取并加工数据
在数据集成生命周期的第一步中,调用源系统接口获取数据是至关重要的环节。本文将深入探讨如何通过轻易云数据集成平台调用吉客云·奇门接口`jackyun.tradenotsensitiveinfos.list.get`,并对获取的数据进行初步加工。
#### 接口配置与请求参数
我们需要配置元数据来定义接口的请求参数和响应处理逻辑。以下是关键的元数据配置:
```json
{
"api": "jackyun.tradenotsensitiveinfos.list.get",
"method": "POST",
"number": "tradeNo",
"id": "tradeId",
"pagination": {
"pageSize": 20
},
"beatFlat": ["goodsDetail"],
"formatResponse": [
{
"old": "consignTime",
"new": "consignTime_new",
"format": "date"
}
],
"idCheck": true,
"condition": [
[
{
"field": "tradeStatus",
"logic": "egt",
"value": 6000
}
]
],
...
}
```
#### 请求参数详解
在请求参数部分,我们需要特别关注以下几个字段:
- `modified_begin` 和 `modified_end`:这两个字段用于指定修改时间范围,必须同时存在且时间间隔不能超过七天。
- `startConsignTime` 和 `endConsignTime`:用于指定发货时间范围,通常使用动态变量如 `{{LAST_SYNC_TIME|datetime}}` 和 `{{CURRENT_TIME|datetime}}`。
- `pageSize` 和 `pageIndex`:用于分页控制,每页记录数默认为50,页码从0开始。
- `fields`:指定需要返回的字段列表,以逗号分隔。
以下是一个示例请求体:
```json
{
"modified_begin": "",
"modified_end": "",
...
"startConsignTime": "{{LAST_SYNC_TIME|datetime}}",
"endConsignTime": "{{CURRENT_TIME|datetime}}",
...
}
```
#### 数据清洗与转换
在获取到原始数据后,我们需要对其进行清洗和转换。根据元数据配置,我们可以进行以下操作:
1. **扁平化处理**:将嵌套结构的字段如 `goodsDetail` 扁平化,以便后续处理。
2. **字段格式化**:将日期字段如 `consignTime` 格式化为新的字段名 `consignTime_new`。
3. **条件过滤**:根据条件过滤出符合要求的数据,如订单状态大于等于6000。
示例代码如下:
```python
def clean_and_transform(data):
# 扁平化处理
for item in data:
if 'goodsDetail' in item:
goods_details = item.pop('goodsDetail')
for detail in goods_details:
item.update(detail)
# 字段格式化
for item in data:
if 'consignTime' in item:
item['consignTime_new'] = format_date(item['consignTime'])
# 条件过滤
filtered_data = [item for item in data if item['tradeStatus'] >= 6000]
return filtered_data
def format_date(date_str):
# 日期格式化逻辑
return formatted_date_str
```
#### 实践案例
假设我们需要获取最近三天内发货的订单信息,并对其进行上述清洗和转换操作。我们可以通过以下步骤实现:
1. 配置请求参数,设置发货时间范围为最近三天:
```json
{
...
"startConsignTime": "{{DAYS_AGO_3|datetime}}",
...
}
```
2. 调用接口获取数据:
```python
response = call_api('jackyun.tradenotsensitiveinfos.list.get', request_params)
raw_data = response.json()
```
3. 对数据进行清洗和转换:
```python
cleaned_data = clean_and_transform(raw_data)
```
通过以上步骤,我们能够高效地从吉客云·奇门接口获取并加工所需的数据,为后续的数据集成和分析奠定基础。
![如何对接钉钉API接口](https://pic.qeasy.cloud/S3.png~tplv-syqr462i7n-qeasy.image)
### 数据转换与写入金蝶云星空API接口的技术案例
在轻易云数据集成平台中,数据处理的第二步是将已经集成的源平台数据进行ETL转换,并将其转为目标平台金蝶云星空API接口所能够接收的格式,最终写入目标平台。本文将深入探讨这一过程中的关键技术细节和操作步骤。
#### 1. API接口配置
首先,我们需要配置金蝶云星空的API接口参数。根据提供的元数据配置,目标API接口为`batchSave`,请求方法为`POST`。以下是具体的配置细节:
```json
{
"api": "batchSave",
"method": "POST",
"idCheck": true,
"operation": {
"rowsKey": "array",
"rows": 1,
"method": "batchArraySave"
},
"groupCalculate": {
"headerGroup": ["shopCodenew", "warehouseCode", "consignTime_new"],
"bodyGroup": ["goodsDetail_goodsNo"],
"bodyName": "details",
"targetBodyName": "FEntity",
"bodyMaxLine": 50,
"calculate": {
"goodsDetail_sellCount": "$sum",
"goodsDetail_shareFavourableAfterFee": "$sum"
}
},
...
}
```
#### 2. 请求字段映射与转换
在数据请求阶段,我们需要将源平台的数据字段映射到金蝶云星空API所需的字段,并进行必要的数据转换。以下是主要字段的映射和转换规则:
- `FBillNo`(出库单号):直接映射。
- `FBillTypeID`(单据类型):固定值`XSCKD07_SYS`。
- `FDate`(日期):使用源数据中的`consignTime_new`字段。
- `FSaleOrgId`(销售组织):固定值`201`。
- `FCustomerID`(客户):通过函数从`shopCodenew`字段中提取客户编号。
- `FStockOrgId`(发货组织):固定值`201`。
- `FNote`(备注):固定值“零售发货”。
- `FOwnerTypeIdHead`(货主类型):固定值“BD_OwnerOrg”。
- `FOwnerIdHead`(货主):固定值“201”。
以下是部分请求字段的详细配置:
```json
[
{
"field": "FBillNo",
"label": "出库单号",
"type": "string",
...
},
{
"field": "FBillTypeID",
...
"value": "XSCKD07_SYS"
},
{
...
...
},
{
...
...
},
]
```
#### 3. 明细信息处理
对于明细信息,我们需要处理多个子字段,并确保每个子字段的数据格式符合金蝶云星空API的要求。例如:
- `FMaterialID`(物料编码):映射到源数据中的`details.goodsDetail_goodsNo`字段。
- `FRealQty`(实发数量):映射到源数据中的`details.goodsDetail_sellCount`字段。
- `FTaxPrice`(含税单价):通过计算得到,即 `_function {{details.goodsDetail_shareFavourableAfterFee}}/{{details.goodsDetail_sellCount}}`
- `FEntryTaxRate`(税率%):固定值“13”。
以下是部分明细信息的详细配置:
```json
[
{
...
...
},
{
...
...
},
]
```
#### 4. 数据写入与提交
在完成所有字段的映射和转换后,我们需要将处理后的数据通过API接口写入到金蝶云星空系统中。为了确保数据的一致性和完整性,我们还可以设置一些额外的参数,例如自动提交和审核、验证基础资料等。
```json
[
{
...
...
},
]
```
#### 总结
通过上述步骤,我们可以实现从源平台到金蝶云星空系统的数据ETL转换和写入。在这一过程中,关键在于准确地进行字段映射和数据转换,同时确保所有必要的信息都被正确地传递给目标系统。利用轻易云数据集成平台提供的可视化操作界面和实时监控功能,可以大大简化这一复杂过程,提高业务透明度和效率。
![用友与SCM系统接口开发配置](https://pic.qeasy.cloud/T29.png~tplv-syqr462i7n-qeasy.image)