(个人亲测成功)关于智能推送日报表的实现

楼主
山西省晋中市榆次区龙湖大街229号天缘大厦17楼
关于智能推送日报表的实现
一、现状
任何企业、部门等单位基本上都有日报表、周报表等固定周期性报表的需求,大多数单位的报表填报不是定时的,或者说无规律可言,造成使用定时调度功能,会出现以下几种情况:
1、定时调度设置为【简单重复执行】,例如设置成每分钟执行一次来监控数据更新,会造成 数据报表的重复发送
2、定时调度设置为【明细频率设置】,例如设置成每天15:00执行,如果在15:00之前没有填报数据更新,则会发送空数据报表,或错误数据报表
3、。。。。。。

二、需求
监控数据库,如果有数据更新即有新的日报数据录入数据库,就触发定时调度,发送日报表

三、报表cpt设计
1、设计数据库表,必须的字段:ID为自增主键,ZT为记录本条记录是否发送的发送状态,0为未发送,1为已发送
2、设计日报表cpt-填报,用于日报数据的录入,其中字段【ZT】值为0,即未发送数据
3、设计日报表cpt-发送,用于日报数据的定时调度,并设置报表填报属性为更新提交,ID为主键,【ZT】值为1,即已发送数据;定义数据集为where ZT=0;如果需要识别多个日期的报表,可以增加where条件,取ZT=0且日期字段为最小值的记录,即可区分,避免日报数据出现多个未发送数据的混乱

四、定时调度设置
1、日报表-发送:模版选择【设计日报表cpt-发送】,设置频率为3分钟一次,设置执行条件为公式判断,公式为len(A2)>0,A2为记录行单元格,即为查询记录数不为0,设置本地文件类型为预览(切记),设置开始时间2018年7月15日 15:00:00(老板午休结束时间,呵呵😄)
上述步骤为发送日报记录

2、日报表-更改ZT状态为已发送:模版选择【设计日报表cpt-发送】,设置频率为3分钟一次,设置执行条件为公式判断,公式为len(A2)>0,A2为记录行单元格,即为查询记录数不为0,设置本地文件类型为填报(切记),设置开始时间2018年7月15日 15:00:15(即比上个任务晚执行15秒)
上述步骤为更改发送状态

五、感谢
感谢论坛孤陌等大神的帮助和指点

六、其他
1、亲测成功,已使用一周左右,没有任何问题
2、顾虑:服务器重启等情况,是否会影响执行效果,有待验证
3、但愿能帮到你们。。。。。。曲线救国的方式实现,如果有好的方法,请指教


编辑于 2018-7-27 10:45  
分享扩散:

沙发
发表于 2018-7-27 10:42:05
曲线救国实现,如果有好的办法请指教
板凳
发表于 2018-7-29 09:39:57
如果服务器重启了,你的填报执行了,而预览未执行;在2个任务中间有15秒,有人提交;这些情况发生你是不是呵呵哒了?
填报和预览不要分开执行,在预览成功后执行本次预览的ID存储过程,改变他们的状态,就可以实现成功推送后更改状态。这样高的推送频率,会生成大量的推送日志。是否要考虑下定时清除这些推送日志?





编辑于 2018-7-29 09:50  
地板
发表于 2018-7-30 09:24:00
曲线救国实现,如果有好的办法请指教
5楼
发表于 2018-7-30 11:11:51
6楼
发表于 2018-7-30 11:37:38
咋 感觉这么绕呢 模板吗
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部 返回列表