金蝶云星空数据集成到钉钉案例分享:传给金蝶后,回传钉钉提示(已审核)④
在企业信息化建设中,实现不同系统间的数据无缝对接是提高业务效率和透明度的关键。本文将详细分享一个成功的系统对接集成案例,即如何将金蝶云星空中的数据集成至钉钉,并确保整个流程高效、可靠。
本次方案命名为“传给金蝶后,回传钉钉提示(已审核)④”,我们利用轻易云数据集成平台,对来自金蝶云星空的数据进行精准抓取,处理,并最终批量写入到钉钉,实现了从财务管理到办公协同的全链路打通。在此过程中,我们重点解决了如下技术难题:
- 保证数据不漏单:通过调用executeBillQuery接口定时抓取金蝶云星空中的最新审批单据,并实施分页处理和限流措施,确保每一条记录都被准确捕捞。
- 快速大规模数据写入:采用轻易云提供的批量操作功能,高效地将大量审批结果推送至钉ding API:topapi/process/instance/comment/add,从而避免人工手动录入环节,提高工作效率。
- 异常处理与错误重试机制:在网络波动或者服务端响应异常情况下,通过开发自定义重试逻辑,以最大程度上减少因临时故障导致的数据丢失或重复提交问题。
- 实时监控与日志记录:搭建完善的数据处理过程监控体系,通过轻易云提供的可视化界面及日志功能,实现对各个步骤以及整体进程的实时追踪和审计。
例如,在调用金蝶API获取审批单据时,我们使用了executeBillQuery
接口来进行高效查询,并根据页码参数实现逐页获取,以应对海量数据。而在推送至顶顶消息提醒方面,则使用了topapi/process/instance/comment/add
API,将每次同步结果作为评论附加到相应任务或流程实例中,从而实现及时通知相关人员执行下一步操作。
通过这种方式,我们不仅保障了业务流程的一致性,还极大提升了跨系统协作的便捷性,为企业日常运营带来了显著帮助。以下内容将具体展示此次集成方案中的技术细节及要点分析。
调用金蝶云星空接口executeBillQuery获取并加工数据
在轻易云数据集成平台的生命周期中,调用源系统接口是数据集成的第一步。本文将详细探讨如何通过金蝶云星空接口executeBillQuery
获取并加工数据,以实现高效的数据集成。
接口配置与调用
首先,我们需要配置和调用金蝶云星空的executeBillQuery
接口。以下是元数据配置的关键部分:
{
"api": "executeBillQuery",
"method": "POST",
"number": "FBillNo",
"id": "FPAYBILLENTRY_FEntryID",
"pagination": {
"pageSize": 500
},
"idCheck": true,
"condition": [
[
{
"field": "FPAYORGID",
"logic": "eq",
"value": "9.01"
}
]
],
...
}
该配置指定了API名称、请求方法、分页设置以及查询条件。特别需要注意的是分页设置和查询条件,这些参数确保了我们能够高效地获取所需的数据。
请求字段与响应处理
在请求中,我们需要指定一系列字段,以确保获取到完整且准确的数据。以下是部分请求字段配置:
{
"request": [
{"field":"FPAYBILLENTRY_FEntryID","label":"FPAYBILLENTRY_FEntryID","type":"string","value":"FPAYBILLENTRY_FEntryID"},
{"field":"FID","label":"实体主键","type":"string","value":"FID"},
{"field":"FBillNo","label":"单据编号","type":"string","value":"FBillNo"},
{"field":"FDOCUMENTSTATUS","label":"单据状态","type":"string","value":"FDOCUMENTSTATUS"},
{"field":"FCreatorId","label":"创建人","type":"string","value":"FCreatorId"},
...
]
}
这些字段涵盖了单据编号、单据状态、创建人等关键信息。在实际调用API时,这些字段将作为查询参数发送给金蝶云星空系统。
分页与过滤条件
为了处理大量数据,我们使用分页机制。以下是分页相关的配置:
{
"otherRequest": [
{"field":"Limit","label":"最大行数","type":"string","describe":"金蝶的查询分页参数","value":"{PAGINATION_PAGE_SIZE}"},
{"field":"StartRow","label":"开始行索引","type":"string","describe":"金蝶的查询分页参数","value":"{PAGINATION_START_ROW}"},
...
]
}
通过设置Limit
和StartRow
,我们可以控制每次请求返回的数据量,从而避免一次性获取过多数据导致性能问题。此外,我们还可以通过过滤条件来精确筛选所需数据:
{
"otherRequest": [
...
{"field":"FilterString","label":"过滤条件","type":"string","describe":"示例写法 FSupplierId.FNumber = 'VEN00010' and FApproveDate>=","value":"FApproveDate>='{{LAST_SYNC_TIME|dateTime}}' and FDOCUMENTSTATUS='C'"}
]
}
上述过滤条件示例中,筛选了审批日期大于上次同步时间且单据状态为已审核的数据。
数据清洗与转换
在获取到原始数据后,需要进行清洗和转换,以满足目标系统的要求。例如,可以根据业务需求对日期格式进行转换,对金额字段进行单位换算等操作。这一步骤通常在轻易云平台内通过可视化操作界面完成,确保每个环节都透明可见。
实际案例
假设我们需要从金蝶云星空系统中获取所有已审核且付款组织为"9.01"的付款单,并将这些数据传输到钉钉系统进行提示。具体步骤如下:
- 配置API请求:按照上述元数据配置,设置API请求参数,包括分页、过滤条件等。
- 调用API:通过轻易云平台发起HTTP POST请求,调用
executeBillQuery
接口。 - 处理响应:解析返回的数据,根据业务需求进行清洗和转换。
- 传输到钉钉:将处理后的数据传输到钉钉系统,并触发相应的提示功能。
通过以上步骤,我们实现了从金蝶云星空系统获取并加工数据,并将其无缝集成到钉钉系统中。这不仅提高了数据处理效率,还增强了业务流程的透明度和可控性。
数据集成生命周期第二步:ETL转换与写入钉钉API接口
在数据集成的生命周期中,将已经集成的源平台数据进行ETL(提取、转换、加载)转换,并最终写入目标平台是至关重要的一环。本文将深入探讨如何利用轻易云数据集成平台,将源数据转换为钉钉API接口能够接收的格式,并成功写入目标平台。
钉钉API接口配置
为了将数据写入钉钉,我们需要配置相应的API接口。在本案例中,我们使用的是topapi/process/instance/comment/add
接口,该接口用于向指定的审批实例添加评论。以下是具体的元数据配置:
{
"api": "topapi/process/instance/comment/add",
"method": "POST",
"idCheck": true,
"request": [
{
"field": "request",
"label": "请求对象",
"type": "object",
"children": [
{
"field": "process_instance_id",
"label": "审批实例ID",
"type": "string",
"describe": "可通过调用获取审批实例ID列表接口获取。",
"value": "_findCollection find id from eee23ce9-d281-35dd-a699-5844e3317ac7 where business_id={FBillNo}",
"parent": "request"
},
{
"field": "text",
"label": "评论的内容",
"type": "string",
"value": "已审核",
"parent": "request"
},
{
"field": "comment_userid",
"label": "评论人的userid",
"type": "string",
"value": "112018120420563028",
"parent": "request"
}
]
}
]
}
数据提取与转换
在ETL过程中,首先需要从源平台提取数据。假设我们从金蝶系统中获取业务单据编号(FBillNo
),然后根据该编号查找对应的审批实例ID。
-
提取审批实例ID:
_findCollection find id from eee23ce9-d281-35dd-a699-5844e3317ac7 where business_id={FBillNo}
这段SQL查询语句用于从金蝶系统中查找对应业务单据编号的审批实例ID。
-
构建请求对象: 根据提取到的数据,构建符合钉钉API要求的请求对象。请求对象包含三个字段:
process_instance_id
: 审批实例ID。text
: 评论内容,这里固定为"已审核"。comment_userid
: 评论人的用户ID,这里固定为"112018120420563028"。
数据写入目标平台
完成数据转换后,下一步是将构建好的请求对象通过POST方法发送到钉钉API接口。以下是具体操作步骤:
-
构建HTTP请求: 使用轻易云提供的HTTP模块,设置请求URL为
https://oapi.dingtalk.com/topapi/process/instance/comment/add
,并选择POST方法。 -
设置请求头和参数: 请求头部需要包含必要的认证信息,如Access Token等。参数部分则根据元数据配置中的字段进行填充。
-
发送请求并处理响应: 发送HTTP请求后,需要处理响应结果,确保评论成功添加到指定审批实例。如果出现错误,则需要记录日志并进行相应处理。
以下是一个示例代码片段,用于演示如何发送HTTP请求:
import requests
url = 'https://oapi.dingtalk.com/topapi/process/instance/comment/add'
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_ACCESS_TOKEN'
}
data = {
'request': {
'process_instance_id': 'EXAMPLE_INSTANCE_ID',
'text': '已审核',
'comment_userid': '112018120420563028'
}
}
response = requests.post(url, headers=headers, json=data)
if response.status_code == 200:
print('评论成功添加')
else:
print(f'添加评论失败: {response.text}')
通过上述步骤,我们实现了将源平台的数据经过ETL转换后,成功写入到目标平台——钉钉。在整个过程中,轻易云数据集成平台提供了强大的支持,使得复杂的数据处理和系统集成变得更加高效和透明。