T+材料出库单【红字】集成到吉客云-入库单创建案例分享
在本篇文章中,我们将详细探讨如何利用轻易云数据集成平台,将畅捷通T+的材料出库单(红字)成功同步至吉客云,并生成相应的入库单。这个技术案例展示了从API接口调用、数据处理与转换,到最终写入目标系统全过程中的关键步骤和技巧。
首先,任务开始于从畅捷通T+系统中获取材料出库单数据。通过调用其API接口 /tplus/api/v2/MaterialDispatchOpenApi/FindVoucherList
来实现高效的数据抓取。在这个过程中,需要特别注意接口的分页和限流问题,以确保稳定的数据传输。同时,在实际操作中,为保障不漏单,还必须设计可靠的数据捕获机制。
接着,对获取到的数据进行必要的过滤和转换。这一步不可或缺,因为两套系统在数据结构上存在差异。这里应用了自定义数据转换逻辑,并结合异常检测功能,确保所有的数据都符合目的系统要求。在此基础上,通过实时监控及日志记录功能,可以及时发现并解决任何潜在问题,提高整体操作透明度。
最后,将处理好的数据批量、高速地写入到吉客云系统,使用其提供的 erp.storage.stockincreate
API 接口完成目标任务。这一过程需要重点关注的是对接时可能出现的各种异常情况,以及准确实施错误重试机制,提高整个流程的稳健性。此外,通过集中监控与告警体系,有效跟踪每个工作环节状态,实现对整体性能的一站式掌控。
此次集成案例不仅展现了跨平台复杂场景下如何灵活运用API,更强调了精细化管理和技术能力的重要性。从拿数、转数到落数,每一步均有条不紊,使得业务过程更加顺畅无忧。
调用源系统畅捷通T+接口获取并加工数据
在轻易云数据集成平台的生命周期中,第一步是调用源系统接口获取数据。本文将深入探讨如何通过调用畅捷通T+接口/tplus/api/v2/MaterialDispatchOpenApi/FindVoucherList
来获取材料出库单【红字】的数据,并进行初步加工。
接口配置与请求参数
首先,我们需要配置API接口的元数据,以便在轻易云平台上进行调用。以下是元数据配置的关键部分:
{
"api": "/tplus/api/v2/MaterialDispatchOpenApi/FindVoucherList",
"effect": "QUERY",
"method": "POST",
"number": "Code",
"id": "Code",
"idCheck": true,
"request": [
{
"field": "selectFields",
"label": "查询字段",
"type": "string",
"describe": "部门编码",
"value": "VoucherCode,CustomerCode,WarehouseCode,Inventory,InventoryCode,Specification,Unit,Quantity"
},
{
"field": "pageIndex",
"label": "pageIndex",
"type": "string",
"describe": "部门名称"
},
{
"field": "pageSize",
"label": "pageSize",
"type": "string",
"describe": "指定返回字段",
"value": "10"
},
{
...
}
],
...
}
在这个配置中,我们定义了多个请求参数:
selectFields
: 指定要查询的字段,包括VoucherCode
,CustomerCode
,WarehouseCode
,Inventory
,InventoryCode
,Specification
,Unit
, 和Quantity
。pageIndex
和pageSize
: 用于分页查询,确保每次请求返回的数据量适中。paramDic_1
和paramDic_2
: 用于传递额外的过滤条件,例如时间范围和仓库ID。
请求示例
根据上述配置,我们可以构建一个POST请求来获取所需的数据。以下是一个示例请求体:
{
"selectFields": ["VoucherCode", ...],
...
}
这个请求将返回符合条件的材料出库单【红字】记录。
数据清洗与转换
获取到原始数据后,需要对其进行清洗和转换,以便后续处理。假设我们获取到的数据如下:
[
{
...
}
]
我们需要对这些数据进行以下处理:
- 过滤负数数量:根据元数据中的条件配置,只保留数量为负数的记录。
- 字段映射:将原始字段映射到目标系统所需的字段格式。
例如,将原始记录中的VoucherCode
映射为目标系统中的voucher_code
,并确保所有字段符合目标系统的要求。
数据写入准备
清洗和转换后的数据需要准备好以便写入目标系统。在这个过程中,可以使用轻易云平台提供的自动填充响应功能(autoFillResponse),简化数据处理流程。
{
...
}
通过这种方式,可以确保每个步骤都高效且准确地完成,为后续的数据写入打下坚实基础。
总结来说,通过调用畅捷通T+接口并进行初步的数据清洗与转换,可以有效地获取并准备好材料出库单【红字】的数据,为后续的数据集成奠定基础。
使用轻易云数据集成平台实现T+材料出库单【红字】到吉客云入库单的ETL转换与写入
在数据集成过程中,ETL(Extract, Transform, Load)是关键步骤之一。本文将详细探讨如何通过轻易云数据集成平台,将T+系统中的材料出库单【红字】数据转换为吉客云API接口所能接收的格式,并最终写入吉客云平台。
数据转换与写入目标平台
在本案例中,我们需要将T+系统的材料出库单【红字】数据转换为吉客云的入库单格式,并通过API接口进行写入。以下是具体的元数据配置和技术细节。
API接口配置
我们使用吉客云提供的erp.storage.stockincreate
API接口,该接口支持POST方法,用于创建入库单。以下是元数据配置:
{
"api": "erp.storage.stockincreate",
"effect": "EXECUTE",
"method": "POST",
"idCheck": true,
"request": [
{
"field": "inWarehouseCode",
"label": "仓库编码",
"type": "string",
"describe": "仓库编码",
"value": "{{Warehouse.Code}}"
},
{
"field": "inType",
"label": "出库类型",
"type": "string",
"describe": "入库类型 101=采购入库 102=调拨入库 103=盘盈入库 104=其他入库",
"value": "104"
},
{
"field": "relDataId",
"label": "关联单据编号",
"type": "string",
"describe": "可随机,保证不重复即可",
"value": "{Code}"
},
{
"field": "applyDate",
"label": "申请出库时间",
"type": "string",
"describe": ":申请时间",
,"value":"{AuditedDate}"
},
{
,"field":"memo"
,"label":"申请单的备注信息"
,"type":"string"
,"describe":"备注"
,"value":"材料出库单红字-{Code}"
},
{
,"field":"source"
,"label":"source"
,"type":"string"
,"describe":"写死:OPEN"
,"value":"OPEN"
},
{
,"field":"stockInDetailViews"
,"label":"入库申请单明细"
,"type":"array"
,"describe":"入库申请单明细"
,"value":"RDRecordDetails"
,children":[
{
,field:"goodsNo"
,label:"货品编号"
,type:"string"
,value:"{{RDRecordDetails.InventoryCode}}"
},
{
,field:"skuBarcode"
,label:"条形码"
,type:"string"
,describe:"匹配货品信息的外部货品编号(按skuId>outSkuCode>skuBarcode匹配顺序,必传一个)"
,value:"{{RDRecordDetails.InventoryCode}}{{RDRecordDetails.freeitem0}}{{RDRecordDetails.freeitem1}}"
},
{
field:"relDetailId"
label:"关联实际业务明细表的id"
type:"string"
describe:"关联实际业务明细表的id"
},
{
field:"skuCount"
label:"出库数量"
type:"string"
describe:"入库数量"
value:"{{RDRecordDetails.Quantity}}"
},
{
field: isCertified
label: 是否正品
type: string
describe: 是否正品,1是0否
value: 1
}
,
{
field: skuPrice
label: 入库价格
type: string
describe: 入库价格
}
,
{
field: batchList
label: 批次信息集合
type: object
children:[
{
field: batchNo
label: 货品批号
type: string
value: {{RDRecordDetails.Batch}}
}
,
{
field: productionDate
label: 生产日期
type: string
value : {{RDRecordDetails.ProductionDate}}
}
,
{
field : shelfLife
label :质保期
type : string
}
,
{
field : shelfLiftUnit
label :质保期单位支持:年、月、天
type : string
describe :质保期单位支持:年、月、天
value : {{RDRecordDetails.InventoryExpiredUnit}}
}
,
{
field : expirationDate
label :到期时间
type : string
value : {{items.ExpiryDate}}
}
]
}
]
}
]
}
数据字段映射
- 仓库编码 (
inWarehouseCode
):从源数据中的Warehouse.Code
字段获取。 - 入库类型 (
inType
):固定值为104
,表示其他入库。 - 关联单据编号 (
relDataId
):从源数据中的Code
字段获取,确保唯一性。 - 申请出库时间 (
applyDate
):从源数据中的AuditedDate
字段获取。 - 备注信息 (
memo
):结合固定文本和源数据中的Code
字段生成,如“材料出库单红字-{Code}”。 - 来源 (
source
):固定值为“OPEN”。 - 入库申请单明细 (
stockInDetailViews
):- 货品编号 (
goodsNo
):从源数据中的RDRecordDetails.InventoryCode
字段获取。 - 条形码 (
skuBarcode
):组合多个字段生成,包括InventoryCode
,freeitem0
,freeitem1
。 - 关联实际业务明细表ID (
relDetailId
):根据业务逻辑生成。 - 出库数量 (
skuCount
):从源数据中的Quantity
字段获取。 - 是否正品 (
isCertified
):固定值为“1”,表示正品。 - 批次信息集合 (
batchList
):- 货品批号 (
batchNo
):从源数据中的Batch
字段获取。 - 生产日期 (
productionDate
):从源数据中的ProductionDate
字段获取。 - 质保期单位支持 (
shelfLiftUnit
):从源数据中的InventoryExpiredUnit
字段获取。 - 到期时间 (
expirationDate
):从子项中提取。
- 货品批号 (
- 货品编号 (
数据处理逻辑
- 从T+系统中提取原始材料出库单【红字】的数据。
- 根据上述元数据配置,将提取的数据进行转换,确保符合吉客云API接口要求的格式。
- 利用轻易云平台提供的全异步处理能力,将转换后的数据通过POST请求发送至吉客云API接口,实现数据写入。
通过以上步骤,我们能够高效地完成T+系统到吉客云平台的数据集成,实现不同系统间的数据无缝对接。这不仅提升了业务透明度和效率,也确保了数据处理过程的准确性和一致性。