### 案例分享:金蝶云星辰V2数据集成到旺店通·企业奇门
在本案例中,我们探讨了如何利用轻易云数据集成平台,将金蝶云星辰V2中的销售退货单无缝对接至旺店通·企业奇门系统,具体方案名称:(V2)销售退货单->其他入库单[金蝶->旺店通]。此技术实现的核心在于高效、安全地处理大量业务数据,同时确保每条记录的准确性和实时性。
#### 一、接口调用与数据获取
首先,通过金蝶云星辰提供的API接口/jdy/v2/scm/sal_in_bound抓取销售退货单的数据。在实际操作中,为确保不漏掉任何一条记录,定时触发数据抓取任务是必要步骤之一。同时,我们还需解决分页和限流的问题,以防止因请求量过大导致服务被限制或超时。这就需要我们合理设置分页参数,并且控制请求频率以保障服务稳定。
#### 二、大量数据写入到旺店通·企业奇门
一旦成功获取到所需的数据,下一步就是将这些信息快速、高效地写入到目标系统——旺店通·企业奇门。使用其提供的API:wdt.stockin.order.push,一次性批量写入可以显著提高效率,但这也要求我们提前做好相应的数据整合与格式转换工作,以匹配两套系统间的数据结构差异。
为了保证在传输过程中不出现错误,我们设计了一套异常处理机制。一旦发现某条记录写入失败,立即进行重试操作,并将详细日志记录下来用于后续分析和优化。此外,通过轻易云平台提供的实时监控功能,可以随时查看整个过程中的每一个环节,对潜在问题提前预警并迅速响应,大幅提升了整体运作效率。
![如何开发金蝶云星空API接口](https://pic.qeasy.cloud/D2.png~tplv-syqr462i7n-qeasy.image)
### 调用金蝶云星辰V2接口获取并加工数据
在数据集成过程中,调用源系统的API接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用金蝶云星辰V2接口`/jdy/v2/scm/sal_in_bound`获取销售退货单数据,并进行初步加工。
#### 接口概述
金蝶云星辰V2接口`/jdy/v2/scm/sal_in_bound`用于查询销售退货单数据。该接口支持多种查询参数,能够灵活地筛选和排序数据。以下是该接口的元数据配置:
```json
{
"api": "/jdy/v2/scm/sal_in_bound",
"effect": "QUERY",
"method": "GET",
"number": "id",
"id": "id",
"name": "id",
"idCheck": true,
"request": [
{"field":"create_end_time","label":"创建时间","type":"string","describe":"创建时间-结束时间的时间戳(毫秒)"},
{"field":"create_start_time","label":"创建时间","type":"string","describe":"创建时间-开始时间的时间戳(毫秒)"},
{"field":"end_bill_date","label":"单据日期","type":"string","describe":"单据日期-结束日期(yyyy-MM-dd)"},
{"field":"modify_end_time","label":"修改时间","type":"string","describe":"修改时间-结束时间的时间戳(毫秒)","value":"_function {CURRENT_TIME}*1000"},
{"field":"modify_start_time","label":"修改时间","type":"string","describe":"修改时间-开始时间的时间戳(毫秒)","value":"_function {LAST_SYNC_TIME}*1000"},
{"field":"order_by","label":"排序","type":"string","describe":"排序;编码升序:number asc(默认),编码降序:number desc,名称升序:name asc,名称降序:name desc"},
{"field":"page","label":"当前页","type":"string","describe":"当前页,默认1","value":"1"},
{"field":"page_size","label":"每页显示条数默认10","type":"string","describe":"每页显示条数默认10","value":"{PAGINATION_PAGE_SIZE}"},
{"field":"search","label":"模糊搜索","type":"string","describe":"模糊搜索"},
{"field":"settle_status","label":"付款状态","type":"string","describe":"付款状态(所有:,全部收款:C,部分收款:B,未收款:A,待收款(=部分收款+未收款):M)"},
{"field":"start_bill_date","label":"单据日期","type":"string","describe":"单据日期-开始日期(yyyy-MM-dd)"}
],
"otherRequest": [
{"field": "detailAPI", "label": "详情接口", "type": "string", "describe": "在接口文档中找到的对应的详情接口填上", "value": "/jdy/v2/scm/sal_in_bound_detail"}
],
"autoFillResponse": true
}
```
#### 参数配置与请求
在调用该API时,我们需要配置多个查询参数,以确保获取到符合条件的数据。以下是一些关键参数及其作用:
- `create_start_time` 和 `create_end_time`: 用于筛选指定创建时间范围内的数据。
- `modify_start_time` 和 `modify_end_time`: 用于筛选指定修改时间范围内的数据。特别地,这两个参数可以使用函数动态生成,例如当前时间或上次同步时间。
- `start_bill_date` 和 `end_bill_date`: 用于筛选指定单据日期范围内的数据。
- `order_by`: 用于指定排序规则,例如按编码升序或降序排列。
- `page` 和 `page_size`: 用于分页控制。
例如,我们可以构建如下请求:
```http
GET /jdy/v2/scm/sal_in_bound?create_start_time=1672531200000&create_end_time=1672617600000&order_by=number%20asc&page=1&page_size=10
```
#### 数据处理与转换
获取到原始数据后,需要对其进行清洗和转换,以便后续写入目标系统。在轻易云平台中,可以通过可视化操作界面对数据进行处理。例如:
1. **字段映射**: 将源系统中的字段映射到目标系统中的相应字段。例如,将金蝶云中的`id`字段映射为旺店通中的`order_id`字段。
2. **数据清洗**: 对原始数据进行格式化处理,例如将日期字符串转换为标准日期格式。
3. **过滤无效数据**: 去除不符合业务逻辑的数据,例如空值或重复记录。
#### 实践案例
假设我们需要将金蝶云中的销售退货单数据导入到旺店通系统中,可以按照以下步骤进行:
1. **配置API请求**: 设置必要的查询参数,并调用金蝶云星辰V2接口获取销售退货单数据。
2. **清洗与转换**: 使用轻易云平台对获取的数据进行清洗和转换,包括字段映射、格式化处理等。
3. **写入目标系统**: 将处理后的数据通过相应的API写入旺店通系统。
通过上述步骤,我们可以实现从金蝶云到旺店通的数据无缝对接,有效提升业务流程的自动化程度和效率。
![如何开发用友BIP接口](https://pic.qeasy.cloud/S1.png~tplv-syqr462i7n-qeasy.image)
### 数据集成生命周期中的ETL转换:从金蝶到旺店通·企业奇门API接口
在数据集成生命周期的第二步,我们需要将已经集成的源平台数据进行ETL转换,转为目标平台旺店通·企业奇门API接口所能够接收的格式,并最终写入目标平台。本文将详细探讨如何利用轻易云数据集成平台配置元数据,实现这一过程。
#### 接口及元数据配置概述
我们将使用的目标API接口为`wdt.stockin.order.push`,该接口用于推送其他入库单至旺店通系统。请求方法为`POST`,并且要求进行ID检查以避免重复推送。以下是该接口的主要字段及其描述:
- `outer_no`:外部单号,用于标识唯一单据编号。
- `warehouse_no`:仓库编号,用于区分不同仓库。
- `logistics_code`:物流编号,用于区分不同物流公司。
- `logistics_no`:物流单号,用于追踪物流信息。
- `is_check`:是否审核,1表示审核,0表示不审核。
- `is_create_batch`:是否创建批次,0表示否,1表示是。
- `post_fee`:邮资费用。
- `other_fee`:其他费用。
- `remark`:备注信息。
- `reason`:入库原因,需要在客户端维护好该原因。
- `goods_list`:货品明细节点,包括商家编码、入库数量、货位编号、批次等信息。
#### 数据映射与转换
在实际操作中,我们需要将源平台(金蝶)的数据映射到上述字段中。以下是一些关键字段的映射和转换规则:
1. **外部单号(outer_no)**
- 源数据字段为 `{bill_no}`,直接映射到目标字段 `outer_no`。
2. **仓库编号(warehouse_no)**
- 使用模板变量 `{{material_entity.stock_number}}` 映射到目标字段 `warehouse_no`。
3. **备注(remark)**
- 备注信息包含固定文本和变量 `{bill_no}` 的组合:“金蝶销售退货,自动产生其他入库单,金蝶对应单据编号:{bill_no}”。
4. **货品明细节点(goods_list)**
- 每个货品项包含多个子字段,如商家编码、入库数量、批次等。这些子字段通过模板变量进行映射:
- 商家编码(spec_no):使用模板变量 `{{material_entity.material_number}}`
- 入库数量(stockin_num):使用模板变量 `{{material_entity.qty}}`
- 批次(batch_no):使用模板变量 `{{material_entity.batch_no}}`
- 原价和入库价(src_price, stockin_price):均使用模板变量 `{{material_entity.price}}`
#### 实际配置示例
以下是一个完整的元数据配置示例:
```json
{
"api": "wdt.stockin.order.push",
"method": "POST",
"idCheck": true,
"request": [
{
"field": "outer_no",
"label": "外部单号",
"type": "string",
"describe": "外部系统的唯一单据编号,避免重复推送数据",
"value": "{bill_no}"
},
{
"field": "warehouse_no",
"label": "仓库编号",
"type": "string",
"describe": "代表仓库所有属性的唯一编码,用于仓库区分,ERP内支持自定义(ERP仓库界面设置)",
"value": "{{material_entity.stock_number}}"
},
{
"field": "remark",
"label": "备注",
"type": "string",
"describe": "其他入库单备注",
"value": "金蝶销售退货,自动产生其他入库单,金蝶对应单据编号:{bill_no}"
},
{
"field": "goods_list",
"label": "货品明细节点",
"type": "array",
...
}
],
...
}
```
#### 数据清洗与验证
在将数据写入目标平台之前,需要进行必要的数据清洗与验证。例如:
- 确保所有必填字段都有值,并且值符合预期格式。
- 验证数值类型的数据,如价格和数量,确保其在合理范围内。
通过这些步骤,可以确保最终写入的数据准确无误,提高系统集成的可靠性。
#### 总结
通过以上步骤,我们可以高效地将源平台(金蝶)的销售退货单转换为旺店通·企业奇门API接口所能接收的其他入库单格式,并成功写入目标平台。这一过程不仅涉及复杂的数据映射与转换,还需要精确的数据清洗与验证,以确保数据质量和系统稳定性。
![钉钉与ERP系统接口开发配置](https://pic.qeasy.cloud/T7.png~tplv-syqr462i7n-qeasy.image)