钉钉数据集成到金蝶云星空:新付款单(采购业务退款)V4.0
在本文中,我们将分享一个实际运行的系统对接集成案例,展示如何通过高效的数据处理技术,将钉钉中的采购业务退款信息无缝集成到金蝶云星空。具体方案为 "pay-新付款单(采购业务退款)V4.0"。
首先,我们使用了钉钉提供的API v1.0/yida/processes/instances
来可靠地抓取所需的数据,为确保数据的不漏单和高吞吐量能力,通过调度任务定时获取最新的数据,并实施批量处理策略。这有效保证了大规模数据能快速、准确地被提取。
接下来,面对不同系统间的数据格式差异问题,我们构建了一套自定义数据转换逻辑,使得从钉钉接口获取到的原始数据能够根据需要进行统一标准化处理。这样一来,不同类型的数据能顺利适应金蝶云星空的结构要求,在后续写入过程中避免格式冲突。
为了实时监控整个数据流动过程并确保质量,我们利用了集中式监控和告警系统。该系统不仅实时跟踪每个集成任务的状态,还能及时发现并报告任何异常情况,例如分页和限流问题,以及可能出现的错误。这些特点极大提升了我们对整个流程控制与管理的精确度,同时也实现了全过程透明可视化操作。
另外,为应对大量数据写入需求,我们采用的是金蝶云星空的 batchSave
API,这种批量写入方式不但提高效率还减少服务器压力。同时,通过日志记录功能,对每一次API调用都进行了详细记载,以便溯源追查乃至重试机制启动,确保任何一点细节都不被忽略。
总之,本次案例应用了一系列先进技术手段,如自定义转化逻辑、高吞吐量批量写入以及完善监控体系,实现了从钉钉到金蝶云星空的新付款单(采购业务退款)的全方位无缝衔接。
调用钉钉接口获取并加工数据的技术实现
在轻易云数据集成平台中,调用源系统接口是数据处理生命周期的第一步。本文将详细探讨如何通过调用钉钉接口v1.0/yida/processes/instances
来获取并加工数据,以满足特定业务需求。
接口配置与请求参数
我们需要配置一个POST请求来调用钉钉接口v1.0/yida/processes/instances
。以下是元数据配置中的关键字段及其含义:
- api:
v1.0/yida/processes/instances
- method:
POST
- number:
title
- id:
processInstanceId
- idCheck:
true
请求参数如下:
[
{"field":"pageNumber","label":"分页页码","type":"string","describe":"分页页码","value":"{PAGINATION_START_PAGE}"},
{"field":"pageSize","label":"分页大小","type":"string","describe":"分页大小","value":"{PAGINATION_PAGE_SIZE}"},
{"field":"appType","label":"应用ID","type":"string","describe":"应用ID","value":"APP_WTSCMZ1WOOHGIM5N28BQ"},
{"field":"systemToken","label":"应用秘钥","type":"string","describe":"应用秘钥","value":"IS866HB1DXJ8ODN3EXSVD750RBTK2X72R8MELL4"},
{"field":"userId","label":"用户的userid","type":"string","describe":"用户的userid","value":"16000443318138909"},
{"field":"language","label":"语言","type":"string","describe":"语言,取值:zh_CN:中文(默认值)en_US:英文"},
{"field":"formUuid","label":"表单ID","type":"string","describe":"表单ID","value":"FORM-UX866Q61RUV939TLEWG9H4HX25523ZRQNXLGLW"},
{"field": "searchFieldJson", "label": "条件", "type": "object", "children": [
{"parent": "searchFieldJson", "label": "费用类型", "field": "selectField_lgm25d98", "type": "string", "value": "供应链费用退款"}
]},
{"field": "createFromTimeGMT", "label": "创建时间起始值", "type": "string", "describe": "创建时间起始值",
"value": "_function DATE_FORMAT(DATE_ADD(NOW(),INTERVAL - 25 DAY),'%Y-%m-%d 00:00:00')"},
{"field": "createToTimeGMT", "label": "创建时间终止值", "type": "string",
"describe": "创建时间终止值",
"value": "{{CURRENT_TIME|datetime}}"},
{"field": "instanceStatus",
"label": "实例状态",
"type": "string",
describe: 实例状态,
value: COMPLETED},
{"field": approvedResult,
label: 流程审批结果,
type: string,
describe: 流程审批结果,
value: agree}
]
请求参数详解
-
分页参数
pageNumber
: 分页页码,动态获取。pageSize
: 分页大小,动态获取。
-
身份验证
appType
: 应用ID,用于标识具体的应用。systemToken
: 应用秘钥,用于身份验证。
-
用户信息
userId
: 用户的userid,用于标识具体用户。
-
语言设置
language
: 请求返回的数据语言,可以选择中文(zh_CN
)或英文(en_US
)。
-
表单信息
formUuid
: 表单ID,用于指定具体表单。
-
查询条件
searchFieldJson
: 查询条件,这里指定了费用类型为“供应链费用退款”。
-
时间范围
createFromTimeGMT
: 创建时间起始值,使用函数动态计算。createToTimeGMT
: 创建时间终止值,使用当前时间。
-
实例状态与审批结果
instanceStatus
: 实例状态,设置为已完成(COMPLETED
)。approvedResult
: 流程审批结果,设置为同意(agree
)。
数据清洗与转换
在获取到原始数据后,需要对数据进行清洗和转换。以下是一些常见的数据清洗操作:
- 字段映射:将API返回的数据字段映射到目标系统所需的字段。例如,将
processInstanceId
映射到目标系统中的唯一标识字段。 - 数据过滤:根据业务需求过滤不必要的数据。例如,只保留实例状态为已完成且审批结果为同意的数据。
- 格式转换:将日期格式转换为目标系统所需的格式,例如将
yyyy-MM-dd HH:mm:ss
格式转换为ISO8601格式。
自动填充响应
元数据配置中设置了autoFillResponse:true
,这意味着在成功调用API后,平台会自动填充响应数据。这一步骤极大地简化了开发工作,使得开发者可以专注于业务逻辑而非繁琐的数据处理。
条件判断
元数据配置中还包含了条件判断逻辑:
"condition":[[{"field":"dateField_lgn3helb","logic":"notnull"}]]
这表示只有当字段dateField_lgn3helb
不为空时才会执行后续操作。这种条件判断机制确保了数据处理过程的灵活性和准确性。
通过上述步骤,我们可以高效地调用钉钉接口获取并加工所需数据,为后续的数据处理和写入奠定坚实基础。
使用轻易云数据集成平台进行ETL转换并写入金蝶云星空API接口
在数据集成的生命周期中,ETL(提取、转换、加载)是关键步骤之一。本文将详细探讨如何使用轻易云数据集成平台,将源平台的数据进行ETL转换,转为金蝶云星空API接口所能接收的格式,并最终写入目标平台。
配置元数据解析
在配置元数据时,我们需要注意以下几个关键字段及其解析方式:
- 单据编号(FBillNo):通过
{serialNumberField_lgm25d8r}(FKTK)
生成唯一的单据编号。 - 结算组织(FSETTLEORGID):使用
ConvertObjectParser
解析器,将源数据中的字段值转换为金蝶云所需的格式。 - 汇率类型(FEXCHANGETYPE):固定值为
HLTX01_SYS
,同样使用ConvertObjectParser
进行解析。 - 业务日期(FDATE):通过函数
_function FROM_UNIXTIME( ( {dateField_lgn3helb} \/ 1000 ) ,'%Y-%m-%d' )
将Unix时间戳转换为标准日期格式。 - 币别(FCURRENCYID):固定值为
PRE001
,使用解析器进行转换。 - 单据类型(FBillTypeID):固定值为
FKTKDLX01_SYS
,使用解析器进行转换。
数据请求与清洗
在数据请求阶段,我们从源系统中获取原始数据。这些数据可能包含多种格式和类型的信息,需要经过清洗和标准化处理。例如,对于日期字段,我们需要将Unix时间戳转换为标准日期格式;对于一些代码字段,则需要通过解析器将其转换为目标系统可识别的编码。
{
"field": "FDATE",
"label": "业务日期",
"type": "string",
"value": "_function FROM_UNIXTIME( ( {dateField_lgn3helb} / 1000 ) ,'%Y-%m-%d' )"
}
上述配置示例展示了如何将Unix时间戳转换为标准日期格式,以便金蝶云星空能够正确识别和处理该字段。
数据转换与写入
在数据转换阶段,我们需要根据金蝶云星空API接口的要求,将清洗后的数据进行进一步的格式化处理。以下是一个具体的配置示例:
{
"api": "batchSave",
"method": "POST",
"idCheck": true,
"operation": {
"method": "batchArraySave",
"rows": 1,
"rowsKey": "array"
},
"IsAutoAdjustField": true,
"request": [
{
"field": "FBillNo",
"label": "单据编号",
"type": "string",
"value": "{serialNumberField_lgm25d8r}(FKTK)"
},
{
...
}
],
...
}
在这个配置中,我们设置了API接口的基本信息,如请求方法、是否检查ID等。同时,通过定义每个字段的解析方式和取值来源,实现了对源数据的全面转换。
特殊字段处理
对于一些特殊字段,如数组类型的退款单明细(FREFUNDBILLENTRY),我们需要特别处理其内部子字段:
{
"field": "FREFUNDBILLENTRY",
"label": "退款单明细",
"type": "array",
...
}
每个子字段都需要分别定义其解析方式和取值来源,以确保整个数组结构能够被正确识别和处理。
自动调整JSON字段顺序
为了确保JSON请求体符合金蝶云星空API接口的要求,可以启用自动调整JSON字段顺序功能:
{
...
{
"label":"自动调整JSON字段顺序",
"field":"IsAutoAdjustField",
"type":"string",
"value":"false"
}
}
通过上述配置,可以避免因字段顺序问题导致的数据写入失败。
提交并审核
最后,为了简化业务流程,可以选择在提交后自动审核:
{
...
{
"field":"IsAutoSubmitAndAudit",
"label":"提交并审核",
"type":"bool",
"value":"true"
}
}
这样可以确保数据一旦成功写入目标平台,即可立即生效,无需手动审核。
以上就是使用轻易云数据集成平台进行ETL转换并写入金蝶云星空API接口的详细技术案例。通过合理配置元数据和解析器,可以高效地实现不同系统间的数据无缝对接。