历史版本10 :定时任务CPR文件内容权限控制 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 描述编辑

一般在公司的系统中会有工资选项,在月底的时候就可点击查看当月的工资信息,即定时的在每个月月底,将当前用户当月的工资信息挂载在指定的工资节点上,这个该如何实现呢?

2. 解决方案编辑

在定时任务的本地任务中,有一个选项“除通用结果外,根据默认用户组内的用户单独生成结果”,可以在此处勾选,在执行定时任务时,会根据参数$fr_username进行数据过滤,则在schedule文件夹的用户文件夹下生成的cpr文件内容是相应用户的工资信息。

3. 示例编辑

在系统虚拟目录树FRTest下面有个工资表的节点,每个月月底的时候,可查看当前用户该月的工资信息。
3.1 模板准备
1)数据准备
在设计器中点击服务器>服务器数据集,新建一个内置服务器数据集staff,其内容如下图:
222
注:由于需要将该用户信息同步到数据决策系统中,故只能使用服务器数据集。
2)模板制作
新建一张模板,将服务器数据集staff中的数据列拖曳至单元格中,并给name数据列添加过滤条件,如下图:
222
已完成模板请参照%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\定时任务权限控制.cpt
3.2 用户配置
点击管理系统>用户管理,导入staff数据集中的用户,如下图:
222
用户导入详细请查看导入用户
3.3 新建定时任务
用户配置好之后,点击管理系统>定时调度,第一步——基本设置,新建一个定时任务工资表,默认用户组选择“用户-平台”,勾选全部用户,如下图:
222
第二步——调度周期,调度周期为每个月的最后一天12点执行,如下图:
222
具体添加过程请查看定时生成日报
第三步——本地文件,模板为上面新建的模板定时任务权限控制.cpt,勾选“除通用结果外,根据默认用户组内的用户单独生成结果”,这里的用户组就是第一步里设置的默认用户组,如下图:
注:若勾选“除通用结果外,根据默认用户组内的用户单独生成结果”,那么模板类型只支持“预览”
222
这样上面的模板,有过滤条件name=$fr_username,那么在保存cpr文件时,会根据用户名来存档,并实现过滤,定时任务执行完成之后,在%FR_HOME%\webapps\webroot\WEB-INF\schedule\文件名称\日期\时间 会生成用户文件夹,文件夹名称分别为默认用户组里的用户名,如,Anna文件夹下的cpr文件在保存之前就会先将$fr_username赋值为Anna,实现过滤之后再保存,这样就保证,该cpr文件中只有Anna的信息,当Anna登陆系统的时候,挂载在FRTest下面的工资表节点就指向该cpr文件,那么Anna就只能看到自己的工资信息了。
第四步——文件处理,勾选“挂载平台”,在挂载平台标签页,挂载目录选择FRTest,挂载名称填写每月薪资,如下图:
222
点击提交即可,定时任务执行完成之后,在系统的虚拟目录树FRTest下面显示用户的工资表节点,当员工登陆系统之后,点击工资表节点,即可看到自己的工资信息。
3.4 cpr节点权限分配
定时任务执行完成之后会生成cpr文件,cpr文件挂载的虚拟目录FRTest下面,那么用户登录系统查看该cpr文件工资表的时候,首先需要有该节点的查看权限。
点击管理系统>权限管理-报表权限快捷配置,将FRTest整个文件夹的权限分配给技术支持整个部门,如下图:
222
详细的配置过程请查看根据部门职位分配权限
注:给用户配置虚拟目录树的权限,如果将某个文件夹的权限分配给用户角色,那么之后添加在该文件夹下的新模板均会自动分配给该用户角色。
3.5 效果查看
cpr节点效果查看
用Anna的账号登录系统,可以看到FRTest目录下面有一个工资表的节点,点开节点,可以看到模板中只显示了Anna的工资信息。!!!截图未更换!!!
同理,用其他几个用户的账号登录后,点开工资表,均只能看到该用户的工资信息。