今天处理了一个特别的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的授权,这里就不赘述了。