历史版本5 :活动日程信息更新至企业微信日程 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

2. 操作步骤编辑

2.1 准备工作

2.1.1 将日程信息落库

将简道云或线下收集的日程信息,保存到数据库中,为后续更新到企业微信日程做准备。

2.1.2 配置可使用日程的应用

注:具体介绍请参见 日程

应用在调用日程接口前,需要先获得日程的使用权限;需要通过应用调用日程接口,本文示例是通过「自建应用」调用日程接口。

1)应用在调用日程接口前,需要先获得日程的使用权限。进入企业微信管理后台,点击「应用管理」,新增一个自建应用,本文示例新增自建应用「帆软微信集成」。如下图所示:

14.png

2)进入自建应用「帆软微信集成」,设置API接收,具体设置介绍请参见:回调配置。如下图所示:

15.png

3)点击「协作>日程」,将自建应用「帆软微信集成」添加到可调用接口的应用中。如下图所示:

16.png

2.1.3 获取 access_token 准备

调用 日程 相关接口时,我们需要用到 access_token ,获取 access_token 前,需要先获取 corpsecret 参数值、corpid 参数值

1)进入 2.1.2 节创建的自建应用「帆软微信集成」,可查看 corpsecret 参数值。如下图所示:

17.png

2)corpid 参数值获取请参见:术语说明-corpid

2.1.4 通过接口创建日程

为了后续更新企业微信日程,需要在 FineDataLink 中需要使用「数据比对」算子,对比数据库中日程数据与企业微信日程数据。为了获取企业微信日程数据,需要调用 获取日历下的日程列表 接口,这个接口需要传入参数cal_id,所以我们需要先调用 创建日历接口 来创建日历,并获取 cal_id 参数。

1)需要先获取 access_token 参数。在 postman 中获取 access_token ,corpid、corpsecret 参数值获取请参见本文 2.1.3 节内容。如下图所示:

1695277420696382.png

2)在 postman 中需要调用 创建日历接口 来创建日历。如下图所示:

1695267720917839.png

点击 send 后,结果如下图所示,获取到 cal_id 参数。如下图所示:

1695267804557966.png

可以看到,企业微信中,创建了名为文档测试的日程。如下图所示:

1695275712920724.png

2.2 获取企业微信 token

1)新建定时任务,拖入「数据转换」节点,进入「数据转换」节点。

2)新增「API 输入」算子,调用 access_token 接口,corpid、corpsecret 参数值获取请参见本文 2.1.3 节内容。如下图所示:

1695277587895429.png

点击「数据预览」,如下图所示:

24.png

3)新增「参数输出」算子,将 access_token 值作为参数输出。如下图所示:

注:建议配置默认值,方便后续节点查看效果;点击右侧「参数预览」,将参数值复制到默认值中即可,默认值不会影响实际运行结果。

1695277732369356.png

4)点击右上角「保存」按钮。

2.3 获取数据比对结果

拖入「数据转换」节点,进入「数据转换」节点。

2.3.1 读取来源表数据

2.1.1 节的日程信息可能存在多张表中,可以用「Spark SQL」算子进行处理,关联到一张数据库表中。

本文示例直接用处理好的表数据进行模拟。

1)读取来源表数据。如下图所示:

26.png

2)来源表数据中,日程时间字段为日期格式(yyyy-mm-dd),需要转化为时间戳格式,且需要新增列。如下图所示:

27.png

新增列
说明
starttime
endtime
cal_id
false_name
true_name
delay
act_body

2.3.2 读取目标表数据

需要获取日历下的日程列表。

1)拖入「API 输入」算子,调用 获取日历下的日程列表 接口,Body 中填写 cal_id 参数值,该参数获取请参见本文 2.1.4 节内容。如下图所示:

1695279335453425.png

2)添加「数据过滤」算子,过滤条件设置为 status 属于 0,过滤出日程状态正常数据。

3)拖入「字段设置」算子,删除schedule_id、attendees、description字段。

2.3.4 标记出增删改数据

1)拖入「数据比对」算子,标记出增删改数据。如下图所示:

1695279899760045.png

1695280090139588.png

2)点击「数据预览」,如下图所示:

注:本示例为展示效果,使用 创建日程 接口,新增了几个日程。

1695280184278562.png

2.3.5 比对结果输出

使用 数据分发 功能,将标记位新增、修改、删除的数据分别数据,便于后续更新日程信息。

1695280497869924.png

右键点击「数据比对」算子,点击「数据分发」,设置界面如下图所示:

1695280769101308.png

1)将新增数据输出为参数。「参数输出」算子设置如下:

新增参数
具体设置
fdltype第 1 列、所有行、数值型分割
actname第 4 列、所有行、数值型分割
describe第 21 列、所有行、数值型分割
user第 8 列、所有行、数值型分割
city第 10 列、所有行、数值型分割
starttime第 15 列、所有行、数值型分割
endtime第 16 列、所有行、数值型分割
calid第 17 列、所有行、数值型分割

2)将删除数据输出到 deleted 表,写入方式为「追加写入数据」。如下图所示:

注:任务第一次运行成功后,需要修改该节点,目标表改为已存在表 deleted ,写入方式改为「清空目标表,再写入数据」。

1695281407956612.png

3)将修改数据输出到 changed 表,写入方式为「追加写入数据」。

注:任务第一次运行成功后,需要修改该节点,目标表改为已存在表 changed ,写入方式改为「清空目标表,再写入数据」。

4)点击右上角「保存」按钮。

2.4 新增日程信息

新增「循环容器」节点,「循环容器」节点中拖入「数据转换」节点。「循环容器」节点设置如下图所示:

1695281892128768.png

2.4.1 生成 Body 数据并输出为参数

新增日程需要调用 创建日程 接口,调用接口时需要输入 Body 信息。

我们需要将 2.3.5 节新增数据输出的参数,拼接并生成 JSON(接口的 Body 值),然后输出为参数供后续 创建日程 接口使用。

1)拖入「Spark SQL」算子,SQL 语句如下图所示:

select '${starttime}' as starttime ,
  '${endtime}' as endtime,
  '${describe}' as describe ,
  '${actname}' as actname,
  '${user}' as user ,
  '${calid}' as calid,
  '${city}' as city,
  "1" as is_remind,
  "3600" as remind_before_event_secs,
  "0" as is_repeat

37.png

2)拖入JSON生成算子,生成 JSON(生成 创建日程 接口的 Body 数据)。如下图所示:

1695283258968926.png

3)拖入「参数输出」算子,新增参数 body ,值为:第一列、所有行、数值型分割。

4)点击右上角「保存」按钮。

2.4.3 新增日程

「循环容器」节点中再拖入「数据转换」节点,进入「数据转换」节点。

1)拖入「API输入」算子,调用 创建日程接口 ,