案例分享:钉钉数据集成到金蝶云星空
在企业财务管理中,实现多个系统之间的数据无缝对接是提升业务效率的关键一步。本案例将详细介绍如何通过轻易云数据集成平台,实现钉钉报销【项目报销类】数据与金蝶付款单【晨丰】的高效对接。
首先,我们需要确保从钉钉获取的数据不漏单且能够快速、可靠地写入到金蝶云星空。为了实现这一目标,使用了以下几个关键API和技术方案:
-
定时抓取与接口调用:
- 钉钉提供了
topapi/processinstance/get
接口,用于获取报销流程实例的信息。通过配置定时任务,平台可以在预设时间点自动调用该接口,从而保证数据及时抓取。
- 钉钉提供了
-
分页和限流处理:
- 当读取大量记录时,为避免超过API调用限制,对返回结果进行分页处理,同时遵循限流机制,确保不会触发API访问上限。
-
批量写入到金蝶云星空:
- 将从钉钉采集到的数据批量写入至金蝶云星空,提高操作效率。这里主要用到了
batchSave
接口,该接口支持一次性提交多条记录,有效减少网络请求次数,加快整体操作速度。
- 将从钉钉采集到的数据批量写入至金蝶云星空,提高操作效率。这里主要用到了
-
格式差异化处理与映射:
- 由于两大平台的数据结构存在差异,在读入数据后,需要进行适当的格式转换和映射。例如,将不同字段名及其对应值平滑过渡,以符合目标系统要求。此外,还执行必要的数据校验步骤以提高成功率。
-
异常处理与重试机制:
- 在整个过程中,对于可能出现的任何异常情况(如网络中断或第三方服务端问题),我们设计了一套完善的错误捕捞和重试机制。这包括实时监控每次操作日志,当检测到失败时自动尝试重新执行相应步骤,并记录所有相关信息供进一步分析。
本案例展示了如何借助轻易云平台,一步步解决从初始需求分析,到具体实施过程中的各项挑战,最终实现两个重要系统间高效、安全、稳定的数据同步。在接下来的部分,将更深入探讨上述每个环节所涉及的实际配置细节及代码示例。
调用钉钉接口topapi/processinstance/get获取并加工数据的技术案例
在数据集成过程中,调用源系统的API接口是至关重要的一步。本文将深入探讨如何通过轻易云数据集成平台调用钉钉接口topapi/processinstance/get
,获取并加工报销数据,以实现与金蝶付款单的无缝对接。
接口调用配置
首先,我们需要配置调用钉钉接口的元数据。根据提供的元数据配置,可以看到我们需要使用POST方法来调用topapi/processinstance/get
接口,并且需要传递特定的参数和条件。
{
"api": "topapi/processinstance/get",
"method": "POST",
"number": "number",
"id": "id",
"idCheck": true,
"condition": [
[
{
"field": "报销类别",
"logic": "eq",
"value": "项目报销类"
}
]
]
}
数据请求与清洗
-
构建请求参数: 根据元数据配置,我们需要构建一个POST请求,其中包含必要的参数,如报销类别为“项目报销类”的条件。
{ "process_instance_id": "<process_instance_id>", "user_id": "<user_id>" }
-
发送请求: 使用轻易云平台提供的API调用功能,发送上述构建好的请求到钉钉接口。
-
处理响应: 钉钉接口返回的数据可能包含多个字段,我们需要根据业务需求进行筛选和清洗。例如,只保留与项目报销相关的信息,并去除冗余字段。
数据转换与写入
-
数据转换: 将从钉钉获取的数据转换为金蝶付款单所需的数据格式。这一步通常涉及字段映射和数据类型转换。例如,将“报销金额”字段从字符串转换为数值类型,以便后续处理。
-
写入目标系统: 最后,将处理好的数据写入金蝶系统中。轻易云平台支持多种异构系统间的数据对接,因此可以方便地将转换后的数据通过API或数据库连接写入金蝶付款单模块。
实际案例
假设我们从钉钉获取到以下原始数据:
{
"process_instance_id": "1234567890",
"title": "项目报销 - 张三",
"create_time": "2023-10-01T12:00:00Z",
"finish_time": null,
"form_component_values": [
{
"name": "报销金额",
"value": "1000"
},
{
"name": "报销类别",
"value": "项目报销类"
},
{
"name": "备注",
"value": ""
}
]
}
经过清洗和转换后,得到如下格式的数据准备写入金蝶:
{
"单据编号": "<自动生成>",
"申请人": "<user_id>",
"申请日期": "<create_time>",
"金额": 1000,
"备注信息": ""
}
在这个过程中,轻易云平台通过全透明可视化操作界面,使得每一步的数据处理都清晰可见,并实时监控数据流动和处理状态,大大提升了业务透明度和效率。
通过以上步骤,我们成功实现了从钉钉获取项目报销类数据,并将其无缝对接到金蝶付款单中。这不仅提高了数据处理效率,还确保了数据的一致性和准确性。
将钉钉报销数据转换并写入金蝶云星空API接口的技术案例
在数据集成过程中,第二步是将已经集成的源平台数据进行ETL(提取、转换、加载)转换,转为目标平台所能够接收的格式。本文将详细探讨如何使用轻易云数据集成平台,将钉钉报销【项目报销类】的数据转换为金蝶付款单【晨丰】的数据格式,并通过金蝶云星空API接口进行写入。
数据请求与清洗
在这一步中,我们已经从钉钉获取了报销数据。接下来,我们需要对这些数据进行清洗和预处理,以确保其符合目标系统的要求。这包括字段的映射、数据类型的转换以及必要的数据校验。
数据转换与写入
我们主要使用金蝶云星空API接口batchSave
方法来实现数据的批量保存操作。以下是具体的元数据配置和对应的字段映射。
API 接口配置
{
"api": "batchSave",
"method": "POST",
"idCheck": true,
"operation": {
"method": "batchArraySave",
"rows": 1,
"rowsKey": "array"
},
"request": [
{"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"{{extend.business_id}}"},
{"field":"FBillTypeID","label":"单据类型","type":"string","describe":"单据类型","parser":{"name":"ConvertObjectParser","params":"FNUMBER"},"value":"FKDLX04_SYS"},
{"field":"FDATE","label":"业务日期","type":"string","describe":"业务日期","value":"{{extend.create_time}}"},
{"field":"FSETTLEORGID","label":"结算组织","type":"string","describe":"100","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"_findCollection find Number from 723e2cb6-f80f-3823-8b4f-6e98b9713ba3 where Name={{费用归属项目}}"},
{"field":"FPAYORGID","label":"付款组织","type":"string","describe":"100","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"_findCollection find Number from 723e2cb6-f80f-3823-8b4f-6e98b9713ba3 where Name={{费用归属项目}}"},
{"field":"FCURRENCYID","label":"币别","type":"string","describe":"币别","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"PRE001"},
{"field":"FCONTACTUNITTYPE","label":"往来单位类型","type":"","describe":"","value":"","parser":{"name":"","params":""},"defaultValue":"","required":false},
{"field":"","label":"","type":"","describe":"","value":"","parser":{"name":"","params":""},"defaultValue":"","required":false},
...
],
"otherRequest":[
{"field": "FormId", "label": "业务对象表单Id", "type": "string", "describe": "", "value": ""},
...
]
}
字段映射与解析
-
单据编号 (FBillNo)
- 来源:
{{extend.business_id}}
- 类型:字符串
- 描述:单据编号
- 来源:
-
单据类型 (FBillTypeID)
- 来源:固定值
FKDLX04_SYS
- 类型:字符串
- 描述:单据类型
- 解析器:
ConvertObjectParser
,参数FNUMBER
- 来源:固定值
-
业务日期 (FDATE)
- 来源:
{{extend.create_time}}
- 类型:字符串
- 描述:业务日期
- 来源:
-
结算组织 (FSETTLEORGID)
- 来源:动态查询
_findCollection find Number from ... where Name={{费用归属项目}}
- 类型:字符串
- 描述:结算组织
- 解析器:
ConvertObjectParser
,参数FNumber
- 来源:动态查询
-
付款组织 (FPAYORGID)
- 来源:动态查询
_findCollection find Number from ... where Name={{费用归属项目}}
- 类型:字符串
- 描述:付款组织
- 解析器:
ConvertObjectParser
,参数FNumber
- 来源:动态查询
-
币别 (FCURRENCYID)
- 来源:固定值
PRE001
- 类型:字符串
- 描述:币别
- 解析器:
ConvertObjectParser
,参数FNumber
- 来源:固定值
-
往来单位类型 (FCONTACTUNITTYPE)
- 来源:固定值
BD_Department
- 类型:字符串
- 描述:往来单位类型
- 来源:固定值
-
往来单位 (FCONTACTUNIT)
- 来源:
{{费用归属部门_关联}}
- 类型:字符串
- 描述:往来单位
- 解析器:
ConvertObjectParser
,参数FNumber
- 来源:
-
收款单位类型 (FRECTUNITTYPE)
- 来源:固定值
BD_Department
- 类型:字符串
- 描述:"收款单位类型"
- 来源:固定值
-
收款单位 (FRECTUNIT)
- 来源:
{{费用归属部门_关联}}
- 类型: 字符串 ...
- 来源:
子表明细配置
- 结算方式 (FPAYBILLENTRY.FSETTLETYPEID)
{ "field": "FPAYBILLENTRY.FSETTLETYPEID", ... ... ... ... ... ... ... ... ... ... ... ... ...