作者:王林辉
推荐理由
实现飞书系统与ERP系统之间数据交互,各应用系统之间协同工作,事半功倍!
用户没有ERP账号,也不方便登录ERP系统情况下,但有飞书平台。我们通过一个ERP的公用的账号使得飞书集成平台保持与ERP的会话机制,用户不用关心是否有ERP账号,也可以不去登录ERP系统情况下,在飞书审批界面的表单中选择到ERP系统的数据,同样填写完数据,直接将数据传输到ERP系统,这样就可以解决ERP账号的问题,同时简化了用户的操作难度,而且实现了系统之间数据的交互,提高了工作便捷度,提高了审批效率。
一、为什么飞书集成平台保持与ERP的会话
会话是不同系统之前保持数据通信的一种通话方式。飞书集成平台与ERP系统保持会话的目的是为了实现飞书系统与ERP系统之间数据交互。通过保持会话,飞书集成平台可以及时获取ERP系统中的数据变化,并将这些变化及时的呈现到飞书系统中,以便用户在飞书中查看和处理相关业务。也能通过会话,将飞书的数据传输到ERP系统中,实现飞书数据信息到ERP的传递。这有助于确保企业内部的各个应用系统之间的协同工作,提高办公效率。
二、如何实现会话
1.实现会话有两种方式:
1)SDK辅助类示例(引用Kingdee.BOS.WebAPI.Client.dll),需要引入SDK包来开发。
2)无引用组件(不引用金蝶的组件),通过直接接口形式请求采用HTTP+JSON,也就是用RESTful的方式。
2.为什么选用无引用组件(不引用金蝶的组件)方式
1)飞书集成平台不支持组件引入功能,所以直接采用了无引用组件方式。
2)实现方式是:
API登录一次默认会保持20分钟会话,如果20分钟内会调用其他接口,会话时间会重新算;即使后台处理时间超长,或后台把会话清理了,返回的结果也会提示会话丢失,只需要重新登录即可,所以没有必要每次调用其他接口之前去调用登录接口。
三、会话保持流程图
1.ERP登录获取Token子流程
1)飞书集成平台请求ERP 系统中登录接口,头部携带用户名和密码进行登录。
2)ERP 系统生成 Token,并将其发送给飞书集成平台。
3)飞书集成平台将 Token 存储到数据存储中,以便后续操作使用。
2.判断会话是否失效子流程
1)飞书集成平台定期检查数据存储中的 Token 是否过期。
2)如果 Token 过期,飞书集成平台将重新调用ERP登录获取Token子流程。
3)如果 Token 未过期,飞书集成平台使用该token,并继续保持会话。
四、具体的实现过程
飞书集成平台如何与ERP系统保持会话。首先,通过ERP登录获取Token子流程,飞书集成平台请求ERP系统的登录接口,获取Token并存储到数据存储中。接着,判断会话是否失效子流程,检查数据存储中的Token是否过期,如果过期则重新调用ERP登录获取Token子流程。具体实现过程包括建立集成平台的ERP登录获取Token子流程和判断会话是否失效子流程,涉及到ERP登录接口、ERP Token存储、子流程触发器、数据存储等组件。
1.建立集成平台的ERP登录获取Token子流程
250px|700px|reset
(1)子流程节点
使用子流程触发器的工作流,支持在其他工作流使用调用子流程节点触发。子流程是工作流中抽取出来的可以复用的逻辑,可以被其他流程(主流程)调用,但必须由子流程触发器触发。
(2)ERP登录节点
1)ERP登录接口
2)飞书集成平台httpcilent组件使用
250px|700px|reset
(3)ERPToken存储节点
将ERP登录接口返回的ERPToken存储到飞书集成平台的数据存储中。
250px|700px|reset
(4)子流程响应节点
当需要将子流程的处理结果返回给主流程时,可以使用子流程响应组件。
2.判断会话是否失效子流程
(1)子流程触发器
使用子流程触发器的工作流,支持在其他工作流使用调用子流程节点触发。子流程是工作流中抽取出来的可以复用的逻辑,可以被其他流程(主流程)调用,但必须由子流程触发器触发。
(2)获取ERPToken节点
数据存储里拿到之前生成的ERPToken。
250px|700px|reset
(3)ERP查看组织接口
(4)解析返回数据节点
拿到ERP查看组织接口返回的Body数据,并解析出里面的IsSuccess。
250px|700px|reset
(5)判断会话是否失效
根据解析出里面的IsSuccess,如果为true,会话是生效的,否则会话失效,调用ERP登录获取Token子流程。
(6)ERP登录获取Token节点
调用第一步的ERP登录获取Token子流程。
250px|700px|reset
通过上面两个流程的建立,在用户使用过程中不会因为会话失效导致无法使用,或者造成使用流程麻烦等问题的出现,极大解决了用户使用操作难度,同样也简化了用户的使用效率,更加直观便捷。