反馈已提交

网络繁忙

一条消息提醒一个人,可发送多条消息

  • 文档创建者:Wendy123456
  • 历史版本:4
  • 最近更新:Wendy123456 于 2024-04-01
  • 1. 概述

    1.1 应用场景

    群通知中,用户希望:

    • 每条消息对应一个通知人。

    • 某个人对应的通知内容中,文字使用颜色代表事务的紧急程度。

    • 通知内容中包含链接,用户点击即可跳转到详情页面。

    如下图所示:

    1711963024314711.png

    1.2 实现思路

    1)未处理任务总数量通知,如下图所示:

    将「未处理任务总数量」算出后,使用参数输出算子作为参数输出;然后自定义一个参数,值为 yyyy-mm-dd;在消息通知节点中,这两个参数构成消息通知内容。

    1711963349210587.png

    2)每个人收到的消息内容如下图所示:

    将待处理成员,使用参数输出算子作为参数输出;「循环容器」节点中遍历所有待处理成员,发送对应消息(详情可参见本文第二章内容)。

    1711967992371315.png

    1.3 任务展示

    FineDataLink 中的数据处理过程,详情参见:https://demo.finedatalink.com/ 「一条消息提醒一个人,可发送多条消息」。

    2. 示例

    2.1 场景模拟

    示例数据:文档任务处理.xlsx

    「文档任务处理」是已经过处理后的表,部分数据如下图所示:

    6.png

    希望每天在企业微信群中,先通知今日未处理任务总数量。

    再通知对应成员还未处理(「当前工作流状态名称」为「组员处理」的任务)的文档任务、对应的任务编号、超期时间;未处理的文档任务可以点击链接跳转。其中:

    • 当前时间距离「需求创建时间」小于 30 天的为未超期任务------文字颜色不做设置。

    • 大于等于 30 天小于 60 天的为超期任务------希望企业微信群消息中,文字内容为黄色(链接文字除外)。

    • 大于 60 天的为严重超期任务------希望企业微信群消息中,文字内容为红色(链接文字除外)。

    1711952114458966.png

    2.2 今日未处理任务总数量通知

    1711954475576065.png

    消息内容中需要用到两个参数,代表着今日日期、未完成任务总数量。

    2.2.1 设置日期参数

    设置日期参数,在消息内容中告知用户今日日期。

    新建定时任务,点击「参数列表」,新增日期参数「今日时间」,值为「yyyy-mm-dd」,如下图所示:

    14.png

    2.2.2 今日未处理任务总数量作为参数输出

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

    2)拖入「DB表输入」算子,读取「文档任务处理」表数据。如下图所示:

    9.png

    3)拖入数据过滤算子,过滤出「当前工作流状态名称」为「组员处理」的任务。如下图所示:

    10.png

    4)拖入「Spark SQL」算子,计算出所有未处理的文档任务。如下图所示:

    注:公式中,表名和字段名为点击生成。

    SELECT COUNT(DISTINCT 数据过滤.需求编号) FROM 数据过滤

    1711952730315855.png

    5)将未处理任务总数量作为参数输出。如下图所示:

    12.png

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

    2.2.3 消息通知

    拖入消息通知节点,在企业微信群中提醒所有人未处理的文档任务总数量。如下图所示:

    13.png

    2.3 每条消息对应一个接收人

    2.3.1 将要通知的成员输出为参数

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

    2)拖入「DB表输入」算子,读取「文档任务处理」表数据。如下图所示:

    16.png

    3)拖入数据过滤算子,过滤出「当前工作流状态名称」为「组员处理」的任务。如下图所示:

    1711954911975773.png

    4)拖入分组汇总算子,将成员名称分组汇总。如下图所示:

    18.png

    5)拖入数据过滤算子,过滤出非空数据。如下图所示:

    1711955160766781.png

    6)拖入参数输出算子,将成员名称输出为参数。如下图所示:

    1711955259849537.png


    7)点击右上角保存按钮。

    2.3.2 循环容器设置

    需要遍历所有成员名称,获得每个成员下未完成的任务,所以需要使用循环容器节点。

    拖入循环容器节点,设置如下图所示:

    21.png

    2.3.3 未处理任务的编号、标题、超期时间输出为参数

    1)循环容器节点中拖入数据转换节点,进入数据转换节点。

    2)拖入「DB表输入」算子,读取「文档任务处理」表数据。如下图所示:

    22.png

    3)拖入数据过滤算子,过滤出「当前工作流状态名称」为「组员处理」、且成员名称为 2.3.1 节参数的任务。如下图所示:

    23.png

    4)新增计算列,计算已超期时间、拼接任务链接:

    • 已超期时间:DATEDIF(需求创建时间},now(),"D")当前时间距离「需求创建时间」的天数,便于后续将未完成任务划分为:严重超期任务、超期任务、未超期任务。

    • 任务链接:CONCATENATE('https://help.fanruan.com/finedatalink/',需求编号);「文档任务处理」表中只有「需求编号」,文档任务是在业务系统中流转的,将固定链接与「任务编号」拼接起来。

    如下图所示:

    24.png

    5)拖入分组汇总算子,根据已超期时间将未完成任务划分为三类:严重超期任务、超期任务、未超期任务。

    字段
    说明
    已超期时间根据超期时间,对未完成任务进行分类:严重超期任务、超期任务、未超期任务
    成员编号根据「成员编号」分组汇总下,便于后续根据已超期时间排序
    需求编号企业微信群消息中,这些字段组成消息内容
    任务链接
    需求名称
    已超期时间1

    作用一:同

    作用二:消息通知内容中,严重超期的任务显示为红色,已超期的任务显示为黄色,未超期的任务颜色不做处理,为了消息通知内容整洁,需要根据已超期时间排序,消息通知内容中相同分类的任务连续显示

    27.png

    点击「已超期时间」字段>区间分组,根据超期时间对未完成任务进行分类。如下图所示:

    28.png

    将「已超期时间」名称改为「任务状态」,已超期时间1名称改为已超期时间」。如下图所示:

    1711957586551370.png

    6)拖入「Spark SQL」算子,将数据根据成员编号、已超期时间(降序)分组汇总。如下图所示:

    1711957707978428.png

    点击数据预览,可看到数据根据任务状态、成员编号分组展示,已超期时间降序显示。

    这样保证,消息内容中,某成员严重超期的任务(红色)能连续显示、超期的任务(黄色)连续显示、未超期任务连续显示,更加整洁。

    31.png

    7)已超期时间字段后续需要在新增计算列的公式的 CONCATENATE 函数中用到,该函数中参数类型需要为字符串类型,目前已超期时间字段类型为 double 类型,需要先修改字段类型。

    拖入字段设置算子,将已超期时间字段的类型改为 varchar 。如下图所示:

    32.png

    8)后续步骤中,新增计算列算子的公式中使用单引号表示字符串(公式中使用到需求名称字段),如果需求名称」的值中包含单引号,可能引起语法错误,所以需要将需求名称」中的单引号去掉。

    拖入新增计算列算子,新增需求名称2字段,将需求名称」中的单引号替换为空格。如下图所示:

    33.png

    9)拖入新增计算列算子,将需求编号、需求名称、任务链接、已超期时间作为参数输出。如下图所示:

    其中,严重超期任务在消息内容中,文字颜色为红色(链接文字不做处理);超期任务在消息内容中,文字颜色为黄色(链接文字不做处理);未超期任务,文字颜色不做处理;需求名称可点击,跳转到业务系统中查看任务详情。

    34.png

    10)拖入「参数输出」算子,将输出参数字段作为参数输出。如下图所示:

    35.png

    11)点击右上角保存按钮。

    2.4 去掉需求名称中的逗号

    若不去掉逗号,消息通知内容如下所示:

    所以需要将逗号去掉。

    1711968228733522.png

    1)循环容器节点中拖入数据转换节点,进入数据转换节点。

    2)拖入「Spark SQL」算子,将输出参数字段中的逗号替换为空字符串。如下图所示:

    1711959352178561.png

    3)拖入参数输出算子,将 canshu 输出为参数。如下图所示:

    37.png

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

    2.5 消息通知

    拖入消息通知节点,通知渠道选择企业微信群机器人,消息类型选择markdown消息,消息内容如下图所示:

    38.png

    2.6 使用虚拟节点将两个数据转换节点连接(可不做)

    本节内容可忽略不做,只是为了使用虚拟节点对多个分支节点进行汇总,不影响节点执行顺序。

    拖入「虚拟节点」,将两个「数据转换」节点连接起来。如下图所示:

    1711961156407982.png

    2.7 效果查看

    任务运行成功后,消息通知内容如下图所示:

    1711960947867766.png

    2.8 设置执行频率

    点击右上角「调度计划」,设置任务执行频率。如下图所示:

    1711961467862909.png





    附件列表


    主题: 数据开发
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持