易仓数据集成到金蝶云星空案例分享:R入库单(组装)-其他入库单20230620
在本次技术案例中,我们将分享如何实现易仓数据高效、无缝地集成到金蝶云星空,以R入库单(组装)-其他入库单20230620
为具体实例。本方案重点关注解决以下几个核心问题:确保数据不漏单、大量数据批量写入、定时可靠的数据抓取以及对接过程中必要的格式转换。
首先,采用轻易云平台进行系统对接,可以通过其全生命周期管理功能和透明化操作界面,实现完整的监控与日志记录。我们利用getReceiving API从易仓系统获取实时库存信息,并处理分页和限流问题,确保数据不会遗漏。在这个过程中针对防止接口调用频率过高导致的限流情况,将每次请求的数据条数配置在合理范围内,并通过重试机制处理可能出现的网络异常或接口响应失败。
接下来,为了顺利将得到的大量库存数据快速写入到金蝶云星空,我们运用了batchSave API。针对两者之间的数据格式差异,设计了一套定制化的数据映射规则,通过轻易云的平台工具进行复杂字段转换,使得各项商品信息准确传递至目标系统。这一步骤不仅要求高效,也需保持严格的一致性,以避免由于格式不匹配而引起的数据错误。
此外,在整个流程中,还特别设置了定时任务用于自动抓取并集成易仓最新库存信息,从而保证业务侧能实时反映实际库存情况。这种定时任务调度机制也便于业务部门随时掌握当前状态,提高整体运营效率。
最后,应注意的是对接过程中的异常处理能力尤为重要。通过新增错误日志和报警机制,对任何一环节出现的问题都及时记录并回滚重试,确保最终所有有效数据信息成功落地到金蝶云星空之上,实现从源头采集到目标存储全程安全、稳定、高效运行。
以上即是本次技术实施方案开篇部分内容。在后续步骤中,我们将详细展示具体API调用方法及代码实现细节,进一步解析每个步骤背后的技术原理与应对策略。
调用易仓接口getReceiving获取并加工数据
在轻易云数据集成平台的生命周期中,调用源系统接口是至关重要的一步。本文将深入探讨如何通过调用易仓接口getReceiving
来获取并加工数据。
接口配置与调用
首先,我们需要了解getReceiving
接口的基本配置。根据提供的元数据配置,getReceiving
接口采用POST方法进行调用,并且支持多种查询参数。这些参数包括入库单号、客户参考号、跟踪号等,能够满足不同场景下的数据请求需求。
{
"api": "getReceiving",
"method": "POST",
"number": "receiving_code",
"id": "receiving_id",
"idCheck": true,
"request": [
{"field":"receiving_code","label":"入库单号","type":"string"},
{"field":"reference_no","label":"客户参考号","type":"string"},
{"field":"tracking_number","label":"跟踪号","type":"string"},
{"field":"po_code","label":"采购单号","type":"string"},
{"field":"warehouse_id","label":"仓库Id","type":"string"},
{"field":"receiving_type","label":"类型","type":"string", "value": "13"},
{"field":"receiving_status","label":"入库单状态","type":"string", "value": "7"},
{"field":"productBarcode","label":"产品代码","type":"string"},
{"field":"productBarcode_like","label":"产品代码(模糊)","type":"string"},
{"field":"receiving_add_user","label":"采购员(用户Id)","type":"string"},
{"field":"code_like","label":"单号(入库单、参考号、采购单)","type":"string"},
{
"field": "searchDateType",
"label": "查询时间类型",
"type": "string",
"value": "receiving_update_time"
},
{
"field": "dateFor",
"label": "大于等于某个时间类型",
"type": "string",
"value": "_function DATE_SUB(now(),INTERVAL 5 DAY)"
},
{
"field": "dateTo",
"label": "小于等于某个时间类型",
"type": "string",
"value": "{{CURRENT_TIME|datetime}}"
},
{
"field": "pagination",
"label": "分页",
"type": "object",
"children":[
{"field": "page", label: '当前页', type: 'string', value: '_function 1*1'},
{"field": 'pageSize', label: '每页显示条数', type: 'string', value: '_function 50*1'}
]
}
]
}
数据请求与清洗
在实际操作中,我们需要根据业务需求设置具体的请求参数。例如,如果我们需要获取过去五天内所有状态为“收货完成”的入库单,可以配置如下:
{
...
{
field: 'receiving_status',
label: '入库单状态',
type: 'string',
value: '7'
},
{
field: 'searchDateType',
label: '查询时间类型',
type: 'string',
value: 'receiving_update_time'
},
{
field: 'dateFor',
label: '大于等于某个时间类型',
type: 'string',
value: '_function DATE_SUB(now(),INTERVAL 5 DAY)'
},
{
field:'dateTo',
label:'小于等于某个时间类型',
type:'string',
value:'{{CURRENT_TIME|datetime}}'
}
}
这些参数确保了我们只获取最近五天内更新且状态为“收货完成”的入库单数据。
数据转换与写入
在成功获取数据后,下一步是对数据进行必要的清洗和转换。由于不同系统的数据格式和字段可能存在差异,我们需要对原始数据进行标准化处理。例如,将日期格式统一转换为ISO标准,将数值字段统一转换为浮点型等。
以下是一个简单的数据转换示例:
def transform_data(data):
for record in data:
record['update_time'] = convert_to_iso(record['update_time'])
record['quantity'] = float(record['quantity'])
return data
经过清洗和转换后的数据可以直接写入目标系统或数据库,以便后续使用。
实时监控与优化
在整个过程中,实时监控是确保数据集成质量的重要手段。通过轻易云平台提供的可视化界面,我们可以实时查看数据流动和处理状态,及时发现并解决潜在问题。此外,根据监控结果不断优化参数设置和处理逻辑,可以进一步提升数据集成效率和准确性。
总结来说,通过合理配置和调用易仓接口getReceiving
,我们能够高效地获取并加工所需数据,为后续的数据分析和业务决策提供坚实基础。在实际操作中,灵活运用元数据配置和平台提供的工具,可以显著提升工作效率和数据质量。
使用轻易云数据集成平台将源数据转换并写入金蝶云星空API
在数据集成的生命周期中,ETL(Extract, Transform, Load)过程是关键步骤之一。本文将详细探讨如何使用轻易云数据集成平台,将已经集成的源平台数据进行ETL转换,最终写入目标平台——金蝶云星空API接口。
配置元数据
我们首先需要配置元数据,以便正确地将源数据转换为金蝶云星空API所能接收的格式。以下是一个典型的元数据配置示例:
{
"api": "batchSave",
"method": "POST",
"idCheck": true,
"operation": {
"rowsKey": "array",
"rows": 1,
"method": "batchArraySave"
},
"request": [
{"field": "FBillNo", "label": "单据编号", "type": "string", "describe": "单据编号", "value": "{receiving_code}"},
{"field": "FBillTypeID", "label": "单据类型", "type": "string", "describe": "单据类型",
"parser":{"name":"ConvertObjectParser","params":"FNumber"},
"value":"QTRKD06_SYS"},
{"field": "FStockOrgId", "label": "库存组织",
"type": "string",
"describe":"组织",
"parser":{"name":"ConvertObjectParser","params":"FNumber"},
"value":"_findCollection find warehouseCode from de1387a4-c479-35db-9bcb-c73858fcb2b1 where warehouseId={warehouse_id}",
"mapping":"63688a45a23a2e0fa5271b19",
"mappingDirection":"positive"},
{"field":"FStockDirect","label":"库存方向","type":"string","describe":"下拉列表"},
{"field":"FDate","label":"日期","type":"string","describe":"日期","value":"{complete_time}"},
{"field":"FSUPPLIERID","label":"供应商","type":"string","describe":"基础资料",
"parser":{"name":"ConvertObjectParser","params":"FNumber"}},
{"field":"FDEPTID","label":"部门","type":"string","describe":"基础资料",
"parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"BM000015"},
{"field":"FOwnerTypeIdHead","label":"货主类型","type":"string","describe":"多类别基础资料列表",
"value":"BD_OwnerOrg"},
{"field":"FOwnerIdHead","label":"货主","type":"","describe":"",
"parser":{"name":"","params":""},
"value":"",
"mapping":"",
"mappingDirection":"",
"children":[
{"field":"","label":"","type":"","describe":"",
"parent":"",
"value":"",
"mapping":"",
"mappingDirection":"",
"children":[
{"field":"","label":"","type":"","describe":"",
"parent":"",
"value":"",
"mapping":"",
"mappingDirection":"",
"children":[
{"field":"","label":"","type":"","describe":"",
"parent":"",
"value":"",
"mapping":"",
"mappingDirection":"",
}
]}
]}
]}
],
...
}
数据转换
在配置好元数据后,我们需要进行具体的数据转换操作。以下是几个关键字段的转换逻辑:
-
单据编号 (FBillNo):
- 从源系统中提取
receiving_code
字段,并直接映射到FBillNo
。
- 从源系统中提取
-
单据类型 (FBillTypeID):
- 使用
ConvertObjectParser
解析器,将固定值QTRKD06_SYS
转换为目标系统所需格式。
- 使用
-
库存组织 (FStockOrgId):
- 使用
ConvertObjectParser
解析器,通过仓库ID (warehouse_id
) 查找对应的仓库编码 (warehouseCode
) 并映射到FStockOrgId
。
- 使用
-
日期 (FDate):
- 将完成时间 (
complete_time
) 映射到FDate
。
- 将完成时间 (
-
供应商 (FSUPPLIERID):
- 使用
ConvertObjectParser
解析器,将供应商信息从源系统转换为目标系统所需格式。
- 使用
-
部门 (FDEPTID):
- 固定值
BM000015
映射到FDEPTID
。
- 固定值
-
货主类型 (FOwnerTypeIdHead) 和 货主 (FOwnerIdHead):
- 固定值
BD_OwnerOrg
映射到FOwnerTypeIdHead
。 - 使用仓库ID查找对应的仓库编码,并映射到
FOwnerIdHead
。
- 固定值
-
备注 (FNOTE):
- 将接收描述 (
receiving_description
) 映射到FNOTE
。
- 将接收描述 (
明细信息处理
对于明细信息字段(如物料编码、实收数量等),需要特别注意其父子关系和解析逻辑:
{
...
{
"field": "FEntity",
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
![打通企业微信数据接口](https://pic.qeasy.cloud/T21.png~tplv-syqr462i7n-qeasy.image)