旺店通·企业奇门销售出库单对接金蝶云星空销售订单的实践案例
在实际业务场景中,系统之间的数据集成是一个关键环节。本案例分享了如何将旺店通·企业奇门(简称“旺店通”)的销售出库单数据无缝集成到金蝶云星空中的销售订单。通过轻易云数据集成平台,我们实现了从接口抓取、数据转换到批量写入的一系列技术流程。
确保不漏单:调用wdt.stockout.order.query.trade接口
对于系统间的数据同步,确保数据完整性和实时性至关重要。我们首先调用了旺店通提供的wdt.stockout.order.query.trade
API,该接口可以精确获取每个时间段内生成的所有销售出库单记录。为了避免因网络波动等原因造成的数据遗漏,我们引入了重试机制并记录日志,以确保每一条出库单都能被成功捕获。
高效写入:使用batchSave API进行批量处理
针对大量的数据需要快速、高效地写入到金蝶云星空,我们采用其提供的batchSave
API。这种方式极大地提升了数据写入效率,通过一次性提交多个请求,减少API调用次数。此外,为保证批量操作过程中的可靠性,我们设计了一套错误处理与重试机制,对于失败的批次会自动重新尝试,从而达到高可用性的目标。
数据格式差异及定制化映射
在具体实施过程中,不同系统之间的数据格式差异常常成为障碍。因此,在对接方案中设计了一套灵活的数据映射策略。通过定制化转换规则,将旺店通原始返回的数据结构标准化为符合金蝶云星空要求的格式。同时,这些映射规则支持动态配置和实时更新,确保适应不断变化的业务需求。
以上几个步骤仅是整个对接过程的一部分。在后续内容中,将详细说明分页和限流问题、异常处理与监控机制等技术细节,以全面展示这次跨系统集成项目中的实践经验和解决方案。
调用旺店通·企业奇门接口wdt.stockout.order.query.trade获取并加工数据
在数据集成的生命周期中,调用源系统接口是关键的第一步。本文将详细探讨如何通过轻易云数据集成平台调用旺店通·企业奇门接口wdt.stockout.order.query.trade
来获取销售出库单数据,并进行初步的数据加工。
接口调用配置
首先,我们需要配置接口调用的元数据。以下是针对wdt.stockout.order.query.trade
接口的详细配置:
{
"api": "wdt.stockout.order.query.trade",
"effect": "QUERY",
"method": "POST",
"number": "order_no",
"id": "stockout_id",
"name": "order_no",
"idCheck": true,
"request": [
{
"field": "start_time",
"label": "开始时间",
"type": "datetime",
"describe": "增量获取数据,start_time作为开始时间,格式:yyyy-MM-dd HH:mm:ss",
"value": "{{LAST_SYNC_TIME|datetime}}"
},
{
"field": "end_time",
"label": "结束时间",
"type": "datetime",
"describe": "增量获取数据,end_time作为结束时间,格式:yyyy-MM-dd HH:mm:ss",
"value": "{{CURRENT_TIME|datetime}}"
},
{
"field": "status",
"label": "状态",
"type": "string",
"describe":"5已取消,55已审核,95已发货,105 部分打款,110已完成,113:异常发货",
"value":"95,110"
},
{
...
}
],
...
}
参数说明
- start_time 和 end_time:用于定义增量获取数据的时间范围。
start_time
和end_time
分别表示开始和结束时间。 - status:过滤订单状态,这里我们选择了“95已发货”和“110已完成”。
- 其他字段:如系统订单编号、原始单号、出库单号、店铺编号、仓库编号等,用于进一步细化查询条件。
请求示例
在实际操作中,我们可以通过以下示例请求来获取所需的数据:
{
"start_time": "{{LAST_SYNC_TIME|datetime}}",
"end_time": "{{CURRENT_TIME|datetime}}",
...
}
数据过滤与清洗
在获取到原始数据后,我们需要对其进行初步的过滤和清洗。根据元数据配置中的条件,可以看到以下两个主要过滤条件:
- details_list.brand_name != '赠品'
- shop_no in ('CUST2501', 'CUST2534', 'CUST2426')
这些条件确保我们只处理特定品牌和特定店铺的数据,从而提高了数据处理的效率和准确性。
分页处理
为了处理大批量的数据,我们需要使用分页机制。通过设置分页大小(page_size)和页号(page_no),可以逐页获取数据:
{
...
"page_size":"40",
...
}
自动填充响应
轻易云平台支持自动填充响应功能,这意味着我们不需要手动解析每个字段,而是可以直接使用平台提供的自动映射功能来简化开发过程。
数据加工与转换
在完成初步的数据清洗后,可以根据业务需求进行进一步的数据转换。例如,将销售出库单转换为金蝶销售订单格式。这一步通常涉及字段映射、值转换等操作。
通过以上步骤,我们可以高效地从旺店通系统中提取并加工销售出库单数据,为后续的数据写入和业务处理打下坚实基础。
使用轻易云数据集成平台将旺店通销售出库单转换为金蝶销售订单
在数据集成过程中,ETL(Extract, Transform, Load)是关键步骤之一。在本文中,我们将详细探讨如何使用轻易云数据集成平台,将旺店通的销售出库单数据转换为金蝶云星空API接口所能接收的格式,并最终写入目标平台。
数据请求与清洗
首先,我们从源平台(旺店通)获取销售出库单的数据。假设这些数据已经通过轻易云的数据请求和清洗阶段,准备好进行下一步的转换和写入。
数据转换与写入
在这一阶段,我们需要将清洗后的数据按照金蝶云星空API接口的要求进行转换,并通过API接口将数据写入目标平台。以下是具体的元数据配置及其解析:
{
"api": "batchSave",
"effect": "EXECUTE",
"method": "POST",
"idCheck": true,
"request": [
{
"field": "FBillTypeID",
"label": "单据类型",
"type": "string",
"describe": "单据类型",
"parser": {
"name": "ConvertObjectParser",
"params": "FNumber"
},
"value": "XSDD11_DEF"
},
{
"field": "FBillNo",
"label": "单据编号",
"type": "string",
"describe": "单据编号",
"value": "{src_order_no}"
},
{
...
}
],
...
}
核心字段解析
-
FBillTypeID(单据类型)
- 类型:
string
- 描述:用于指定金蝶系统中的单据类型。
- 转换器:
ConvertObjectParser
,参数为FNumber
,即将源数据的某个字段值映射为金蝶系统中的编码。 - 固定值:
XSDD11_DEF
- 类型:
-
FBillNo(单据编号)
- 类型:
string
- 描述:唯一标识销售订单的编号。
- 值:从源数据中提取,如
{src_order_no}
。
- 类型:
-
FSaleOrgId(销售组织)
- 类型:
string
- 描述:表示销售组织。
- 转换器:
ConvertObjectParser
,参数为FNumber
。 - 值:从源数据中提取并映射,如
{shop_no}
。
- 类型:
-
FCustId(客户)
- 类型:
string
- 描述:表示客户信息。
- 转换器:
ConvertObjectParser
,参数为FNumber
。 - 值:从源数据中提取并映射,如
{shop_no}
。
- 类型:
-
FSaleOrderEntry(订单明细)
- 类型:
array
- 描述:包含订单的详细条目。
- 子字段包括:
- FMaterialId(物料编码):
- 类型:
string
- 转换器:
ConvertObjectParser
- 值:从
details_list.goods_no
提取并映射。 - FQty(销售数量):
- 类型:
string
- 值:从
details_list.goods_count
提取。 ...
- 类型:
特殊逻辑处理
-
库存组织字段 FStockOrgId
{ ... "value":"_findCollection find F_PAEZ_Base2 from adac3655-a3cb-3551-9024-8e7b360f930a where FNumber={{details_list.goods_no}}" ... }
使用
_findCollection find ... where ...
的语法,从指定集合中查找并匹配相应的库存组织。 -
是否赠品字段 FIsFree
{ ... "value":"_function CASE WHEN {{details_list.sell_price}}>0 THEN 'false' ELSE 'true' END" ... }
使用
_function CASE WHEN ... THEN ... ELSE ... END
的语法,根据商品价格判断是否为赠品。
其他配置项
- FormId: 表示业务对象表单ID,如
SAL_SaleOrder
. - Operation: 执行操作类型,如
BatchSave
. - IsAutoSubmitAndAudit: 是否自动提交并审核,布尔值
true
. - IsVerifyBaseDataField: 是否验证基础资料有效性,布尔值
true
.
实际应用案例
假设我们有一批销售出库单需要转换并写入金蝶云星空。我们可以按照上述配置,通过轻易云的数据集成平台实现以下步骤:
- 从旺店通获取原始销售出库单数据。
- 根据元数据配置,将原始数据字段逐一映射和转换为金蝶系统所需格式。
- 调用金蝶云星空API接口,通过POST方法批量保存转换后的销售订单数据。
通过上述步骤,我们能够高效地完成从源平台到目标平台的数据集成任务,实现不同系统间的数据无缝对接。