历史版本17 :定时调度实现给不同的人发送不同内容-示例二 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 应用场景

一般在销售行业中,一个厂家下会有很多分销商,分销商需要从厂家那里进行采购,汇款等一系列操作,而厂家也会定期的给分销商发送邮件,告知他们货物的剩余情况,汇款情况等;

公司发工资的时候,给员工发送一份关于该员工的工资邮件。

像这种定期给不同的人发送不同内容的邮件怎么使用报表实现呢?

1.2 实现思路

定时调度任务设置过程中:

1)勾选「调度对象」步骤中的「除通用结果外,根据默认用户组内的用户单独生成结果」按钮。

在执行定时任务时,会根据参数$fine_username进行数据过滤,在 schedule 文件夹中的用户文件夹下生成的 cpr 文件内容是相应用户的工资信息。

2)在「文件处理」步骤中,勾选「邮件通知」,可实现不同的人收到不同内容邮件的功能。

注:定时任务的权限控制可参考 定时任务的权限控制

2. 示例编辑

2.1 准备用户信息

管理员点击「服务器>服务器数据集」,新建内置数据集「staff」,数据集内容如下图所示:

这个数据集既是平台用户信息表,也是模板参数取数表,两者必须保持一致方可通过用户名控制模板显示内容。

2.2 准备模板

设计器新建普通报表,A2~F2单元格的值取自上文的服务器数据集,如下图所示:

双击 A2 单元格,设置过滤条件:(列名:name) 等于 '=$fine_username'

注:此处也可以通过过滤用户的角色和职务来实现,分别使用对应的参数$fine_role、$fine_position。

已完成模板请参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\定时任务内容权限控制.cpt

2.3 导入用户

管理员登录数据决策系统,点击「管理系统>用户管理>所有用户>导入用户」,使用上文的服务器数据集导入用户,如下图所示:

导入的信息中包含了用户的邮箱,即收件人邮箱。如不包含邮箱信息,请手动为用户配置邮箱。

2.4 设置发件人

管理员登录数据决策系统,点击「管理系统>系统管理>邮箱」,配置邮箱服务器,如下图所示:

不同邮箱的详细配置方法请参见:邮箱

2.5 设置定时调度任务

2.5.1 添加任务

管理员登录数据决策系统,点击「管理系统>定时调度>添加任务」,添加一个定时调度任务。如下图所示:

2.5.2 基本设置

「任务名称」为工资表,「默认用户组」为用户 Alice 和 Anna,点击「确定」,如下图所示:

2.5.3 调度对象

点击「下一步」,选择 2.2 节做好的模板%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\定时任务内容权限控制.cpt

勾选「除通用结果外,根据默认用户组内的用户单独生成结果」按钮,文件名称为「薪资邮件」,如下图所示:

1584500577963183.png

2.5.4 调度周期

点击「下一步」,不做操作。

2.5.5 文件处理

点击「下一步」,勾选「邮件通知」。

收件人为「默认用户组」,主题为「工资表」,邮件内容为${fine_username}的工资,勾选「正文预览报表内容」和「正文加上结果链接」,点击「保存」,如下图所示:

2.6 效果预览

任务执行后,不同用户收到的邮件内容不同,仅显示自己的薪资信息。

注:邮件以 HTML 显示,文字可复制。

  • Anna 收到的邮件内容如下图所示:

  • Alice 收到的邮件内容如下图所示: