今天处理了一个特别的Case,本来流程的权限开了所有人都可以查看(如下图),但是因为某些申请的内容较敏感,现在不希望公开给所有人了。于是只能后台进行数据库的修改,相关SQL代码如下。
/****** Script for SelectTopNRows command from SSMS ******/ SELECT TOP 1000 [TaskID] ,[SID] ,[AllowRead] ,[AllowAdmin] ,[ShareByUser] ,[CreateDate] ,[CreateBy] ,[ID] ,[ExtYear] ,[ExtDeleted] FROM [BPMDB].[dbo].[BPMSecurityTACL] --WHERE TaskId=10225 WHERE TaskId IN (SELECT TaskId FROM [BPMDB].[dbo].[BPMInstTasks] WHERE ProcessName='Travel') AND SID='S_GS_90674E5E-AC3C-4032-9EDF-7477F2247542' ORDER BY CreateDate DESC UPDATE [BPMDB].[dbo].[BPMSecurityTACL] SET AllowRead=0 WHERE TaskId IN (SELECT TaskId FROM [BPMDB].[dbo].[BPMInstTasks] WHERE ProcessName='Travel') AND SID='S_GS_90674E5E-AC3C-4032-9EDF-7477F2247542'
完成上述步骤之后,还需要进行指定部门或角色的人可以看到,所以第二步的思路就是针对流程设定相应的权限,然后后台写sql对历史的申请进行TaskRead的授权,这里就不赘述了。