钉钉数据集成到金蝶云星空案例分享:pay-新付款单(其他业务退款)V4.0
在本篇技术文章中,我们将详细探讨一个实际运行的系统对接集成案例——如何高效地将钉钉的数据集成到金蝶云星空。这个过程中,所采用的方案名称为:pay-新付款单(其他业务退款)V4.0。本次技术分享将重点展示API接口调用及数据处理的一些关键点。
首先,为了确保从钉钉获取的数据能够无缝写入到金蝶云星空,我们利用了轻易云平台提供的多个强大功能。这其中包括支持高吞吐量的数据写入能力,使得大量数据可以快速且可靠地被集成,提升了整体数据处理的时效性。本案例中的主要挑战包括如何调用钉钉接口v1.0/yida/processes/instances
以定时可靠地抓取必要的数据,并通过自定义转换逻辑解决两者间的数据格式差异,从而实现批量集成和同步至金蝶云星空。
具体步骤之一就是先配置好集中监控和告警系统,通过实时跟踪每个任务状态以及性能表现来保证整个流程的稳定性。同时,在整合过程中还需要仔细处理分页和限流问题,以避免因接口限制导致任何潜在的问题。
此外,在进行数据转换时,也需特别注意定制化映射规则,以便精准适配特定的业务需求和平滑过渡到目标系统。对于异常处理与错误重试机制,应当提前设计完善策略来迅速响应任何可能出现的问题,确保最终写入操作万无一失。总结来看,对两个系统之间API资产管理功能进行全面掌握,是推动资源高效利用与优化配置的重要保障。
接下来部分内容,将会更深入地描述具体实施过程,包括各关键环节中的技术要点、使用技巧以及相关代码示例等。
调用钉钉接口获取并加工数据的技术案例
在数据集成过程中,调用源系统接口是至关重要的一步。本文将深入探讨如何通过轻易云数据集成平台调用钉钉接口v1.0/yida/processes/instances
获取并加工数据。
接口配置与请求参数
根据提供的元数据配置,我们需要向钉钉接口发送一个POST请求。以下是请求参数的详细配置:
- pageNumber: 分页页码,值为
{PAGINATION_START_PAGE}
。 - pageSize: 分页大小,值为
{PAGINATION_PAGE_SIZE}
。 - appType: 应用ID,固定值为
APP_WTSCMZ1WOOHGIM5N28BQ
。 - systemToken: 应用秘钥,固定值为
IS866HB1DXJ8ODN3EXSVD750RBTK2X72R8MELL4
。 - userId: 用户的userid,固定值为
16000443318138909
。 - language: 语言,默认值为中文,即
zh_CN
。 - formUuid: 表单ID,固定值为
FORM-UX866Q61RUV939TLEWG9H4HX25523ZRQNXLGLW
。 - searchFieldJson: 条件字段,包括费用分类、流水号和申请人等。
- originatorId: 根据流程发起人工号查询,可选字段。
- createFromTimeGMT: 创建时间起始值,使用函数生成,即
_function DATE_FORMAT(DATE_ADD(NOW(),INTERVAL - 25 DAY),'%Y-%m-%d 00:00:00')
。 - createToTimeGMT: 创建时间终止值,为当前时间,即
{{CURRENT_TIME|datetime}}
。 - modifiedFromTimeGMT: 修改时间起始值,可选字段。
- modifiedToTimeGMT: 修改时间终止值,可选字段。
- taskId: 任务ID,可选字段。
- instanceStatus: 实例状态,固定值为已完成,即
COMPLETED
。 - approvedResult: 流程审批结果,固定值为同意,即
agree
。
请求示例
以下是一个完整的请求示例:
{
"pageNumber": "{PAGINATION_START_PAGE}",
"pageSize": "{PAGINATION_PAGE_SIZE}",
"appType": "APP_WTSCMZ1WOOHGIM5N28BQ",
"systemToken": "IS866HB1DXJ8ODN3EXSVD750RBTK2X72R8MELL4",
"userId": "16000443318138909",
"language": "zh_CN",
"formUuid": "FORM-UX866Q61RUV939TLEWG9H4HX25523ZRQNXLGLW",
"searchFieldJson": {
"selectField_lgm25d98": "",
"serialNumberField_lgm25d8r": "",
"textField_lgm25d8p": ""
},
"originatorId": "",
"createFromTimeGMT": "_function DATE_FORMAT(DATE_ADD(NOW(),INTERVAL - 25 DAY),'%Y-%m-%d 00:00:00')",
"createToTimeGMT": "{{CURRENT_TIME|datetime}}",
"modifiedFromTimeGMT": "",
"modifiedToTimeGMT": "",
"taskId": "",
"instanceStatus": "COMPLETED",
"approvedResult": "agree"
}
数据清洗与转换
在获取到原始数据后,需要进行清洗和转换,以便后续的数据处理和写入。以下是几个关键步骤:
-
数据过滤与验证
- 根据条件字段(如费用分类、流水号、申请人等)进行数据过滤,确保只保留符合条件的数据记录。
-
日期格式转换
- 将创建时间和修改时间字段转换为标准日期格式,以便于后续的数据分析和处理。
-
字段映射与重命名
- 将接口返回的数据字段映射到目标系统所需的字段,并进行必要的重命名。例如,将接口返回的
processInstanceId
映射到目标系统中的id
字段。
- 将接口返回的数据字段映射到目标系统所需的字段,并进行必要的重命名。例如,将接口返回的
-
数据去重
- 根据唯一标识(如
processInstanceId
)对数据进行去重处理,确保每条记录在目标系统中唯一存在。
- 根据唯一标识(如
实践案例
假设我们需要获取过去一个月内所有已完成且审批结果为同意的付款单实例,并将其导入到财务系统中。具体操作步骤如下:
-
配置请求参数,如上所述,通过POST请求调用钉钉接口获取原始数据。
-
对返回的数据进行清洗和转换,包括日期格式转换、字段映射与重命名等。
-
将清洗后的数据写入到财务系统中,并进行必要的数据验证和一致性检查。
通过上述步骤,我们可以高效地实现不同系统间的数据无缝对接,提高业务流程的自动化程度和效率。
使用轻易云数据集成平台将源数据转换并写入金蝶云星空API接口
在数据集成的生命周期中,第二步是将已经集成的源平台数据进行ETL(提取、转换、加载)转换,并最终写入目标平台。本文将详细探讨如何使用轻易云数据集成平台,将源数据转换为金蝶云星空API接口所能接收的格式,并最终写入目标平台。
数据请求与清洗
在数据请求与清洗阶段,我们首先需要从源系统中提取原始数据。这个过程可能涉及多个异构系统的数据源,如数据库、文件系统或其他API接口。在轻易云平台上,这一步通过配置相应的数据源连接和请求参数来实现。
数据转换与写入
一旦完成了数据的提取和初步清洗,接下来就是将这些数据转换为金蝶云星空API所能接受的格式,并通过API接口将其写入目标系统。以下是具体的技术细节和配置示例。
配置元数据
元数据配置是ETL过程中的核心部分,它定义了如何将源数据映射到目标系统所需的数据结构。在本案例中,我们使用如下的元数据配置:
{
"api": "batchSave",
"method": "POST",
"idCheck": true,
"operation": {
"method": "batchArraySave",
"rows": 1,
"rowsKey": "array"
},
"request": [
{"field":"FBillNo","label":"单据编号","type":"string","value":"{serialNumberField_lgm25d8r}(FKTK)"},
{"field":"FSETTLEORGID","label":"结算组织","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"{{tableField_lgm25d9j.textField_lgm25d9w}}"},
{"field":"FEXCHANGETYPE","label":"汇率类型","type":"string","value":"HLTX01_SYS","parser":{"name":"ConvertObjectParser","params":"FNumber"}},
{"field":"FDATE","label":"业务日期","type":"string","value":"_function FROM_UNIXTIME( ( {dateField_lgn3helb} \/ 1000 ) ,'%Y-%m-%d' )"},
{"field":"FCURRENCYID","label":"币别","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"PRE001"},
{"field":"FBillTypeID","label":"单据类型","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"FKTKDLX02_SYS"},
{"field":"FBUSINESSTYPE","label":"业务类型","type":"string","value":"3"},
{"field":"FCONTACTUNITTYPE","label":"往来单位类型","type":"string","value":"{selectField_lgm25d9f_id}"},
{"field":"FCONTACTUNIT","label":"往来单位","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"{textField_lgm25d9i}"},
{"field":"FPAYUNITTYPE","label":"付款单位类型","type":"","value":"","parser":{"name":"","params":""}},
{"field":"","label":"","type":"","value":"","parser":{"name":"","params":""}},
...
],
"otherRequest":[
{"field": "FormId", "label": "业务对象表单Id", "type": "string", "describe": "必须填写金蝶的表单ID如:PUR_PurchaseOrder", "value": "AP_REFUNDBILL"},
{"field": "Operation", "label": "执行的操作", "type": "",},
...
]
}
字段解析与映射
在上述配置中,每个字段都包含以下信息:
field
: 金蝶云星空API中的字段名。label
: 字段标签,便于识别。type
: 数据类型,如string
、int
等。parser
: 用于解析和转换字段值的函数,例如ConvertObjectParser
。value
: 源数据中的字段值或计算公式。
例如,FBillNo
字段对应的是单据编号,其值来自于源系统中的serialNumberField_lgm25d8r
字段,并附加了一个固定后缀“(FKTK)”。类似地,其他字段也根据需求进行了相应的解析和转换。
数组处理
对于数组类型的数据,例如退款单明细(FREFUNDBILLENTRY
),我们需要定义子字段及其映射关系。这些子字段包括结算方式(FSETTLETYPEID
)、应退金额(FREFUNDAMOUNTFOR
)、备注(FNOTE
)等。每个子字段也同样需要指定其解析器和对应的值。
{
"field": "FREFUNDBILLENTRY",
...
{
...
{
...
{
...
{
...
{
...
{
...
}
}
}
}
}
}
}
提交与审核
最后,我们还需要配置一些额外参数,如表单ID(FormId
)、操作类型(Operation
)以及是否自动提交并审核(IsAutoSubmitAndAudit
)。这些参数确保了在将数据写入金蝶云星空时能够正确执行相应的操作。
{
...
}
实际应用案例
假设我们有一个退款单需要处理,其原始数据如下:
{
...
}
通过上述元数据配置,我们可以将这些原始数据转换为金蝶云星空API所需的格式,并通过POST请求将其提交到目标系统:
POST /k3cloud/api/batchSave HTTP/1.1
Host: example.kingdee.com
Content-Type: application/json
{
...
}
这样,通过轻易云平台强大的ETL功能,我们能够高效地完成从源系统到目标系统的数据集成任务,实现不同系统间的数据无缝对接。