2. 公告推送

策略的高级应用。公司发布通知公告时,可选择分公司或者部门,推送给指定的分公司或者部门,针对该组织下的员工可看到此公告,其他分公司或者部门的员工则看不到,如何实现呢?

公司发布通知公告时,可选择分公司或者部门,推送给指定的分公司或者部门,针对该组织下的员工可看到此公告,其他分公司或者部门的员工则看不到,如何实现呢?
实现思路:通过设置“策略”的“数据过滤”实现。

1.设计模板

设置《公告》模板如下图所示,有2个表格,基本信息和“权限管理明细”,填写公告的基本信息后,在明细中设置该公告针对哪些部门可看。
其中基本信息中,“公告编号”调用自动编号生成,“发布人”和“日期”调用系统变量的填写规范填写;
“权限管理明细”的“部门”调用“全局.组织机构树形选择”数据接口,并勾选“返回标题路径”,让部门的值与“用户”表中的“部门全称”一样

2.设置策略

由于单一的数据权限(策略)-本人填报的、本部门填报的、本机构填报的,不满足需求,因此需要使用“数据过滤”的“编辑”模式。
①打开“数据权限”。在模板的设计界面,单击【权限】,打开“权限”对话框,设置好模板的“功能权限”,再选择“数据权限(策略)”选项卡;
②添加“策略列表”。有2个角色,“行政管理人员”可查看所有的公告,“everyone”根据用户所在部门决定是否有权限查看。
在“权限”中选择“查询”策略,单击【添加】,选择角色“行政管理人员”和“everyone”(任何人都属于这个角色),针对这2个角色设置数据权限,由于系统默认从“数据权限”的“策略列表”中获取最上层角色的数据权限给用户,“策略列表”需要按照从大到小的数据权限顺序设置,将“行政管理人员”角色放在上方,“everyone”放在下方;
③设置“行政管理人员”的数据权限,若行政管理人员可以看到所有的公告,数据过滤可不设置;
④设置“everyone”的数据权限。在“策略列表”中选中“everyone”,单击【编辑】按钮,打开“过滤表达式”编辑对话框,
过滤表达式”编辑对话框,可在该对话框中,设置“过滤表达式”。当用户所属的“部门”与“公告-权限管理明细-部门”对应时,用户即可查看公告,此时需要将“公告”的“权限管理明细”与“用户”关联,通过“数据来源”设置多数据源实现。
在对话框底部选择“数据来源”选项卡,将默认的数据源“本模板”修改为“本模板.权限管理明细”,并单击【插入】按钮,插入新的数据源“用户”,2个数据源之间的关联关系为“交集”,选中“交集”,设置“数据表关联”,数据项的关联为“本模板.权限管理明细.部门=用户.部门”
设置数据源的过滤条件,先过滤再关联,提高运行效率,选中数据源“本模板.权限管理明细”,添加过滤条件“本模板.权限管理明细.是否可看=常量.是”;
设置“过滤表达式”,将用户与当前登录用户关联,这里使用账号匹配。选中“过滤表达式”选项卡,调用“数据列表”和“系统变量”填写表达式“用户.账号=系统变量.当前用户登录账号”;

3.添加流程

给《公告》模板添加“动态流程”。在模板设计界面单击【模板属性】,打开“动态流程”,勾选“启用”,设置流程的“摘要”和“完成任务按钮标题”,确认,则启动流程后,则将通过云表会员推送消息,若模板设置了移动端可用(在“基本属性”中支持“PC和移动端”,并在用户中配置用户的手机号,详见APP配置),则用户可在移动端查看接受推送并查看公告。

4.使用效果

新建“公告”,并填写“部门权限明细”,单击【发送给】设置消息推送,弹出“添加通知人”对话框,执行方式选择“通知”,单击【添加】设置“通知人”,弹出“从列表中选择值”对话框,通过“分类”筛选分公司和部门,通过“选中”批量选择“用户”,设置完成后单击“确定”完成。
用户登录云表系统,或者在登录云表APP后,可在“待处理”中查看“公告”;
2022-09-21
43 41