历史版本2 :北森接口:使用分页参数进行分页取数 返回文檔
編輯時間: 內容長度:图片数:目录数: 修改原因:

目錄:

1. 概述编辑

1.1 应用场景

公司内部使用北森系统进行人员管理。

希望将 根据时间窗滚动查询变动的员工与单条任职信息 中的人员信息数据取出,以便进行数据分析。

1.2 接口说明

接口文档详情参见:根据时间窗滚动查询变动的员工与单条任职信息

1.3 实现思路

FilterString 参数中使用日期区间作为参数,获取一段时间(开始时间和结束时间)作为日期参数,取出该段时间内的数据,后续通过定时调度任务进行追加。

如何取出该时间段数据:先清空日期区间内的数据,然后通过循环容器循环次数来确定每次取数的开始行数,直到结果数据行数无法整除每次区数量,再跳出循环。


2. 操作步骤编辑

2.1 获取 access_token

access_token是调用北森API接口的唯一凭证,相当于创建了一个登录凭证,其它的业务API接口,都需要依赖于access_token来鉴权调用者身份,使用Key和Secret可获取access_token。

参考北森接口文档:https://open.italent.cn/#/open-document

因此需要调用北森获取 token 接口,便于在后续调用获取用户信息接口时使用。

使用「参数赋值」节点,输入按照接口文档选择请求方式、输入 URL、在 Body 中输入请求,如下图所示:

将获取到的 token 设置为参数,便于后续使用,如下图所示:

2.2 设置时间参数

由于根据时间窗滚动查询变动的员工与单条任职信息接口有「startTime」和「stopTime」必填请求参数,因此需要设置时间参数,动态生成时间,开始时间默认前 60 天(可自定义),结束时间为当天,保证每次查询用户数据为全量。

使用「参数赋值」设置时间范围开始时间为当前时间前 60 天(可自定义),结束时间为当天,如下图所示:

注:示例使用 MySQL 数据库,用户需要根据实际情况修改 SQL 语句。

select concat(date_sub(CURDATE(),interval 60 day),'T00:00:00') as startTime ,
  concat(date_format(now(),'%Y-%m-%d'),'T00:00:00') as stopTime

然后分别「startTime」和「stopTime」将设置为参数,如下图所示:

2.3 循环容器滚动查询全量数据

2.3.1 设置 scrollId 分页参数和中间表

由于北森用户接口一次只返回 100 条数据,因此需要通过分页参数 scrollid 查询下页数据,使用中间表 beisen_mid_scrollid 将 scrollid 记录下来。

因此需要在数据库中新建中间表 beisen_mid_scrollid ,设置文本字段 code、scrollid。

首先查询 scrollId,中间表中的 scrollId 数据,其中第一次循环 scrollId 为空,与接口取数逻辑一致




然后将滚动查询中的 scrollId 分页参数写入到中间表中,以便滚动循环取数。

在循环容器中拖入「数据转换」,并进入编辑界面,如下图所示:

使用 API 输入,输入用户信息接口 url,并设置认证类型,引用 2.1 节获取的 access_token 参数,如下图所示:

然后再 Body 中输入请求参数,如下图所示:

{
    "empStatus": [2,3],
    "employType":[0,2],
    "timeWindowQueryType":1 ,
    "isWithDeleted":false,
    "enableTranslate": true,
    "startTime":"${startTime}",
    "stopTime":"${stopTime}",
    "scrollId":"${scrollId}"
}

点击数据预览即可看到取出的数据,如下图所示:

然后使用 JSON 解析,将分页数据 scrollId 和 code  字段解析,并写入至中间表 beisen_mid_scrollid 中,便于后续使用分页参数获取下一页的 scrollId,如下图所示:

然后使用将数据写入中间表「beisen_mid_scrollid」,如下图所示:

2.3.2 使用分页参数取出用户数据

查询北森用户接口,将数据写入到用户表 beisen_user 中。

在循环容器中新建数据转换,如下图所示:

同 2.3.1 节的 API 输入,将token和请求写入,如下图所示: