系统对接集成案例分享:道一云数据集成到畅捷通T+——报销装卸费(天水)
在企业实际业务中,针对不同系统之间的数据对接与整合需求迫切。本文将着重介绍如何利用轻易云数据集成平台,将道一云的报销装卸费数据高效集成至畅捷通T+系统。通过这一具体案例,我们将探讨整个流程中的关键技术点和解决方案。
首先,从道一云获取报销数据使用了其提供的API接口 qwcgi/api/reimApiCtl/getReimList.do
,此接口支持分页与限流,为确保不漏单且处理效率高,我们设计了定时抓取机制,并结合异常处理策略,实现稳定的数据流入。
为了应对海量数据快速写入畅捷通T+的问题,我们使用了畅捷通T+ API /tplus/api/v2/doc/Create
,该接口支持批量写入功能,使得大量报销记录能够迅速进入后台系统。在实施过程中,通过自定义的数据转换逻辑,平滑解决了两套系统间的数据格式差异问题。
其次,在全生命周期管理方面,通过设置集中监控和告警系统,可以实时跟踪从道一云到畅捷通T+每个节点上的任务状态和性能表现。一旦发现异常情况,如网络延迟或API调用失败等,即可迅速响应并进行错误重试。此外,高吞吐量的数据处理能力使得大规模业务场景下,多条并发流水线运作也能保持高效、顺畅运行。
最后,道一云与畅捷通T+ API资产管理功能为我们提供了一种统一视图,这不仅便于监控各类API调用,还能优化资源配置,提高整体操作效率。通过这种方法,不仅提升了业务透明度,更确保所有涉税单据得到可靠、安全的传递和存储保障。
这样的架构设计,无论是从性能角度还是实用性上,都极大程度地满足了企业日常运营需求。这正是轻易云平台强大的可视化工具和灵活扩展特性的有力体现。
使用轻易云数据集成平台调用道一云接口获取并加工报销装卸费数据
在数据集成的生命周期中,第一步是从源系统获取数据并进行初步加工。本文将详细探讨如何使用轻易云数据集成平台调用道一云接口qwcgi/api/reimApiCtl/getReimList.do
来获取报销装卸费相关的数据,并进行必要的处理。
接口配置与请求参数
首先,我们需要配置API接口的元数据。根据提供的元数据配置,我们可以看到该接口使用POST方法进行调用,主要参数如下:
- api:
qwcgi/api/reimApiCtl/getReimList.do
- method:
POST
- number:
reimNo
- id:
reimNo
- idCheck:
true
请求参数包括时间范围、分页信息等:
{
"startTime": "{{LAST_SYNC_TIME|datetime}}",
"endTime": "{{CURRENT_TIME|datetime}}",
"currentPage": "1",
"pageSize": "100"
}
这些参数确保了我们能够按时间段和分页获取数据,避免一次性拉取大量数据导致性能问题。
条件过滤
为了精准获取我们需要的数据,我们设置了以下条件过滤:
[
{
"field": "detailList.subjName",
"logic": "like",
"value": "装卸",
"strictMode": false
},
{
"field": "detailList.reimCustomFieldDataList_0_value",
"logic": "like",
"value": "天水格瑞丽家母婴用品有限公司",
"strictMode": false
},
{
"field": "state",
"logic": "egt",
"value": "4",
"strictMode": false
}
]
这些条件确保我们只获取与“装卸”相关且报销状态大于等于4的记录,并且公司名称包含“天水格瑞丽家母婴用品有限公司”。
数据请求与清洗
在实际操作中,我们通过轻易云平台发起HTTP POST请求,传递上述参数以获取原始数据。示例代码如下:
import requests
import json
url = 'https://api.daoyiyun.com/qwcgi/api/reimApiCtl/getReimList.do'
headers = {'Content-Type': 'application/json'}
payload = {
'startTime': '2023-01-01T00:00:00',
'endTime': '2023-01-31T23:59:59',
'currentPage': '1',
'pageSize': '100'
}
response = requests.post(url, headers=headers, data=json.dumps(payload))
data = response.json()
在获得原始数据后,我们需要对其进行清洗和初步加工。例如,提取出我们关心的字段,并处理可能存在的数据异常。
异常处理与补偿机制
为了确保数据完整性和一致性,我们还设置了异常处理与补偿机制。例如,通过定时任务(crontab)定期重新拉取过去一个月的数据,以弥补可能遗漏的数据:
{
"crontab": "20 3 1 * *",
"takeOverRequest": [
{
"field": "startTime",
"label": "修改开始时间段",
"type": "string",
"is_required": true,
"value":"_function from_unixtime(({CURRENT_TIME}-2937599),'%Y-%m-%d %h:%i:%s')"
}
]
}
这个配置确保每个月的第一天凌晨3点20分重新拉取过去一个月的数据,以防止任何遗漏。
数据转换与写入
在完成初步清洗后,下一步是将数据转换为目标格式并写入目标系统。这部分操作通常包括字段映射、格式转换等。由于本文重点在于数据请求与清洗阶段,因此不再详细展开。
通过上述步骤,我们成功实现了从道一云接口获取报销装卸费相关数据并进行初步加工,为后续的数据转换与写入奠定了基础。
使用轻易云数据集成平台将报销装卸费数据转换并写入畅捷通T+API接口
在数据集成过程中,ETL(提取、转换、加载)是关键步骤之一。本文将详细探讨如何使用轻易云数据集成平台,将已经集成的源平台数据进行ETL转换,转为畅捷通T+API接口所能够接收的格式,并最终写入目标平台。
API接口配置
首先,我们需要配置畅捷通T+API接口。根据提供的元数据配置,API路径为/tplus/api/v2/doc/Create
,请求方法为POST。以下是主要字段的配置及其对应的值:
-
ExternalCode (外部编码):
- 类型:string
- 描述:字符串长度<50
- 值:
{reimNo}{{detailList.subjName}}
-
DocType (凭证字):
- 类型:string
- 解析器:ConvertObjectParser, 参数: Code
- 值:记
-
VoucherDate (制单日期):
- 类型:string
- 值:
{closeTime}
-
Entrys (分录项):
- 类型:array
- 子项包含借方和贷方分录,每个分录项包含多个字段,如摘要、科目档案、汇率、货币、本币金额及辅助核算项等。
分录项详细配置
借方分录项(borrow-1)
-
Summary-1 (借方摘要):
- 类型:string
- 描述:字符串长度<200
- 值:
{projName}{personName}报{endTimes}{subjFullName}
-
Account-1 (借方科目档案):
- 类型:string
- 描述:必须是末级科目
- 解析器:ConvertObjectParser, 参数: Code
- 值:
_function case when '{{detailList.projName}}' in ('营运部','设计部','财务部','市场部','人资行政部') then '660228' else '660106' end
-
AmountDr-1 (借方本币):
- 类型:string
- 值:
_function sum({{detailList.invoices.0.amount}}-{{detailList.invoices.0.taxAmount}})
-
AuxInfos-1 (借方辅助核算项): 包含多个子字段,如部门、个人(员工)、客户(往来单位)、项目和存货等,每个字段都使用相应的解析器进行转换。
贷方分录项(loan-2)
-
Summary-2 (贷方摘要):
- 类型:string
- 值:
{projName}{personName}报{endTimes}{subjFullName}
-
Account-2 (贷方科目档案):
- 类型:string
- 解析器:ConvertObjectParser, 参数: Code
- 值:
_function case when '{{itemMap.fod416dede4ea74efa828be2b39507e93c}}' in ('未付') then '10020101' else '{{detailList.reimCustomFieldDataList_1_value}}' end
-
AmountCr-2 (贷方本币):
- 类型:string
- 值:
{verificationMoney}
-
AuxInfos-2 (贷方辅助核算项): 同样包含多个子字段,如部门、个人(员工)、客户(往来单位)、项目和存货等。
数据转换与写入
在完成上述字段配置后,我们需要将这些配置应用到实际的数据转换过程中。以下是一个示例代码片段,展示了如何将源数据转换为目标格式,并通过API接口写入畅捷通T+系统:
{
"api": "/tplus/api/v2/doc/Create",
"method": "POST",
"idCheck": true,
"request": [
{
"field": "ExternalCode",
"value": "{reimNo}{{detailList.subjName}}"
},
{
"field": "DocType",
"value": "记"
},
{
"field": "VoucherDate",
"value": "{closeTime}"
},
{
"field": "Entrys",
"value": [
{
"borrow-1": {
"Summary-1": "{projName}{personName}报{endTimes}{subjFullName}",
...
}
},
{
"loan-2": {
"Summary-2": "{projName}{personName}报{endTimes}{subjFullName}",
...
}
}
]
}
],
...
}
通过上述配置和代码片段,我们可以实现将源平台的数据进行ETL转换,并成功写入到畅捷通T+系统中。这一过程确保了不同系统间的数据无缝对接,提高了业务处理效率和准确性。