1. 概述
1.1 应用场景
一般在销售行业中,一个厂家下会有很多分销商,分销商需要从厂家那里进行采购,汇款等一系列操作,而厂家也会定期的给分销商发送邮件,告知他们货物的剩余情况,汇款情况等;
公司发工资的时候,给员工发送一份关于该员工的工资邮件。
像这种定期给不同的人发送不同内容的邮件怎么使用报表实现呢?
1.2 实现思路
定时调度任务设置过程中:
1)勾选「调度对象」步骤中的「除通用结果外,根据默认用户组内的用户单独生成结果」按钮。
在执行定时任务时,会根据参数$fine_username进行数据过滤,在 schedule 文件夹中的用户文件夹下生成的 cpr 文件内容是相应用户的工资信息。
2)在「文件处理」步骤中,勾选「邮件通知」,可实现不同的人收到不同内容邮件的功能。
注:定时任务的权限控制可参考 定时任务CPR文件内容权限控制 。
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。
勾选「除通用结果外,根据默认用户组内的用户单独生成结果」按钮,文件名称为「薪资邮件」,如下图所示:
2.5.4 调度周期
点击「下一步」,不做操作。
2.5.5 文件处理
点击「下一步」,勾选「邮件通知」。
收件人为「默认用户组」,主题为「工资表」,邮件内容为${fine_username}的工资,勾选「正文预览报表内容」和「正文加上结果链接」,点击「保存」,如下图所示:
2.6 效果预览
任务执行后,不同用户收到的邮件内容不同,仅显示自己的薪资信息。
注:邮件以 HTML 显示,文字可复制。
Anna 收到的邮件内容如下图所示:
Alice 收到的邮件内容如下图所示: