管易云·奇门数据集成到金蝶云星空:销售退货同步案例
在本篇技术案例中,我们将分享如何利用轻易云数据集成平台,将管易云·奇门的退货单信息无缝对接至金蝶云星空系统,实现销售退货数据的高效同步。具体方案名称为“管易退货单-->金蝶销售退货单(销售退货同步-手工运维-2)”。这个过程中,主要涉及两个关键API接口:从管易云·奇门获取数据的gy.erp.trade.return.get
和向金蝶云星空写入数据的batchSave
。
为了确保整个流程的顺畅执行,我们采用了以下几项关键技术措施:
-
高吞吐量的数据写入能力:
- 使用批量集成功能来处理大规模的数据,使得大量来自管易云·奇门的退货单能够快速写入到金蝶云星空。这不仅提升了效率,还减少了可能的数据积压情况。
-
实时监控与告警系统:
- 集成过程中的每一个环节都受到集中监控,一旦出现任何异常或性能问题,系统会立即触发告警机制,以保证故障能够及时被发现和解决。
-
自定义数据转换逻辑:
- 根据实际业务需求,对从管易云·奇门获取的原始数据信息进行必要的转换,以适应金蝶云星空的数据格式要求。这一步通过可视化的数据流设计工具完成,使得转换逻辑直观且容易管理。
-
分页和限流处理:
- 在调用
gy.erp.trade.return.get
接口时,为避免超出API请求限制及保障稳定性,我们采取了分页查询并设置合理限流策略,确保每次接口调用既不会被拒绝,也能满足性能要求。
- 在调用
-
错误重试机制与日志记录:
- 针对可能发生的数据传输错误,如网络不稳等,通过实现错误重试机制,可以自动重新尝试失败操作。同时,通过详细日志记录整个过程中的各类事件,便于后续审计和问题分析。
此次技术实施,不仅有效解决了跨系统间复杂的数据整合问题,还使企业日常运营中的销售退货处理更加高效可靠。在下文中,我们将详细阐述每一个步骤以及具体代码实现细节。
调用源系统管易云·奇门接口gy.erp.trade.return.get获取并加工数据
在数据集成的生命周期中,调用源系统接口是关键的第一步。本文将详细介绍如何通过轻易云数据集成平台调用管易云·奇门接口gy.erp.trade.return.get
,获取并加工退货单数据。
接口配置与请求参数
为了实现从管易云·奇门获取退货单数据,我们需要配置相应的API接口和请求参数。以下是元数据配置中的关键部分:
{
"api": "gy.erp.trade.return.get",
"method": "POST",
"number": "code",
"id": "code",
"pagination": {"pageSize": 100},
"idCheck": true,
"request": [
{"field": "code", "label": "单据编号", "type": "string"},
{"field": "start_create", "label": "创建时间开始段", "type": "datetime"},
{"field": "end_create", "label": "创建时间结束段", "type": "datetime"},
{"field": "in_begin_time", "label": "入库时间开始段", "type": "datetime"},
{"field": "in_end_time", "label": "入库时间结束段", "type":"datetime"},
{"field":"shop_code","label":"店铺代码","type":"string"},
{"field":"drp_tenant_name","label":"分销商名称","type":"string"},
{"field":"platform_code","label":"平台单号","type":"string"},
{"field":"return_type","label":"退货类型代码","type":"string"},
{"field":"express_no","label":"快递单号","type":"string"},
{"field":"vip_name","label":"会员名称","type":"string"},
{"field":"agree","label":"同意状态","type":"string"},
{"field":"receive","label":"入库状态","type":"string",
"value":"1"}, // 默认值为1,表示已入库
{"field":"cancel","label":"作废状态","type":"string"},
{"field":"no_parcel","label":"是否三无包裹","type":
"string"},
{"field":
"receiver_name",
"label":
"退货人姓名",
"type":
"string"
},
{
"field":
"receiver_phone",
"label":
"退货人手机",
"type":
"string"
},
{
"field":
"warehousein_code",
"label":
"退入仓库代码",
"type":
"string"
},
{
"field":
"warehouseout_code",
"label":
"退出仓库代码",
"type":
"string"
},
{
"field":
"modify_start_date",
"label":
"修改时间开始段",
"type":
string,
value:
"{{LAST_SYNC_TIME|datetime}}"
},
{
field:
modify_end_date,
label:
modify_time_end_segment,
type:
string,
value:
CURRENT_TIME|datetime
}
],
otherRequest: [
{
field: page_no,
label: 页码,
type: string,
describe: 默认为1,
value: {PAGINATION_START_PAGE}
},
{
field: page_size,
label: 每页大小,
type: string,
describe: 默认为10,
value: {PAGINATION_PAGE_SIZE}
}],
autoFillResponse: true
}
请求参数详解
- code:单据编号,用于唯一标识每个退货单。
- start_create / end_create:创建时间的起止范围,用于筛选特定时间段内的退货单。
- in_begin_time / in_end_time:入库时间的起止范围。
- shop_code:店铺代码,用于区分不同店铺的数据。
- drp_tenant_name:分销商名称。
- platform_code:平台单号。
- return_type:退货类型代码。
- express_no:快递单号。
- vip_name:会员名称。
- agree:同意状态。
- receive:入库状态,默认值为1,表示已入库。
- cancel:作废状态。
- no_parcel:是否三无包裹。
- receiver_name / receiver_phone:退货人姓名和手机号码。
- warehousein_code / warehouseout_code:退入和退出仓库代码。
- modify_start_date / modify_end_date:修改时间的起止范围,分别使用上次同步时间和当前时间。
数据过滤与分页处理
在实际操作中,我们可能需要对返回的数据进行过滤和分页处理。元数据配置中包含了分页参数page_no
和page_size
,默认每页大小为10条记录,可以根据需求调整。
此外,通过条件过滤(condition_bk),可以排除不符合条件的数据。例如:
[
[{"field":
platform_code,
logic: notlike,
value: CKSQ},
{ field : platform_code, logic : notlike, value : XXXSDD },
{ field : approve , logic : eqv2 , value : 1 },
{ field : shop_code , logic : neqv2 , value : CB0066 },
{ field : shop_code , logic : neqv2 , value : SXF001 },
{ field : order_type_name , logic : notlike , value : 维修 }]
]
这些条件确保了我们只获取符合业务需求的数据,提高了数据处理的效率和准确性。
数据清洗与转换
在获取到原始数据后,需要进行清洗和转换,以便后续写入目标系统。轻易云平台提供了强大的数据清洗功能,可以自动填充响应字段(autoFillResponse),并根据预定义规则进行转换。
例如,将日期格式统一转换为目标系统所需的格式,将字符串字段去除空格或特殊字符等。这些操作可以通过轻易云平台的可视化界面轻松完成,无需编写复杂的代码。
实时监控与日志记录
为了确保数据集成过程的透明度和可追溯性,轻易云平台提供了实时监控和日志记录功能。每次API调用、数据清洗和转换操作都会被详细记录,并可以随时查看。这有助于快速定位问题并进行调试,提高整体效率。
通过上述步骤,我们可以高效地从管易云·奇门接口获取并加工退货单数据,为后续的数据写入和业务处理打下坚实基础。在整个过程中,充分利用轻易云平台提供的元数据配置和可视化工具,可以极大简化操作流程,提高工作效率。
将管易退货单数据转换并写入金蝶云星空API接口
在数据集成过程中,数据的ETL(提取、转换、加载)是至关重要的一环。本文将详细探讨如何利用轻易云数据集成平台,将从管易系统提取的退货单数据,转换为金蝶云星空API接口所能接收的格式,并最终写入目标平台。
1. API接口配置
首先,我们需要配置金蝶云星空的API接口。根据元数据配置,使用batchSave
方法进行批量保存操作。以下是主要的配置参数:
- api:
"batchSave"
- method:
"POST"
- effect:
"EXECUTE"
- idCheck:
true
2. 请求参数解析
请求参数包含多个字段,每个字段都有具体的解析和映射规则。以下是几个关键字段的解析:
单据类型(FBillTypeID)
{
"field": "FBillTypeID",
"label": "单据类型",
"type": "string",
"describe": "单据类型",
"parser": {
"name": "ConvertObjectParser",
"params": "FNumber"
},
"value": "_findCollection find order_type_name from 7723935e-2816-3e02-8989-bb0df0b07b86 where code={order_code}",
"mapping": {
"target": "65af5c453b91c238504d3a58",
"direction": "positive"
}
}
这里使用了ConvertObjectParser
进行对象转换,通过order_code
从指定集合中查找对应的order_type_name
。
销售组织(FSaleOrgId)
{
"field": "FSaleOrgId",
"label": "销售组织",
"type": "string",
"describe": "销售组织",
"parser": {
"name": "ConvertObjectParser",
"params": "FNumber"
},
"value": "_function CASE '{shop_code}' WHEN 'SXF001' THEN '103' WHEN 'SXF002' THEN '103' WHEN 'SXF003' THEN '103' WHEN 'SXF004' THEN '103' WHEN 'SXF005' THEN '103' WHEN 'SXF006' THEN '103' ELSE '100' END"
}
通过函数判断shop_code
来确定销售组织ID,这里使用了条件判断语句来进行映射。
库存组织(FStockOrgId)
{
"field": "FStockOrgId",
"label": "库存组织",
"type": "string",
"describe": "库存组织",
...
}
库存组织与销售组织类似,也通过条件判断语句映射。
3. 明细信息处理
明细信息部分包含多个子字段,每个子字段也有相应的解析和映射规则。例如:
物料编码(FMaterialId)
{
...
{
"field":"FMaterialId",
...
,"value":"_findCollection find FNumber from a430738b-c21a-3683-832c-4b519dc241ba where F_UQRW_Text={{details.item_code}}"
...
}
}
通过物料编码从指定集合中查找对应的物料编号。
实退数量(FRealQty)
{
...
{
...
,"value":"{{details.real_in}}"
...
}
}
直接使用明细中的实际退货数量。
4. 执行操作
最后,需要设置执行操作参数:
{
...
{"field":"FormId","label":"业务对象表单Id","type":"string","describe":"必须填写金蝶的表单ID如:PUR_PurchaseOrder","value":"SAL_RETURNSTOCK"},
{"field":"Operation","label":"执行的操作","type":"string","describe":"执行的操作","value":"BatchSave"},
{"field":"IsAutoSubmitAndAudit","label":"提交并审核","type":"bool","describe":"提交并审核","value":"true"},
{"field":"IsVerifyBaseDataField","label":"验证基础资料","type":"bool","describe":"是否验证所有的基础资料有效性,布尔类,默认false(非必录)","value":"true"}
}
这些参数确保了数据在写入金蝶云星空时能够自动提交并审核,同时验证基础资料的有效性。
总结
通过上述步骤,我们实现了从管易系统提取退货单数据,并通过轻易云数据集成平台,将其转换为金蝶云星空API接口所能接收的格式,并最终成功写入目标平台。这一过程不仅提高了数据处理效率,还确保了数据的一致性和准确性。