历史版本3 :定时调度客户端通知-APP通知 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

1. 描述编辑

1.1 场景一
对于生产类的数据,往往需要监控某个指标是否在规定范围内,如果超过了阀值,就要通知到相关人员去确认。
这种情况下,可以采用FR的定时任务,监控数据是否超过阀值,如果超过,则自动推送消息至移动APP端。
1.2 场景2
对于财务类的数据,如月报,不确定填报人何时提交数据的,就需要监控是否已经有新的数据提交上来,然后通知相关人员查看汇总数据。这种情况下,也可以采用FR的定时任务,监控是否有新的数据,如果有,则自动推送消息至移动APP端。
注:在使用消息提醒时,往往还会遇到一个要求,就是根据数据的不同,需要推送给不同的人。

2. 案例编辑

我们以一个实际案例来看看推送消息的使用过程,场景如下:
例如公司要求每个销售在每月的1号至5号之间需要评估自己这个月的预计签单额,并且填报到数据库中月度目标额表中,
不确定销售会在哪一天提交数据,因此需要监控数据库是否有新的数据进来,从而推送消息给这个销售对应的区域经理。
在每个月的1号从数据库中的合同明细抽取出各销售本月的签单额,与预计额比较,然后推送给销售告诉他上月销售目标是否达到。
示意流程图如下:
相关模板及定时任务设置:
2.1 监控数据是否更新
这个方案中是用数据库的触发器来监控的,大体思路为:
原始数据库表为plan,新建一张数据库表plan_new用来保存插入的新数据,在数据库中定义触发器如果插入了新的数据,则将新数据保存到plan_new中,填报模板为plan.cpt
注:当然这个监控数据更新可以不用这个方法,也可以使用其他方式,例如sqlserver的话使用CDC变更数据捕获等方式来监控表数据是否变更,或者用报表来间接判断等。
2.2 更新的数据自动微信推送给区域经理
sql查询更新表plan_new,做成模板plan_manager.cpt
打开定时调度,设置定时任务,模板选择plan_manager.cpt
222
因为我们要实时监控,所以执行频率如设置每隔一分钟执行一次,当然如果不需要精确到一天的具体时间,可以设置每天执行一次或者每周执行一次,根据需要设置。
222
执行条件处我们采用公式判断,B1单元格取的为更新的数据条数,如果B1=0,则表示没有更新,那么此次任务不执行
只有当B1>0即有更新数据时,才执行。
222
生成的结果名字为“销售预估签单额”,注意需要给用户设置可以访问这个目录的权限
并且设置推送微信消息
我们来查看一下效果,模拟销售A在2016-11-28  9:39录入的数据
222
我们来看一下定时器的后台监控,可以看到,在9:40分的时候,定时任务成功了,并发送了消息
222
而收到的消息则为A提交的数据
222
例如,我们在2016-11-28  9:44的时候,模拟销售B提交数据,又会及时推送B的数据
222
打开消息,看到的是B的数据
222
2.3 将不同的数据发送给不同的人
到了下个月1号,我们从数据库中汇总出每位销售实际的签单额,与预估值进行比较,推送消息给对应的销售,让他知道他上个月的目标是否完成。例如,我们取到的数据如下:
222
这个时候,需要自动给销售A、D推送消息告诉他们没有完成目标,而给销售B,C推送消息告诉他们完成了目标。
如果要实现这种,首先需要制作模板,将数据根据用户进行过滤,实现不同的用户登录,只能看他自己的数据
例如这边的模板real.cpt,在sql中数据用用户名进行过滤
如销售A登录时,只看到销售A的数据
222
然后我们再来设置定时任务
设置每个月的1号执行任务
222
结果报表为“目标完成情况”,设置根据用户选择不同的内容
然后在设置推送微信消息
启动后,每个月的1号就会把上个月每个销售的目标完成结果推送给他。
而打开看到的只有他自己的数据,例如D收到的消息打开就是
222

3. 其他编辑

这个方案,不仅仅适用于推送微信消息,也适用于推送消息至app客户端,只需将定时任务最后一步设置为“推送消息”即可,如下图:
222