金蝶云星空数据集成:付款单对接方案分享
在企业信息化建设中,确保不同系统之间的数据无缝对接和高效处理是一个技术性极强的任务。本案例将重点分析如何利用轻易云数据集成平台,实现金蝶云星空系统间的付款单数据集成。
背景概述
金蝶云星空作为专业的企业管理软件,为用户提供了广泛而深度的数据处理功能。然而,在实际应用中,不同模块间的数据交互需求不断涌现。特别是在财务管理过程中,各类订单和付款单据必须确保在不同子系统之间准确、实时地对接。这就要求我们开发一套高效、稳定且灵活的集成功能来满足这一需求。
技术要点提炼
-
实现大量数据快速写入
为了应对业务量激增可能带来的压力,我们通过优化批量写入操作,在轻易云平台上配置了batchSave
API接口,使得大量付款单数据能够及时、高效地导入目标金蝶云星空系统。该解决方案使用并发处理机制,保证即使在高吞吐量情况下,也能保持较低的延迟与错误率。 -
调用API获取源端数据
在源端金蝶云星空系统,我们使用executeBillQuery
API接口定期抓取最新生成或更新的付款单数据。通过设定触发器和调度策略,每小时自动执行一次,这样不仅确保数据的新鲜度,还避免遗漏任何重要交易记录。 -
自定义转换逻辑适应业务需求
考虑到两个子系统在所需字段及格式上的差异,通过轻易云平台提供的可视化转换工具,我们进行了详细的数据映射设计。不仅涵盖基本字段匹配,更进一步自定义了一些复杂业务逻辑,例如汇率换算、日期格式统一等,以此全面适配具体业务场景需求。 -
可靠的数据质量监控与异常检测
为提高整个流程的稳定性,我们启用了集中式监控和告警机制。一旦出现网络不稳、API限流或者其他潜在风险,系统会立即发送告警消息,并启动预设好的回滚与重试机制,从而最大程度减少由于故障导致的数据丢失或误处理问题。此外,通过日志记录功能,对每一次操作进行详尽追踪,有助于后续问题排查及性能优化工作。调用金蝶云星空接口executeBillQuery获取并加工数据
在轻易云数据集成平台的生命周期中,调用源系统接口获取数据是至关重要的一步。本文将详细介绍如何通过调用金蝶云星空的executeBillQuery
接口来获取付款单数据,并进行初步加工。
API接口配置
首先,我们需要配置API接口的基本信息。根据元数据配置,我们使用的是executeBillQuery
接口,采用POST方法进行请求。
{
"api": "executeBillQuery",
"method": "POST"
}
请求参数设置
为了准确获取所需数据,我们需要配置请求参数。这些参数包括分页信息、过滤条件以及需要查询的字段集合等。
-
分页参数:为了避免一次性获取大量数据导致性能问题,我们采用分页查询,每页500条记录。
{ "Limit": "{PAGINATION_PAGE_SIZE}", "StartRow": "{PAGINATION_START_ROW}" }
-
过滤条件:可以根据业务需求设置过滤条件,例如按日期过滤。
{ "FilterString": "FApproveDate>='{{LAST_SYNC_TIME|date}}'" }
-
字段集合:指定需要查询的字段,确保只获取必要的数据以提高效率。
{ "FieldKeys": [ "FPAYBILLENTRY_FEntryID", "FID", "FBillNo", "FDOCUMENTSTATUS", ... ] }
-
表单ID:指定业务对象表单ID,这里是付款单。
{ "FormId": "AP_PAYBILL" }
请求示例
综合上述参数,我们构建一个完整的请求示例:
{
"FormId": "AP_PAYBILL",
"FieldKeys": [
"FPAYBILLENTRY_FEntryID",
"FID",
"FBillNo",
...
],
"FilterString": "FApproveDate>='{{LAST_SYNC_TIME|date}}'",
"Limit": 500,
"StartRow": 0
}
数据清洗与转换
在获取到原始数据后,需要对数据进行清洗和转换,以便后续处理和存储。以下是一些常见的数据清洗与转换操作:
- 字段映射:将金蝶云星空返回的数据字段映射到目标系统的字段。例如,将
FBillNo
映射为目标系统中的InvoiceNumber
。 - 数据格式转换:将日期格式从字符串转换为标准日期格式,或将金额从字符串转换为数值类型。
- 数据过滤:剔除无效或不符合业务规则的数据。例如,只保留审核状态为“已审核”的记录。
数据写入
经过清洗和转换后的数据,可以写入到目标系统或数据库中。轻易云平台支持多种异构系统的数据写入,确保不同系统间的数据无缝对接。
{
// 示例写入操作
}
通过以上步骤,我们完成了从金蝶云星空获取付款单数据并进行初步加工的过程。这不仅提高了数据处理的效率,也确保了数据的一致性和准确性。在实际应用中,可以根据具体业务需求进一步优化和扩展这些操作。
使用轻易云数据集成平台将付款单数据转换并写入金蝶云星空API接口
在数据集成过程中,将源平台的数据转换为目标平台所需的格式是关键步骤之一。本文将深入探讨如何使用轻易云数据集成平台将付款单数据转换为金蝶云星空API接口所能接收的格式,并最终写入目标平台。
元数据配置详解
元数据配置是实现数据转换和写入的重要基础。以下是针对金蝶云星空API接口batchSave
方法的详细元数据配置:
{
"api": "batchSave",
"method": "POST",
"idCheck": true,
"operation": {
"method": "batchArraySave",
"rows": 1,
"rowsKey": "array"
},
"request": [
{"field":"FBillNo","label":"单据编号","type":"string","value":"{FBillNo}"},
{"field":"FCURRENCYID","label":"币别","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"{FCURRENCYID}"},
{"field":"FDATE","label":"业务日期","type":"string","value":"{FDATE}"},
{"field":"FBillTypeID","label":"单据类型","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"FKDLX01_SYS"},
{"field":"FCONTACTUNITTYPE","label":"往来单位类型","type":"string","value":"{FCONTACTUNITTYPE}"},
{"field":"FCONTACTUNIT","label":"往来单位","type":"string","value":"{FCONTACTUNIT}","parser":{"name":"ConvertObjectParser","params":"FName"},"mappingDirection":"positive"},
{"field":"FDepartment","label":"部门","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"{FDepartment}"},
{"field":"FPAYORGID","label":"付款组织","type":"string", "parser":{"name": "ConvertObjectParser", "params": "FNumber"},
"value": "_function case when '{FPAYORGID}' like '%202%' then '111' when '{FPAYORGID}' like '%203%' then '109' when '{FPAYORGID}' like '%204%' then '121' else '104' end"
},
{"field": "FREMARK", "label": "备注", "type": "string", "value": "{FCOMMENT}"},
{
"field": "FPAYBILLENTRY",
"label": "付款单明细",
"type": "array",
"children": [
{"field": "FSETTLETYPEID",
"label": "结算方式",
"type": "string",
"parser":{"name": "ConvertObjectParser",
params: ["FNumber"]},
value: "{FSETTLETYPEID}",
parent: FPAYBILLENTRY},
{"field": FPAYTOTALAMOUNTFOR,
label: 付款金额,
type: string,
value: {FPAYAMOUNTFOR_E},
parent: FPAYBILLENTRY},
{"field" : FMATERIALID,
label : 物料编码,
type : string,
parser : {name : ConvertObjectParser, params : FNumber},
value : {FMATERIALID}, parent : FPAYBILLENTRY},
{"field" : FEXPENSEDEPTID_E, label : 费用承担部门, type : string, parser : {name : ConvertObjectParser, params : FNumber}, value : {FEXPENSEDEPTID_E}, parent : FPAYBILLENTRY},
{"field" : FQTY, label : 数量, type : string, value : {FQTY}, parent: FPAYBILLENTRY},
{"field" : FCOMMENT, label : 备注, type: string,value:{FCOMMENT},parent:FPAYBILLENTRY},
{"parent" :"FPAYBILLENTRY", label:"我方银行账号", field:"FACCOUNTID", type:"string", value:"{FACCOUNTID}", parser:{name:"ConvertObjectParser", params:"FNumber"}}
]
}
],
otherRequest:[
{ field:"FormId", label:"业务对象表单Id", type:"string", describe:"必须填写金蝶的表单ID如:PUR_PurchaseOrder", value:"AP_PAYBILL"},
{ field:"Operation", label:"执行的操作", type:"string", value:"BatchSave"},
{ field:"IsAutoSubmitAndAudit", label:"提交并审核", type:"bool", value:false},
{ field:"IsVerifyBaseDataField", label:"验证基础资料", type:"bool", describe :"是否验证所有的基础资料有效性,布尔类,默认false(非必录)" ,value:false}
]
}
数据字段解析与转换
-
单据编号 (FBillNo):
- 类型:字符串
- 值:直接从源数据中获取
{FBillNo}
。
-
币别 (FCURRENCYID):
- 类型:字符串
- 转换器:
ConvertObjectParser
- 参数:
FNumber
- 值:从源数据中获取
{FCURRENCYID}
并通过ConvertObjectParser
转换。
-
业务日期 (FDATE):
- 类型:字符串
- 值:直接从源数据中获取
{FDATE}
。
-
单据类型 (FBillTypeID):
- 类型:字符串
- 转换器:
ConvertObjectParser
- 参数:
FNumber
- 固定值:
FKDLX01_SYS
-
往来单位类型 (FCONTACTUNITTYPE):
- 类型:字符串
- 值:直接从源数据中获取
{FCONTACTUNITTYPE}
。
-
往来单位 (FCONTACTUNIT):
- 类型:字符串
- 转换器:
ConvertObjectParser
- 参数:
FName
- 值:从源数据中获取
{FCONTACTUNIT}
并通过ConvertObjectParser
转换。
-
部门 (FDepartment):
- 类型:字符串
- 转换器:
ConvertObjectParser
- 参数:
FNumber
- 值:从源数据中获取
{FDepartment}
并通过ConvertObjectParser
转换。
-
付款组织 (FPAYORGID):
- 类型:字符串
- 转换器:
ConvertObjectParser
- 参数:
FNumber
- 值:根据条件判断进行转换,例如当
{FPAYORGID}
包含202%
时,值为111
。
-
备注 (FCOMMENT):
- 类型:字符串
- 值:直接从源数据中获取
{FCOMMENT}
。
-
付款单明细 (FPAYBILLENTRY): 包含多个子字段,每个子字段都需要进行相应的解析和转换。
a. 结算方式 (FSETTLETYPEID):
- 类型:字符串
- 转换器:
ConvertObjectParser
- 参数:
FNumber
- 值:从源数据中获取
{FSETTLETYPEID}
并通过ConvertObjectParser
转换。
b. 付款金额 (FPAYTOTALAMOUNTFOR):
- 类型:字符串
- 值:直接从源数据中获取
{FPAYAMOUNTFOR_E}
。
c. 物料编码 (FMATERIALID):
- 类型:字符串
- 转换器:"ConvertObjectParser"
- 参数:"FNumber" 值:"FMATERIALD"
-
其他请求参数:
- FormId、Operation、IsAutoSubmitAndAudit、IsVerifyBaseDataField 等参数用于控制 API 的具体行为和操作模式。这些参数需要根据具体业务需求进行设置,例如 FormId 设置为 AP_PAYBILL 表示处理的是付款单业务对象。
数据写入流程
- 构建请求体,根据元数据配置将源平台的数据映射到目标平台所需的字段上。
- 调用金蝶云星空API接口,通过POST方法发送构建好的请求体。
- 检查返回结果,确保操作成功,并处理可能出现的错误信息。
以上是使用轻易云数据集成平台将付款单数据转换并写入金蝶云星空API接口的详细技术步骤。通过合理配置元数据和精确的数据解析与转换,可以实现不同系统间的数据无缝对接,提高业务效率。