金蝶云星空数据集成到旺店通·企业奇门的技术实践
在现代业务流程中,通过高效的数据集成实现系统间的信息互通,是提升企业运营效率的重要手段。本案例将介绍如何利用轻易云数据集成平台,将金蝶云星空中的其他入库单数据,高效、准确地同步至旺店通·企业奇门系统。具体实施方案如“金蝶其他入库单=>旺店通其他入库单(ok)”所示。
为了确保整个过程顺利进行,我们通过调用金蝶云星空的API接口executeBillQuery批量获取待处理的入库单数据,并借助轻易云平台对这些数据进行清洗和格式转换,最终调用旺店通·企业奇门提供的wdt.stockin.order.push API接口,实现大量订单信息快速写入。这一过程中,需要特别关注以下几个技术要点:
-
定时可靠的数据抓取:通过配置任务调度机制,确保能够定期从金蝶云星空端拉取最新的其他入库单数据,避免出现漏单情况。
-
分页与限流处理:面对大规模的数据访问需求,妥善处理分页以及API请求限流问题,使得每次执行查询操作都能够稳定、完整地提取目标数据。
-
实时监控和日志记录:在整个集成流程中,全程开启实时监控和日志记录功能,以保证任何环节出现异常都可以被及时发现并加以调整。
-
错误重试机制:对于向旺店通·企业奇门推送订单时可能发生的一些网络或服务端故障,通过设置合理的错误重试策略,进一步提高了成功率并减少手动干预需求。
-
异构系统间的数据格式匹配:由于两个系统之间存在一定的数据格式差异,在映射规则设计上,我们针对各字段类型进行了精细化定义,以确保原始数据信息无损传输。
调用金蝶云星空接口executeBillQuery获取并加工数据
在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用金蝶云星空接口executeBillQuery
,获取并加工其他入库单的数据。
接口配置与请求参数
首先,我们需要配置元数据,以便正确调用金蝶云星空的API接口。以下是关键的元数据配置:
{
"api": "executeBillQuery",
"method": "POST",
"number": "FBillNo",
"id": "FEntity_FEntryID",
"pagination": {
"pageSize": 500
},
"idCheck": true,
"condition_bk": [
[
{
"field": "FBillTypeID",
"logic": "in",
"value": "ZYD-037,ZYD-113,ZYD-102"
}
]
],
...
}
该配置指定了API名称为executeBillQuery
,请求方法为POST
,并且启用了分页,每页大小为500条记录。同时,通过条件过滤(如单据类型FBillTypeID
)来限定查询范围。
请求字段
请求字段定义了我们需要从金蝶云星空获取的数据项。以下是部分关键字段的配置:
{
"request": [
{
"field": "FEntity_FEntryID",
"label": "FEntryID",
"type": "string",
"value": "FEntity_FEntryID"
},
{
"field": "FID",
...
},
{
...
}
]
}
这些字段包括实体主键、单据编号、单据状态、库存组织、日期等信息,这些都是在后续数据处理和转换过程中所需的重要数据。
分页与过滤条件
为了高效地处理大量数据,我们使用分页和过滤条件来优化查询。分页参数如下:
{
...
"otherRequest": [
{
...
},
{
...
},
{
...
},
{
...
},
{
...
}
]
}
其中,Limit
和StartRow
分别表示每页最大行数和起始行索引,而过滤条件则通过FilterString
字段来定义。例如:
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
FilterString: `FApproveDate>='{{LAST_SYNC_TIME|datetime}}' and FStockOrgId.FNumber in ( '7000','3000') and (FBillTypeID.FNumber='ZYD-037' or FBillTypeID.FNumber='ZYD-102') and FSTOCKID.FNumber in ('1007','1008','1098','1099','1100')`
}`
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}`
}`
}`
}`
}`
}`
}`
}`
}`
}`
}`
}`
}]
}
数据清洗与转换
在获取到原始数据后,需要进行数据清洗与转换,以确保其符合目标系统的要求。例如,将日期格式统一、去除无效字符等操作。这一步骤可以通过轻易云平台提供的数据处理工具来实现。
写入目标系统
最后,将清洗和转换后的数据写入目标系统(如旺店通)。这一过程通常涉及到调用目标系统的API接口,并确保数据格式和内容符合其要求。
通过上述步骤,我们能够高效地从金蝶云星空获取其他入库单的数据,并将其加工后写入目标系统,实现不同系统间的数据无缝对接。这不仅提高了业务透明度和效率,还确保了数据的一致性和准确性。
基于轻易云数据集成平台的ETL转换:金蝶其他入库单到旺店通·企业奇门API接口
在数据集成生命周期的第二步中,我们需要将已经集成的源平台数据进行ETL(Extract, Transform, Load)转换,以确保这些数据能够被目标平台——旺店通·企业奇门API接口所接收并处理。本文将深入探讨如何使用轻易云数据集成平台配置元数据,实现从金蝶其他入库单到旺店通其他入库单的无缝转换和写入。
元数据配置解析
我们将通过以下元数据配置完成数据的转换和写入:
{
"api": "wdt.stockin.order.push",
"effect": "EXECUTE",
"method": "POST",
"operation": {
"method": "merge",
"field": "FBillNo,FDate,FSTOCKID",
"bodyName": "details_listss",
"bodySum": ["F_UHZG_JJQty"],
"header": ["FBillNo", "FSTOCKID", "FBillTypeID", "FNOTE"],
"body": ["FMATERIALID_FNumber", "F_UHZG_JJQty", "FPrice", "FLOT", "FEntryNote"]
},
"idCheck": true,
"request": [
{"field": "outer_no", "label": "外部单号", "type": "string", "value": "{FBillNo}"},
{"field": "warehouse_no", "label": "仓库编号", "type": "string", "value": "{FSTOCKID}"},
{"field": "remark", "label": "备注", "type": "string", "value": "{FNOTE}"},
{"field": "is_check", "label": "是否审核", "type": "string", “value”: “1”},
{"field":"reason","label":"入库原因","type":"string","value":"_function CASE '{FBillTypeID}' WHEN 'ZYD-037' THEN '赠品其他入库' WHEN 'ZYD-102' THEN '无头件退货入库' END"},
{
“field”: “goods_list”,
“label”: “货品明细节点”,
“type”: “array”,
“value”: “details_listss”,
“children”: [
{"field":"spec_no","label":"商家编码","type":"string","value":"{{details_listss.FMATERIALID_FNumber}}"},
{"field":"stockin_num","label":"入库数量","type":"string","value":"{{details_listss.F_UHZG_JJQty}}"},
{"field":"src_price","label":"原价","type":"string","value":"1"},
{"field":"stockin_price","label":"入库价","type":"string","value":"{{details_listss.FPrice}}"},
{"field":"batch_no","label":"批次{{details_listss.FLOT}}","type":"string"},
{"field":"remark","label":"备注","type":"string","value":"{{details_listss.FEntryNote}}"}
]
}
],
“otherRequest”: [
{“field”: “stockin_info”, “label”: “stockin_info”, “type”: “string”, “describe”: “111”}
]
}
数据转换与写入过程
-
请求参数构建:
outer_no
对应金蝶中的FBillNo
,即外部单号。warehouse_no
对应金蝶中的FSTOCKID
,即仓库编号。remark
对应金蝶中的FNOTE
,即备注信息。is_check
固定为"1"
,表示是否审核。reason
根据FBillTypeID
字段的值进行条件判断,分别映射为不同的入库原因。
-
货品明细节点:
- 使用数组结构来表示多个货品明细,其中每个子项包含以下字段:
spec_no
对应金蝶中的FMATERIALID_FNumber
,即商家编码。stockin_num
对应金蝶中的F_UHZG_JJQty
,即入库数量。src_price
固定为"1"
,表示原价。stockin_price
对应金蝶中的FPrice
,即入库价。batch_no
对应金蝶中的FLOT
,即批次号。remark
对应金蝶中的FEntryNote
,即备注信息。
- 使用数组结构来表示多个货品明细,其中每个子项包含以下字段:
-
操作方法:
- 使用
"merge"
方法,通过指定的字段(如FBillNo
,FDate
,FSTOCKID
)进行合并操作,以确保数据的一致性和完整性。
- 使用
-
其他请求参数:
- 添加额外的请求参数,如
"stockin_info"
用于描述额外的信息。
- 添加额外的请求参数,如
实际应用案例
假设我们有以下来自金蝶系统的数据:
{
FBillNo: 'KD20231001',
FDate: '2023-10-01',
FSTOCKID: 'WH001',
FBillTypeID: 'ZYD-037',
FNOTE: '测试备注',
details_listss: [
{
FMATERIALID_FNumber: 'MAT001',
F_UHZG_JJQty: '100',
FPrice: '50',
FLOT: 'BATCH001',
FEntryNote: '条目备注'
}
]
}
通过上述元数据配置,我们可以生成如下符合旺店通·企业奇门API接口格式的数据:
{
outer_no: 'KD20231001',
warehouse_no: 'WH001',
remark: '测试备注',
is_check: '1',
reason: '赠品其他入库',
goods_list: [
{
spec_no: 'MAT001',
stockin_num: '100',
src_price: '1',
stockin_price: '50',
batch_no: 'BATCH001',
remark: '条目备注'
}
],
stockin_info: ‘111’
}
总结
通过详细解析和应用元数据配置,我们成功实现了从金蝶其他入库单到旺店通·企业奇门API接口的数据ETL转换。这不仅保证了数据的一致性和准确性,也提高了系统间的数据交互效率。利用轻易云数据集成平台,我们能够高效地完成复杂的数据集成任务,为企业提供强有力的数据支持。