金蝶云星空销售出库数据到旺店通·企业奇门的高效集成方案
在本案例中,我们将探讨如何通过技术手段实现金蝶云星空与旺店通·企业奇门两大系统的数据对接。利用轻易云数据集成平台,我们成功创建并运行了名为“星空销售出库(欧派)-旺店通原始订单_copy”的解决方案,极大地提升了数据处理和业务透明度。
首先,该集成方案有效利用了金蝶云星空API的executeBillQuery来抓取实时销售出库数据。这保证了源端数据能够准确无误地被获取。而在目标端,通过使用旺店通·企业奇门提供的wdt.trade.push API接口,实现批量、高速的数据写入。
为了确保整个集成过程中的稳定性及效率,多个技术要点得到了精细设计与优化:
- 分页和限流处理:由于API调用频率及单次获取记录数有限制,我们通过分页方式分步获取全量数据,并采用限流机制防止过多请求导致接口性能下降。
- 自定义转换逻辑:考虑到两个系统之间可能存在的数据格式差异,通过定制化的映射规则,对抓取到的数据进行必要的字段转换与重组,使之符合目标系统要求。
- 异常检测与重试机制:支持对接过程中出现异常情况时进行自动检测,并触发重试策略,如网络波动或接口响应超时等问题,以提高任务执行成功率。
同时,本方案融合了一系列优异特性,例如高吞吐量能力使得我们的订单信息能快速写入目标系统;集中监控和告警功能则保证我们可以实时掌握每一个操作环节,大幅度减少意外事件发生。此外,针对关键业务场景还加强了日志记录,以便于问题追溯和分析优化。
这样的配置不仅满足了当前业务需求,更为未来可能扩展打下坚实基础。在后续内容中,将进一步详细说明具体实施步骤、参数配置以及实际运行效果。
调用金蝶云星空接口executeBillQuery获取并加工数据
在数据集成过程中,调用源系统的API接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用金蝶云星空的executeBillQuery
接口,获取并加工销售出库单的数据。
接口调用配置
首先,我们需要配置接口调用的元数据。以下是关键的元数据配置项:
- api:
executeBillQuery
- method:
POST
- number:
FBillNo
- id:
FEntity_FENTRYID
- pagination:
{"pageSize":100}
- beatFlat:
["FEntry"]
- idCheck:
true
这些配置项定义了接口的基本信息和分页参数。executeBillQuery
是一个POST请求,分页大小为100条记录,并且需要对返回的数据进行扁平化处理。
请求参数配置
在请求参数中,我们需要根据业务需求选择合适的字段。以下是一些关键字段及其描述:
[
{"field":"FBillTypeID_FNumber","label":"单据类型","type":"string","describe":"单据类型","value":"FBillTypeID.FNumber"},
{"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"FBillNo"},
{"field":"FDate","label":"日期","type":"string","describe":"日期","value":"FDate"},
{"field":"FSaleOrgId_FNumber","label":"销售组织","type":"string","describe":"组织","value":"FSaleOrgId.FNumber"},
{"field":"FCustomerID_FNumber","label":"客户编码","type":"string","describe":"基础资料","value":"FCustomerID.FNumber"},
{"field":"FCustomerID_FName","label":"客户名称","type":"string","describe":"基础资料","value":"FCustomerID.FName"}
]
这些字段涵盖了单据类型、单据编号、日期、销售组织、客户编码和客户名称等信息。在实际应用中,可以根据具体需求添加或删除字段。
分页参数
为了处理大量数据,我们需要设置分页参数:
[
{"field": "Limit", "label": "最大行数", "type": "string", "describe": "金蝶的查询分页参数", "value": "{PAGINATION_PAGE_SIZE}"},
{"field": "StartRow", "label": "开始行索引", "type": "string", "describe": "金蝶的查询分页参数", "value": "{PAGINATION_START_ROW}"},
{"field": "TopRowCount", "label": "返回总行数", "type": "int", "describe": "金蝶的查询分页参数"}
]
这些参数确保每次请求都能正确地获取到指定范围内的数据,并支持多次请求以完成全量数据的提取。
过滤条件
为了提高查询效率,可以设置过滤条件。例如,只查询最近同步时间之后且状态为“已审核”的记录:
[
{
"field": "FilterString",
"label": "过滤条件",
"type": "string",
"describe": "示例写法 FSupplierId.FNumber = 'VEN00010' and FApproveDate>=",
"value":
"FCreateDate>='{{LAST_SYNC_TIME|datetime}}' and FDocumentStatus='A' and F_VTRK_Assistant <> '' and F_VTRK_Text11 <> '' and F_VTRK_Text12 <> '' and F_VTRK_Text13 <> '' and F_VTRK_Text10 =''"
}
]
这个过滤条件确保只提取符合特定条件的数据,从而减少不必要的数据传输,提高效率。
字段键集合
最后,需要定义需查询的字段键集合:
[
{
"field":
{
name: 'ArrayToString',
params: ','
},
label: '需查询的字段key集合',
type: 'array',
describe: '金蝶分录主键ID格式:FPOOrderEntry_FEntryId,其它格式 FPurchaseOrgId.FNumber'
}
]
该配置项将所有需查询的字段转换为字符串,以便在API请求中使用。
数据处理与写入
在获取到数据后,需要对其进行清洗和转换,然后写入目标系统。这一步通常包括以下操作:
- 数据清洗:去除无效或重复的数据。
- 数据转换:将源系统的数据格式转换为目标系统所需的格式。
- 数据写入:将处理后的数据写入目标系统,如数据库或另一个API接口。
通过上述步骤,我们可以高效地从金蝶云星空获取销售出库单的数据,并进行必要的加工处理,以满足业务需求。
轻易云数据集成平台生命周期第二步:ETL转换与写入旺店通·企业奇门API接口
在轻易云数据集成平台中,数据处理的第二步是将已经集成的源平台数据进行ETL(提取、转换、加载)转换,并最终写入目标平台。在本案例中,我们将探讨如何将星空销售出库(欧派)的原始订单数据转换为旺店通·企业奇门API接口所能接收的格式,并写入到目标平台。
数据提取与清洗
首先,我们从源系统中提取原始订单数据。假设我们已经完成了第一步的数据请求与清洗,这些数据现在已经被整合到一个统一的格式中,准备进行进一步的转换和写入操作。
数据转换
在数据转换阶段,我们需要根据旺店通·企业奇门API接口的要求,将提取的数据映射到相应的字段。这一步骤主要涉及字段名称的映射、数据格式的调整以及必要的数据合并操作。以下是详细的元数据配置:
{
"api": "wdt.trade.push",
"method": "POST",
"operation": {
"method": "merge",
"field": "F_VTRK_Text,F_VTRK_Text1,F_VTRK_Text3,F_VTRK_Text2,F_VTRK_Text8,FMaterialID.FNumber,FEntity_FENTRYID",
"bodyName": "details_list",
"bodySum": ["FRealQty"],
"header": ["FBillNo","FCustomerID_FName","FDate","FID","F_VTRK_Assistant"],
"body": ["FEntry_FMaterialID_FNumber","bfn_id","FEntry_FRealQty","FTaxPrice","F_VTRK_Text11","F_VTRK_Text12","F_VTRK_Text13","F_VTRK_Text","F_VTRK_Text1","F_VTRK_Text2","F_VTRK_Text3","F_VTRK_Text6","F_VTRK_Text9","FEntry_FMaterialName","FAllAmount","FStockID_FNumber","FEntity_FENTRYID"]
},
"request": [
{
"field": "tid",
"label": "原始单号",
"type": "string",
"describe": "指商城、官网等平台的订单编号,ERP称之为原始单号,同一个sid下通过本接口新增订单的tid保证唯一。",
"value": "{{details_list.F_VTRK_Text}}-{{details_list.FEntity_FENTRYID}}_{FID}",
"parent": "trade_list"
},
{
"field": "trade_status",
...
在这个配置中,我们定义了如何将源系统中的字段映射到目标系统中的字段。例如:
tid
(原始单号)由{{details_list.F_VTRK_Text}}-{{details_list.FEntity_FENTRYID}}_{FID}
生成。buyer_nick
(客户网名)直接映射为{FCustomerID_FName}
。receiver_name
(收件人)映射为{{details_list.F_VTRK_Text1}}
。
通过这种方式,我们确保每个字段都能正确地映射到目标系统所需的位置。
数据加载
最后一步是将转换后的数据通过API接口写入到旺店通·企业奇门。我们使用HTTP POST方法调用 wdt.trade.push
接口,将转换后的JSON数据发送到目标系统。
{
...
{
"field":"order_list",
...
{"field":"oid", ...},
{"field":"num", ...},
{"field":"price", ...},
{"field":"status", ...},
{"field":"refund_status", ...},
{"field":"goods_id", ...},
{"field":"spec_id", ...},
{"field":"goods_no", ...},
{"field":"spec_no", ...},
{"field":"goods_name", ...}
}
}
在这个过程中,确保所有必须字段都被正确填充,并且符合API接口文档中的要求。例如,子订单列表中的每个子订单需要包含 oid
(子订单编号)、num
(数量)、price
(单价)等字段。
通过上述步骤,我们成功地将源平台的数据经过ETL转换后写入到了目标平台,实现了不同系统间的数据无缝对接。这不仅提高了业务流程的自动化程度,也确保了数据的一致性和准确性。