### 畅捷通T+数据集成到聚水潭的技术案例分享:T+进货单【红字】-->聚水潭其他出库单--ikk
在企业日常业务流程中,如何高效、安全地将不同系统的数据进行无缝对接是一个重要课题。本文将重点介绍使用轻易云数据集成平台,实现从畅捷通T+到聚水潭的一次成功系统对接。具体来说,我们将探讨如何配置元数据,将畅捷通T+中的进货单【红字】实时、批量写入聚水潭的其他出库单。
#### 确保集成的准确性与完整性
首先,为了保证从畅捷通T+提取的数据不漏单,我们利用其API接口`/tplus/api/v2/PurchaseArrivalOpenApi/FindVoucherList`进行定时可靠的数据抓取。这不仅确保了数据获取频率和稳定性,还通过灵活设置参数来实现分页处理,以应对接口限流的问题。
#### 批量高效写入到聚水潭
在完成从畅捷通T+的数据抓取后,下一步是将这些已经格式化好的数据快速、批量地传输并写入到聚水潭。为此,我们调用其开放的API ` /open/jushuitan/otherinout/upload` 实现大规模、高并发的数据导入。在这一过程中,特别注意根据业务需求进行字段映射,以及处理两者之间可能存在的数据格式差异。
#### 异常与日志管理
为了提高整个数据流动过程中的透明度与可靠性,对异常处理机制及日志记录进行了专门设计。一旦出现意外错误或网络波动导致写入失败,将触发重试机制,并详细记录每个环节的状态信息,从而便于问题追溯和解决。
本文所述方案借助轻易云强大的生命周期管理特性,通过全透明可视化界面提供清晰直观的数据监控,有效提升了业务效率。以下我们将深入讨论各步骤中的技术细节以及对应代码示例。
![如何对接钉钉API接口](https://pic.qeasy.cloud/D9.png~tplv-syqr462i7n-qeasy.image)
### 调用畅捷通T+接口获取并加工数据的技术案例
在数据集成过程中,调用源系统接口获取数据是至关重要的一步。本文将深入探讨如何使用轻易云数据集成平台调用畅捷通T+接口`/tplus/api/v2/PurchaseArrivalOpenApi/FindVoucherList`来获取进货单【红字】的数据,并进行初步加工。
#### 接口配置与请求参数
首先,我们需要配置接口的元数据,以便正确调用畅捷通T+的API。以下是元数据配置的详细信息:
```json
{
"api": "/tplus/api/v2/PurchaseArrivalOpenApi/FindVoucherList",
"effect": "QUERY",
"method": "POST",
"number": "Code",
"id": "Code",
"idCheck": true,
"request": [
{"field":"selectFields","label":"查询字段","type":"string","describe":"部门编码","value":"VoucherCode"},
{"field":"pageIndex","label":"pageIndex","type":"string","describe":"部门名称"},
{"field":"pageSize","label":"pageSize","type":"string","describe":"指定返回字段","value":"10"},
{
"field":"paramDic_1",
"label":"paramDic参数",
"type":"object",
"describe":"上级部门",
"children":[
{"field":"key","label":"业务类型","type":"string","describe":"上级部门编码","value":"PurchaseArrival__BusinessType__Code"},
{"field":"value","label":"value","type":"string","describe":"上级部门名称","value":"02,02"}
]
},
{
"field":"paramDic_2",
"label":"paramDic_2",
"type":"object",
"children":[
{"field":"key","label":"单据状态","type":"string","value":"PurchaseArrival__VoucherState"},
{"field":"value","label":"value","type":"string","value":"01,01"}
]
},
{
"field":"paramDic_3",
"label":"paramDic_3",
"type":"object",
"children":[
{"field":"key","label":"单据日期","type":"string","value":"PurchaseArrival__VoucherDate"},
{"field":"value","label":"","type":"","value":"'{{LAST_SYNC_TIME|date}},{{CURRENT_TIME|date}}'"}
]
}
],
"otherRequest": [
{"field": "detailkey1", "label": "detailkey1", "type": "string", "value": "voucherCode"},
{"field": "detailkey2", "label": "", "type": "", value: ""},
{"field": "", label: "", type: "", value: ""},
{"field": "", label: "", type: "", value: ""}
],
autoFillResponse: true
}
```
#### 请求参数解析
1. **selectFields**:指定要查询的字段,这里我们选择了`VoucherCode`。
2. **pageIndex**和**pageSize**:用于分页查询,分别表示当前页码和每页返回的数据条数。
3. **paramDic_1**、**paramDic_2**、**paramDic_3**:这些是复杂的对象参数,用于进一步筛选数据。
- **paramDic_1**:业务类型,值为`02,02`。
- **paramDic_2**:单据状态,值为`01,01`。
- **paramDic_3**:单据日期,动态值为上次同步时间到当前时间。
#### 数据请求与清洗
通过上述配置,我们可以发送POST请求到畅捷通T+接口以获取所需的进货单【红字】数据。以下是一个示例请求体:
```json
{
selectFields: 'VoucherCode',
pageIndex: '1',
pageSize: '10',
paramDic_1: { key: 'PurchaseArrival__BusinessType__Code', value: '02,02' },
paramDic_2: { key: 'PurchaseArrival__VoucherState', value: '01,01' },
paramDic_3: { key: 'PurchaseArrival__VoucherDate', value: '{{LAST_SYNC_TIME|date}},{{CURRENT_TIME|date}}' }
}
```
在接收到响应后,我们需要对数据进行初步清洗和加工,以确保其符合后续处理步骤的要求。这包括但不限于:
- 数据格式转换
- 字段重命名或删除无用字段
- 数据校验和过滤
#### 实际应用案例
假设我们从接口中获取到以下原始数据:
```json
{
data:[
{
VoucherCode:'VC001',
BusinessType:'02',
VoucherState:'01',
VoucherDate:'2023-10-01'
},
...
]
}
```
我们可以通过轻易云平台提供的数据清洗工具,对这些数据进行处理。例如,将`VoucherDate`字段格式化为标准日期格式,或根据业务需求筛选出特定状态的数据。
```json
{
data:[
{
VoucherCode:'VC001',
BusinessType:'02',
VoucherState:'已审核',
VoucherDate:'2023-10-01'
},
...
]
}
```
通过上述步骤,我们完成了从畅捷通T+接口获取进货单【红字】数据并进行初步加工,为后续的数据转换与写入奠定了基础。
这种方法不仅提高了数据处理效率,还确保了数据的一致性和准确性,为企业实现多系统间的数据无缝对接提供了强有力的支持。
![钉钉与CRM系统接口开发配置](https://pic.qeasy.cloud/S4.png~tplv-syqr462i7n-qeasy.image)
### 轻易云数据集成平台ETL转换与写入目标平台的技术案例
在轻易云数据集成平台的生命周期中,ETL(Extract, Transform, Load)过程是关键步骤之一。本文将深入探讨如何将已经集成的源平台数据进行ETL转换,并转为目标平台聚水潭API接口所能够接收的格式,最终写入目标平台。
#### API接口配置
元数据配置如下:
```json
{
"api": "/open/jushuitan/otherinout/upload",
"effect": "EXECUTE",
"method": "POST",
"idCheck": true,
"request": [
{"field": "is_confirm", "label": "是否确认单据", "type": "string", "value": "1"},
{"field": "excute_confirming", "label": "是否审核单据", "type": "string", "value": "true"},
{"field": "warehouse", "label": "仓库编号", "type": "int",
"value": "_function case '{{Warehouse.Code}}' when '2' then '4' else '1' end"},
{"field": "type", "label": "出入库类型", "type": "string",
"value": "_function case '{{Type}}' when 'out' then '出库' else '入库' end"},
{"field": "external_id", "label": "外部单号",
"type": "string",
"value":"{Code}"},
{"field":"remark","label":"备注","type":"string","value":"{Memo}"},
{"field":"items","label":"items","type":"array","value":"Details",
children:[
{"field":"sku_id","label":"商品编码","type":"string","value":"{{Details.Inventory.Code}}"},
{"field":"qty","label":"入库数量","type":"string","value":"_function ({{Details.Quantity}}*-1)"},
{"field":"sale_price","label":"单价","type":"bool","value":"{{Details.OrigTaxPrice}}"}
]}
]
}
```
#### 数据请求与清洗
首先,我们需要从源平台获取原始数据并进行清洗。假设我们从T+系统获取进货单【红字】的数据,这些数据可能包含多种格式和类型的信息。通过轻易云的数据清洗功能,可以将这些原始数据标准化,确保其符合后续处理的要求。
#### 数据转换与映射
接下来,我们需要将清洗后的数据进行转换,以符合聚水潭API接口的格式要求。以下是关键字段的映射和转换逻辑:
- **是否确认单据(is_confirm)**: 固定值"1",表示确认单据。
- **是否审核单据(excute_confirming)**: 固定值"true",表示审核单据。
- **仓库编号(warehouse)**: 使用条件判断,根据`Warehouse.Code`字段值进行映射。如果`Warehouse.Code`为"2",则映射为"4",否则映射为"1"。
- **出入库类型(type)**: 根据`Type`字段值进行映射,如果`Type`为"out",则映射为“出库”,否则映射为“入库”。
- **外部单号(external_id)**: 映射自源数据中的`Code`字段。
- **备注(remark)**: 映射自源数据中的`Memo`字段。
- **商品明细(items)**: 是一个数组,每个元素包含以下子字段:
- **商品编码(sku_id)**: 映射自`Details.Inventory.Code`字段。
- **入库数量(qty)**: 将数量乘以-1,以表示红字进货单的负数数量。
- **单价(sale_price)**: 映射自`Details.OrigTaxPrice`字段。
#### 数据写入目标平台
完成上述转换后,我们使用POST方法调用聚水潭的API接口,将处理后的数据发送到目标平台。以下是一个示例请求体:
```json
{
"is_confirm": "1",
"excute_confirming": true,
"warehouse": 4,
"type": out,
...
}
```
通过这种方式,轻易云数据集成平台实现了从源系统到目标系统的数据无缝对接,确保了各环节的数据准确性和一致性。
![钉钉与MES系统接口开发配置](https://pic.qeasy.cloud/T29.png~tplv-syqr462i7n-qeasy.image)