金蝶云星空数据集成到旺店通·企业奇门:从盘盈单到委外入库单的高效对接实现
在实际业务操作中,金蝶云星空与旺店通·企业奇门系统之间的数据实时同步是确保业务流程顺畅的重要一环。本技术案例将分享一种具体的系统对接方案——如何将金蝶盘盈单快速、高效地集成到旺店通委外入库单(3000云仓)。
为了实现这一目标,我们需要解决以下几个关键技术问题:
-
大批量数据处理和写入能力:我们需支持大量数据从金蝶云星空接口
executeBillQuery
获取,并快速写入到旺店通·企业奇门API接口wdt.vip.wms.stockinout.order.push
。 -
实时监控与异常处理机制:采用集中监控和告警系统,及时跟踪每一条数据流动状态,以确保任何一点异常都能被迅速发现并处理。对于两端API调用过程中的分页、限流等问题,也需特别关注并设计相应策略。
-
自定义转换逻辑:考虑到两个系统的数据结构不同,在进行数据集成时,需要通过定制化的数据映射逻辑来保证两者间的数据格式一致性。
-
可靠抓取与重试机制:为避免遗漏或重复发送订单,配置定时任务进行可靠的数据抓取,同时加入错误重试机制以提高整体容错率。
本案例还会涵盖如何使用可视化工具进行数据流设计,使得整个配置过程更加直观且管理更为简便。通过科学合理的方案,实现了金蝶云星空至旺店通·企业奇门的无缝衔接,为业务增效添力。
调用金蝶云星空接口executeBillQuery获取并加工数据
在数据集成的生命周期中,调用源系统接口获取数据是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用金蝶云星空的executeBillQuery
接口来获取盘盈单数据,并进行初步加工。
接口配置与请求参数
首先,我们需要配置调用金蝶云星空接口的元数据。根据提供的元数据配置,executeBillQuery
接口采用POST方法,主要参数如下:
- api:
executeBillQuery
- method:
POST
- number:
FBillNo
- id:
FBillEntry_FEntryID
- pagination:
{"pageSize":500}
- idCheck:
true
请求字段包括但不限于以下内容:
[
{"field":"FBillEntry_FEntryID","label":"FEntryID","type":"string","value":"FBillEntry_FEntryID"},
{"field":"FID","label":"实体主键","type":"string","value":"FID"},
{"field":"FBillNo","label":"单据编号","type":"string","value":"FBillNo"},
{"field":"FDocumentStatus","label":"单据状态","type":"string","value":"FDocumentStatus"},
{"field":"FStockOrgId_FNumber","label":"库存组织","type":"string","value":"FStockOrgId.FNumber"},
{"field":"FDate","label":"日期","type":"string","value":"FDate"},
{"field":"FBillTypeID","label":"单据类型","type":"string","value":"FBillTypeID"},
{"field":"FStockerId","label":"仓管员","type":"string","value":"FStockerId"},
{"field":"FCreatorId","label":"创建人","type":"string","value":"FCreatorId"},
{"field":"FCreateDate","label":"创建日期","type":"string","value":"FCreateDate"},
{"field": "FilterString", "label": "过滤条件", "type": "string", "describe": "示例写法 FSupplierId.FNumber = 'VEN00010' and FApproveDate>=", "value": "FApproveDate>='{{LAST_SYNC_TIME|datetime}}' and FStockOrgId.FNumber='3000' and FStockId.FNumber='1104'"}
]
数据请求与清洗
在实际操作中,我们需要根据业务需求设置过滤条件。例如,通过FilterString
字段可以指定查询条件,如:
"FilterString": "FApproveDate>='2023-01-01' and FStockOrgId.FNumber='3000' and FStockId.FNumber='1104'"
该条件确保我们只获取特定库存组织和仓库中的盘盈单数据,并且这些数据是在指定日期之后审核通过的。
数据转换与写入
获取到原始数据后,需要对其进行转换和清洗,以便写入目标系统。在这个过程中,可以使用轻易云的数据转换功能,将原始字段映射到目标系统所需的字段格式。例如,将金蝶云星空中的FBillNo
映射为旺店通中的订单编号。
以下是一个简单的数据转换示例:
{
"sourceField": "FBillNo",
"targetField": "OrderNumber"
}
此外,还可以对数据进行必要的清洗操作,例如去除无效字符、格式化日期等。这些操作可以通过轻易云平台提供的内置函数或自定义脚本来实现。
实时监控与错误处理
在整个数据集成过程中,实时监控和错误处理同样重要。轻易云平台提供了详细的日志记录和报警机制,帮助我们及时发现并解决问题。例如,如果某个请求失败,可以通过日志查看具体错误信息,并根据提示进行修正。
总结来说,通过合理配置元数据和过滤条件,我们可以高效地从金蝶云星空获取所需的数据,并利用轻易云平台强大的转换和清洗功能,将其无缝对接到目标系统中。这不仅提升了数据处理效率,也确保了业务流程的顺畅运行。
使用轻易云数据集成平台将金蝶盘盈单转换为旺店通委外入库单
在数据集成的生命周期中,第二步是将已经集成的源平台数据进行ETL(提取、转换、加载)处理。本文将详细探讨如何使用轻易云数据集成平台,将金蝶盘盈单的数据转换为旺店通·企业奇门API接口所能够接收的格式,并最终写入目标平台。
元数据配置解析
在进行ETL处理之前,我们需要理解目标平台API接口的元数据配置。以下是我们需要用到的配置项:
- api:
wdt.vip.wms.stockinout.order.push
,表示调用的API接口。 - method:
POST
,表示HTTP请求的方法。 - idCheck:
true
,表示需要进行ID检查。 - operation: 包含了数据合并和字段映射的信息。
- method:
merge
,表示合并操作。 - field:
FBillNo,FDate,FStockId_FNumber
,表示要合并的字段。 - bodyName:
details_listss
,表示明细列表的名称。 - bodySum:
["F_UHZG_JJQty"]
,表示要汇总的字段。 - header:
["FBillNo","FStockId_FNumber","FBillTypeID","Fnote"]
,表示表头字段。 - body:
["FMaterialId_FNumber","FQty","FPrice","FLOT","F_UHZG_JJQty"]
,表示表体字段。
- method:
请求参数解析
请求参数是API调用时所需的数据结构和内容:
-
api_outer_no
- 类型:string
- 描述:接口外部单号,用于避免重复推送数据
- 值:
{FBillNo}
-
warehouse_no
- 类型:string
- 描述:仓库编号,用于区分不同仓库
- 值:
{FStockId_FNumber}
-
order_type
- 类型:string
- 描述:出入类型,可选值为1(出库)或2(入库)
- 值:
2
-
auto_check
- 类型:string
- 描述:自动审核选项,1为自动审核,0为不自动审核
- 值:
1
-
remark
- 类型:string
- 描述:备注信息
- 值:
{Fnote}
-
goods_list
- 类型:array
- 描述:入库单货品列表节点
- 子节点:
- spec_no
- 类型:string
- 描述:商家编码(SKU)
- 值:
{{details_listss.FMaterialId_FNumber}}
- num
- 类型:string
- 描述:入库数量
- 值:
{{details_listss.F_UHZG_JJQty}}
- price
- 类型:string
- 描述:价格
- 值:
{{details_listss.FPrice}}
- batch_no
- 类型:string
- 描述:批次编号,需要传客户端中存在的批次编号
- remark
- 类型:string
- 描述:货品明细备注
- spec_no
数据转换与写入流程
- 提取源数据
首先,从金蝶盘盈单中提取所需的数据,包括表头和表体信息。表头信息包括单据编号、仓库编号、单据类型和备注等;表体信息包括物料编码、数量、价格、批次号等。
- 数据清洗与转换
根据目标平台API接口要求,对提取的数据进行清洗和转换。例如,将金蝶盘盈单中的物料编码映射到旺店通中的商家编码,将数量字段映射到入库数量字段等。
- 构建请求参数
根据元数据配置构建请求参数。将清洗和转换后的数据填充到相应的请求参数中。例如,将金蝶盘盈单中的单据编号填充到接口外部单号(api_outer_no)中,将仓库编号填充到warehouse_no中等。
- 发送请求
使用HTTP POST方法,将构建好的请求参数发送到旺店通·企业奇门API接口。确保请求成功后,可以通过返回结果确认数据是否成功写入目标平台。
实际案例应用
以下是一个实际案例应用示例:
{
"api": "wdt.vip.wms.stockinout.order.push",
"method": "POST",
"idCheck": true,
"operation": {
"method": "merge",
"field": "FBillNo,FDate,FStockId_FNumber",
"bodyName": "details_listss",
"bodySum": ["F_UHZG_JJQty"],
"header": ["FBillNo", "FStockId_FNumber", "FBillTypeID", "Fnote"],
"body": ["FMaterialId_FNumber", "FQty", "FPrice", "FLOT", "F_UHZG_JJQty"]
},
"request": [
{"field": "api_outer_no", "label": "接口外部单号", "type": "string", "value": "{FBillNo}"},
{"field": "warehouse_no", "label": "仓库编号", "type": "string", "value": "{FStockId_FNumber}"},
{"field": "order_type", "label": "出入类型", "type": "string", "value": 2},
{"field": "auto_check", "label": "自动审核", "type": "string", "value": 1},
{"field": "remark", “label”: “备注”, “type”: “string”, “value”: “{Fnote}”},
{
“field”: “goods_list”,
“label”: “goods_list”,
“type”: “array”,
“children”: [
{“field”: “spec_no”, “label”: “商家编码”, “type”: “string”, “value”: "{{details_listss.FMaterialId_FNumber}}"},
{“field”: “num”, “label”: 入库数量, ”type”: string, ”value”: "{{details_listss.F_UHZG_JJQty}}"},
{“field”: price, ”label”:价格, ”type”: string, ”value”: "{{details_listss.FPrice}}"},
{“field”: batch_no, ”label”: 批次{{details_listss.FLOT}}, ”type”: string},
{“field”: remark, ”label”:备注, ”type”: string}
]
}
],
otherRequest:[{"field":"stockin_info","label":"stockin_info","type":"string"}]
}
通过上述步骤和配置,我们可以实现从金蝶盘盈单到旺店通委外入库单的数据转换与写入。这不仅提高了数据处理效率,还确保了不同系统之间的数据一致性和准确性。