钉钉打卡系统以其便捷性、高效性和准确性,极大地方便了企业的考勤管理。然而,对于很多客户需要自行计算工资,需要同步考勤数据,如何从钉钉获取准确的考勤数据并进行工资计算成为比较常见的问题,因此,我们用逻辑引擎通过简单配置直接实现同步钉钉考勤的数据,这便避免了需要专门编码实现这个过程,而且可以扩展配置一个定时设置,让这个同步自动执行。接下来我们来看下JVS逻辑引擎是如何实现配置的。

配置思路:利用在逻辑引擎中可以调用外部接口,对接第三方系统的API的能力,以此拿到数据。主要使用的节点:【网络请求】,【固定变量】,MySQL操作节点。此处示例为对接钉钉接口,获取钉钉考勤打卡数据。

无需编码,逻辑引擎实现钉钉考勤数据自动化同步_逻辑引擎

配置方式如下:

1、查询数据库中是否有保存的token信息。

无需编码,逻辑引擎实现钉钉考勤数据自动化同步_数据_02

1.1 在分支执行线上面会根据(fx)执行结果(true/false)判断是否执行。此处判断【查询数据库token】是否有数据,没有查询到保存的token信息,或token信息已过期,则重新调用【获取token接口】https://open.dingtalk.com/document/orgapp/obtain-orgapp-token

无需编码,逻辑引擎实现钉钉考勤数据自动化同步_逻辑引擎_03

无需编码,逻辑引擎实现钉钉考勤数据自动化同步_业务逻辑_04

1.2 将拿到的token信息保存到数据库中(token2小时过期,2小时内使用数据库保存的token。这样保证token不会频繁调用生成)

无需编码,逻辑引擎实现钉钉考勤数据自动化同步_逻辑引擎_05

1.3 将拿到的token回填到【token变量】节点,【token变量赋值】节点(固定变量)可使用“变量绑定赋值”,对指定节点或字段进行赋值操作,后续调用钉钉接口时都使用【token变量】此变量数据

无需编码,逻辑引擎实现钉钉考勤数据自动化同步_逻辑引擎_06

2、查询到数据库中存在有效token时,直接将token赋值给【token变量】节点。后续调用钉钉接口时都使用此变量数据。

无需编码,逻辑引擎实现钉钉考勤数据自动化同步_数据库_07

3、调用【获取在职员工userid列表接口】,获取打卡数据前,需要使用userid列表作为请求参数。https://open.dingtalk.com/document/isvapp/intelligent-personnel-query-the-list-of-on-the-job-employees-of-the

无需编码,逻辑引擎实现钉钉考勤数据自动化同步_业务逻辑_08

4、使用【固定变量】节点公式获取在职员工接口返回的数据中的userid数组。

无需编码,逻辑引擎实现钉钉考勤数据自动化同步_业务逻辑_09

5、调用【获取打卡详情】接口,最终可获取到钉钉返回的对应人员的打开信息。

https://open.dingtalk.com/document/orgapp/attendance-clock-in-record-is-open

无需编码,逻辑引擎实现钉钉考勤数据自动化同步_数据库_10