金蝶云星空数据集成案例分享:其他入库单--销售退货单(虚拟客户1元)-箱包TW
在本技术案例中,我们聚焦于如何成功将金蝶云星空系统的数据无缝对接到另一套金蝶云星空系统。具体的数据对接任务为:“其他入库单--销售退货单(虚拟客户1元)-箱包TW”。这一过程涉及从一个金蝶云星空实例中获取数据,并通过API接口executeBillQuery完成数据抓取,再利用batchSave API将大量的处理后数据快速写入目标系统。
实现此方案的挑战主要集中在以下几个方面:
高吞吐量的数据写入能力
为了确保大批量的“销售退货单”数据能够迅速而准确地导入目标金蝶云星空系统,我们采用了并行处理和批量操作。这不仅提升了效率,还确保了时效性,尤其是在面对日常业务高峰期时可以保障稳定运行。
集中的监控和告警机制
实时跟踪每个数据集成任务的状态,对于整个流程异常情况进行预警尤为关键。在实施过程中,通过配置灵活且可靠的监控与告警体系,使得我们能及时发现并解决潜在问题,从而保证全程透明、可控。
自定义数据转换逻辑
由于不同业务模块之间可能存在着复杂的数据结构差异,我们设计了一套适应特定需求的自定义转换逻辑。这一部分不仅涵盖字段映射,更包括复杂格式化规则,以确保执行后的数据信息能够完全满足下游系统要求,避免出现因格式不统一导致的数据落差或错误。
通过全面结合上述技术要点,本次跨实例间的数据对接项目已然顺利上线,不仅提升了企业整体运营效率,也增强了其数字化管理能力。后续章节中,将详细解读具体实现步骤及注意事项。
调用金蝶云星空接口executeBillQuery获取并加工数据
在数据集成过程中,调用源系统的API接口是至关重要的一步。本文将详细介绍如何通过轻易云数据集成平台调用金蝶云星空的executeBillQuery
接口来获取并加工数据。
接口配置与请求参数
首先,我们需要配置调用金蝶云星空接口的元数据。以下是元数据配置的详细内容:
{
"api": "executeBillQuery",
"method": "POST",
"number": "FBillNo",
"id": "FEntity_FEntryID",
"pagination": {
"pageSize": 500
},
"idCheck": true,
"request": [
{"field":"FEntity_FEntryID","label":"FEntryID","type":"string","value":"FEntity_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":"FSUPPLIERID_FNumber","label":"供应商","type":"string","value":"FSUPPLIERID.FNumber"},
{"field":"FNOTE","label":"备注","type":"string","value":"FNOTE"},
{"field":"FMATERIALID_FNumber","label":"物料编码","type":"string","value":"FMATERIALID.FNumber"},
{"field":"FSTOCKID","label":"收货仓库","type":"string","value":"FSTOCKID"},
{"field": "FQty", "label": "实收数量", "type": "string", "value": "FQty"},
{"field": "FPrice", "label": "成本价", "type": "string", "value": "FPrice"},
{"field": "FAmount", "label": "总成本", "type": "string", "value": "FAmount"},
{"field": "FBOMID", "label": "BOM版本", "type": "string", "value": "FBOMID"},
{"field": "FPRODUCEDATE", "label": "生产日期", "type": "string", "value": "FPRODUCEDATE"},
{"field": "FEXPIRYDATE", "label": “有效期至”, “type”: “string”, “value”: “FEXPIRYDATE”},
// ... (省略部分字段)
],
“otherRequest”: [
{“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”:” FDate >='{{LAST_SYNC_TIME|date}}' and FBillTypeID.FNumber='QTRKD07_SYS' and FStockOrgId.FNumber= '202' ”},
{“ field”:” FieldKeys”, ” label”: ”需查询的字段key集合”, ” type”: ” array”, ” describe”: ”金蝶分录主键 ID 格式: FPOOrderEntry_FEntryId,其它格式 FPurchaseOrgId.FNumber”,“ parser”:{“ name”: ”ArrayToString”,“ params”:”,“}},
{“ field”: ”FormId”, ” label”: ”业务对象表单 Id”, ” type”: ” string”,“ describe”: ”必须填写金蝶的表单 ID 如: PUR_PurchaseOrder”,“ value”: ”STK_MISCELLANEOUS”
]
}
请求与响应处理
- 构建请求:根据元数据配置,我们需要构建一个POST请求,包含必要的字段和过滤条件。以下是一个示例请求体:
{
"_FormId_ ": "_STK_MISCELLANEOUS_",
"_FieldKeys_ ": "_FID,FBillNo,FDocumentStatus,FStockOrgId.FNumber,FDate,FBillTypeID,FSUPPLIERID.FNumber,FNOTE,FMATERIALID.FNumber,FSTOCKID,FQty,FPrice,FAmount,FBOMID,FPRODUCEDATE,FEXPIRYDATE_",
"_FilterString_ ": "_ FDate >='2023-01-01' and FBillTypeID.FNumber='QTRKD07_SYS' and FStockOrgId.FNumber= '202'_",
"_Limit_ ": "_500_",
"_StartRow_ ": "_0_"
}
-
发送请求:通过轻易云平台发送上述POST请求到金蝶云星空API。
-
处理响应:接收到响应后,需要对数据进行解析和清洗。假设返回的数据如下:
{
"_Result_ ": [
{
"_FID_ ": "_1001_ ",
"_FBillNo_ ": "_XT12345678_ ",
"_FDocumentStatus_ ": "_C_ ",
// ... (省略部分字段)
},
// ... (更多记录)
]
}
-
数据清洗与转换:对接收到的数据进行必要的清洗和转换。例如,将日期格式统一、去除无效字符等。
-
写入目标系统:将清洗后的数据写入目标系统,完成数据集成过程。
注意事项
- 分页处理:由于每次请求最多返回500条记录,需要进行分页处理,确保所有数据都能被获取。
- 错误处理:在调用API时,需要考虑网络异常、接口返回错误等情况,并进行相应的错误处理和重试机制。
- 性能优化:在大规模数据集成场景下,合理设置分页大小、并发请求数等参数,以提升整体性能。
通过上述步骤,我们可以高效地调用金蝶云星空接口executeBillQuery
获取并加工数据,为后续的数据转换与写入打下坚实基础。
使用轻易云数据集成平台实现金蝶云星空API接口的数据ETL转换
在数据集成生命周期的第二步中,我们需要将已经集成的源平台数据进行ETL(提取、转换、加载)转换,使其符合目标平台金蝶云星空API接口所能够接收的格式,并最终写入目标平台。本文将详细探讨如何通过轻易云数据集成平台完成这一过程。
配置元数据
首先,我们需要根据提供的元数据配置,定义好请求参数和字段映射关系。以下是元数据配置的一部分:
{
"api": "batchSave",
"method": "POST",
"idCheck": true,
"operation": {
"method": "merge",
"field": "FBillNo,FDate,FBillTypeID,FSUPPLIERID_FNumber,FDEPTID,FDJZDYyongtu_FNumber,F_POIH_Text_FNumber",
"bodyName": "details",
"bodySum": ["FQty"],
"header": ["FBillNo", "FDate", "FBillTypeID", "FSUPPLIERID_FNumber", "FDEPTID", "FDJZDYyongtu_FNumber",
"FStockOrgId_FNumber", "F_POIH_Text_FNumber", "FNOTE"],
"body": ["FMATERIALID_FNumber", "FQty", "FStockOrgId_FNumber", "FEntryNote"]
},
...
}
数据提取与清洗
在ETL过程的提取阶段,我们从源系统中获取原始数据。假设我们有如下源数据:
{
"FBillNo": "20231001",
"FDate": "2023-10-01",
...
}
这些原始数据需要经过清洗和标准化,以确保其符合目标系统的要求。例如,将日期格式标准化为YYYY-MM-DD
,将数值字段转换为适当的数据类型等。
数据转换
接下来是关键的转换阶段。我们需要根据元数据配置,将源数据映射到目标系统所需的格式。以下是一些关键字段的映射示例:
-
单据类型(FBillTypeID):
- 源数据:无
- 转换后:
"XSTHD01_SYS"
-
单据编号(FBillNo):
- 源数据:
"20231001"
- 转换后:
"20231001"
- 源数据:
-
日期(FDate):
- 源数据:
"2023-10-01"
- 转换后:
"2023-10-01"
- 源数据:
-
库存组织(FStockOrgId):
- 源数据:无
- 转换后:
"126"
-
明细信息(FEntity):
- 源数据:
[ {"FMATERIALID_FNumber": "MAT001", ...}, {"FMATERIALID_FNumber": "MAT002", ...} ]
- 转换后:
[ {"FMATERIALID_FNumber": "{{details.FMATERIALID_FNumber}}", ...}, {"FMATERIALID_FNumber": "{{details.FMATERIALID_FNumber}}", ...} ]
- 源数据:
数据写入
最后一步是将转换后的数据通过API接口写入金蝶云星空系统。根据元数据配置,我们使用batchSave
API,并通过POST方法提交请求。
以下是一个完整的请求示例:
{
"FormId": "SAL_RETURNSTOCK",
...
"Model": {
...
// Header 部分
{
...
// Body 部分 (明细信息)
{
...
}
}
}
}
请求参数解析器
在实际操作中,解析器起到了至关重要的作用。例如,使用 ConvertObjectParser
将某些字段值从源系统编码转换为目标系统编码:
{
...
{"field":"FSaleOrgId","label":"销售组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"121"},
...
}
这个解析器会自动将 121
转换为对应的组织编码,以确保与目标系统一致。
实践案例
假设我们有一批销售退货单需要录入金蝶云星空系统,通过上述步骤,我们可以高效地完成这一任务。以下是一个具体案例:
- 从源系统提取销售退货单。
- 清洗并标准化日期和数值字段。
- 使用元数据配置进行字段映射和转换。
- 构建API请求并提交至金蝶云星空。
通过这种方式,不仅提高了工作效率,还保证了数据的一致性和准确性。
总之,轻易云数据集成平台提供了强大的工具和灵活的配置选项,使得复杂的数据ETL过程变得简单高效。在实际应用中,合理利用这些功能,可以极大地提升业务流程的自动化水平。