钉钉数据集成到金蝶云星空案例分享:采购申请单-撤销
在系统对接和数据集成的过程中,如何确保各环节的数据完整性与实时性是一项技术挑战。本文将探讨一个具体的案例——如何通过轻易云数据集成平台,将钉钉中的采购申请单撤销信息无缝对接至金蝶云星空,以实现业务流程中的精准控制。
本案例主要涉及两个API接口——从钉钉获取采购申请单状态的topapi/processinstance/get
接口,以及写入到金蝶云星空的CancelAssign
接口。首先,我们需要确保从钉钉抓取的数据不漏单,这就要求我们实现定时可靠地调用钉钉API,并处理必要的分页和限流问题。
为了快速且批量地将大量数据写入到金蝶云星空,我们设计了一套高效的数据流管道。通过自定义映射规则,从而应对两者之间可能存在的数据格式差异。同时,为了进一步保障系统稳定运行,还需建立完善的异常处理机制和错误重试策略。此外,每个步骤都进行实时监控与日志记录,以便及时发现并解决潜在问题,提高整体效率。
这一整套方案不仅保证了数据集成过程中的透明度,更显著提升了业务操作效率。在以下部分中,我们将详细介绍此方案中所用到的一些关键技术和具体实施细节。
调用钉钉接口topapi/processinstance/get获取并加工数据的技术案例
在轻易云数据集成平台的生命周期中,调用源系统接口是至关重要的一步。本文将深入探讨如何通过调用钉钉接口topapi/processinstance/get
来获取并加工数据,以实现采购申请单的撤销操作。
接口配置与调用
首先,我们需要配置元数据以便正确调用钉钉接口。以下是元数据配置的详细内容:
{
"api": "topapi/processinstance/get",
"effect": "QUERY",
"method": "POST",
"number": "number",
"id": "id",
"name": "number",
"idCheck": true,
"autoFillResponse": true,
"condition": [
[
{
"field": "申请类别",
"logic": "eqv2",
"value": "生产材料"
}
]
]
}
该配置说明了我们将使用POST方法来调用topapi/processinstance/get
接口,并根据特定条件(申请类别为生产材料)来查询数据。
数据请求与清洗
在数据请求阶段,我们通过POST请求向钉钉接口发送查询条件。以下是一个示例请求体:
{
"process_instance_id": "<具体实例ID>"
}
此时,系统会根据元数据中的条件过滤出符合要求的数据,即申请类别为“生产材料”的采购申请单。
一旦获取到原始数据,我们需要对其进行清洗和预处理。这包括但不限于:
- 检查返回的数据结构是否符合预期。
- 去除冗余字段,仅保留必要信息。
- 格式化日期、金额等字段,确保一致性。
例如,假设返回的数据包含以下字段:
{
"process_instance_id": "<具体实例ID>",
"title": "<标题>",
"status": "<状态>",
...
}
我们可以通过编写脚本或使用轻易云内置的清洗工具,将其转换为所需格式:
{
"id": "<具体实例ID>",
"name": "<标题>",
...
}
数据转换与写入
在完成数据清洗后,下一步是将其转换为目标系统所需的格式,并写入数据库或其他存储介质。这一步通常涉及以下操作:
- 根据目标系统的要求重新组织数据结构。
- 将清洗后的数据映射到目标字段。
- 执行必要的数据校验和转换,如类型转换、单位换算等。
例如,如果目标系统要求的数据格式如下:
{
"request_id": "<具体实例ID>",
"request_title": "<标题>",
...
}
我们需要编写相应的映射规则,将清洗后的数据转换为上述格式。
自动填充响应
元数据配置中的autoFillResponse
属性设置为true,这意味着系统会自动填充响应结果。这一功能极大地简化了开发过程,使得我们无需手动处理每个响应字段。
条件过滤与逻辑判断
元数据中的condition
字段定义了查询条件。在本案例中,我们仅查询申请类别为“生产材料”的采购申请单。通过这种方式,可以有效地减少不必要的数据传输和处理,提高系统性能。
总结来说,通过合理配置元数据并利用轻易云平台强大的集成功能,我们可以高效地调用钉钉接口获取并加工所需数据,从而实现采购申请单的撤销操作。这一过程不仅提升了业务透明度和效率,还确保了每个环节都清晰可见。
采购申请单撤销的ETL转换与写入金蝶云星空API接口
在数据集成生命周期的第二步,我们需要将已经集成的源平台数据进行ETL(Extract, Transform, Load)转换,转为目标平台金蝶云星空API接口所能够接收的格式,并最终写入目标平台。本文将详细探讨如何通过轻易云数据集成平台配置元数据,实现采购申请单撤销操作的数据转换与写入。
配置元数据
我们使用以下元数据配置来实现采购申请单撤销操作:
{
"api": "CancelAssign",
"method": "POST",
"idCheck": true,
"request": [
{
"field": "FormId",
"label": "业务对象表单Id",
"type": "string",
"describe": "必须填写金蝶的表单ID如:PUR_PurchaseOrder",
"value": "PUR_Requisition"
},
{
"field": "Numbers",
"label": "编码集合",
"type": "string",
"value": "{{单据编号}}"
},
{
"field": "Ids",
"label": "id集合",
"type": "string",
"value": "_findCollection find FID from 41890cdb-99b0-3124-99a8-5c91f522ffa4 where FBillNo={{单据编号}}"
},
{
"field": "InterationFlags",
"label": "交互标志集合",
"type": "string",
"describe":"字符串类型,分号分隔,格式:\"flag1;flag2;...\"(非必录) 例如(允许负库存标识:STK_InvCheckResult)"
},
{
"field":"IgnoreInterationFlag",
"label":"是否允许忽略交互",
"type":"string",
"describe":"布尔类型,默认true(非必录)","value":"true"
},
{
"field":"NetworkCtrl",
"label":"是否启用网控","type":"string","describe":"布尔类型,默认false(非必录)","value":"false"
},
{
"field":"IsVerifyProcInst","label":"检验单据关联运行","type":"string","describe":"是否检验单据关联运行中的工作流实例,布尔类型,默认false(非必录)","value":"false"
}
]
}
数据请求与清洗
在ETL过程的第一步,我们从源系统中提取相关数据。假设我们已经获取到需要撤销的采购申请单的编号{{单据编号}}
。接下来,我们需要根据这个编号找到对应的表单ID和其他相关信息。
数据转换
在数据转换阶段,我们根据元数据配置,将提取到的数据进行相应的转换,以符合金蝶云星空API接口所需的数据格式。
- FormId: 固定值
"PUR_Requisition"
,表示采购申请单。 - Numbers: 使用占位符
{{单据编号}}
填充实际的采购申请单编号。 - Ids: 通过SQL查询语句
_findCollection find FID from 41890cdb-99b0-3124-99a8-5c91f522ffa4 where FBillNo={{单据编号}}
获取对应的ID集合。 - InterationFlags: 可选字段,根据具体需求填充交互标志集合。
- IgnoreInterationFlag: 默认值为
true
。 - NetworkCtrl: 默认值为
false
。 - IsVerifyProcInst: 默认值为
false
。
数据写入
在完成数据转换后,我们使用POST方法将处理后的数据发送到金蝶云星空API接口。以下是一个示例请求体:
{
"FormId": "PUR_Requisition",
"Numbers": "{{实际单据编号}}",
"Ids": "_findCollection find FID from 41890cdb-99b0-3124-99a8-5c91f522ffa4 where FBillNo={{实际单据编号}}",
...
}
通过这种方式,我们确保了源系统中的采购申请单撤销操作能够无缝对接到目标系统金蝶云星空,实现了跨系统的数据集成与同步。
实时监控与错误处理
在整个ETL过程中,通过轻易云提供的平台功能,可以实时监控数据流动和处理状态。如果出现任何错误或异常情况,可以及时进行调整和修正,以确保数据准确性和一致性。
综上所述,通过合理配置元数据并执行ETL过程,我们能够高效地将源平台的数据转换并写入到目标平台金蝶云星空,实现了不同系统间的数据无缝对接。