Work Center Shows tasks not belonging to user because Group Name contained within a user name
Currently we have a Group called "IT" and a user called "White". Any AgilePoint tasks generated for Mr. White will show up for any one in IT. Any user in IT cannot access the task, but it stays in their work center.
Part of the query that generates the list of tasks to show in the work center includes the following line in one of the unions
-
Sure,
The tab called "My Tasks" and the View drop down is set to "My Tasks"


On loading the tab, AgilePoint makes a "FetchUsingEncodedData" Request. That request for user tasks decodes as follows, and I have stylized the line I am referring to with bold. (Although I am speaking of the problem with Groups, it looks like the same issue would exist with Roles.)
SELECT
TOP 999 WF_MANUAL_WORKITEMS.ACTIVITY_INST_ID AS ActivityInstID
, WF_MANUAL_WORKITEMS.NAME AS Name
, WF_MANUAL_WORKITEMS.WORK_ITEM_ID AS WorkItemID
, WF_MANUAL_WORKITEMS.CLIENT_DATA AS ClientData
, WF_MANUAL_WORKITEMS.ORIGINAL_USER_ID AS OriginalUserID
, WF_MANUAL_WORKITEMS.WAIT_WORKPERFORMED AS WaitWorkPerformed
, WF_MANUAL_WORKITEMS.POOL_ID AS PoolID
, WF_MANUAL_WORKITEMS.POOL_INFO AS PoolInfo
, WF_MANUAL_WORKITEMS.APPL_NAME as ApplName
, WF_MANUAL_WORKITEMS.ASSIGNED_DATE
, WF_MANUAL_WORKITEMS.DUE_DATE
, WF_MANUAL_WORKITEMS.STATUS AS Status
, WF_MANUAL_WORKITEMS.CREATED_DATE
, WF_MANUAL_WORKITEMS.PRIORITY AS Priority
, WF_ACTIVITY_INSTS.DISPLAY_NAME AS DisplayName
, WF_ACTIVITY_INSTS.NAME AS ActivityName
, PROCINSTS.WORK_OBJECT_ID AS WorkObjectID
, PROCINSTS.DEF_ID AS ProcDefID
, PROCINSTS.PROC_INST_ID AS ProcInstID
, PROCINSTS.SUPER_PROC_INST_ID
, PROCINSTS.PROC_INST_NAME as ProcInstName
, PROCINSTS.PROC_INITIATOR AS ProcessInitiator
, PROCINSTS.DEF_NAME AS DefName
, WF_REG_USERS.USER_NAME AS UserID
, WF_REG_USERS.FULL_NAME AS FullName
, WF_REG_USERS.DEPARTMENT AS Department
, wf_proc_defs.primary_data_source AS DS
, wf_proc_defs.PRIMARY_INITIATE_EVENT AS PIE
FROM
WF_MANUAL_WORKITEMS with (NOLOCK)
INNER JOIN
wf_proc_defs with (NOLOCK)
ON
wf_manual_workitems.proc_def_id = wf_proc_defs.def_id
INNER JOIN
WF_PROC_INSTS PROCINSTS with (NOLOCK)
ON
WF_MANUAL_WORKITEMS.PROC_INST_ID = PROCINSTS.PROC_INST_ID
INNER JOIN
WF_ACTIVITY_INSTS with (NOLOCK)
ON
WF_MANUAL_WORKITEMS.ACTIVITY_INST_ID = WF_ACTIVITY_INSTS.ID
INNER JOIN
WF_REG_USERS with (NOLOCK)
ON
WF_MANUAL_WORKITEMS.USER_ID = WF_REG_USERS.USER_NAME
AND
(
WF_PROC_DEFS.primary_initiate_event != 'eForms'
AND
(
WF_PROC_DEFS.primary_data_source in ('user\SharePointDataSource'
,'user\O365SharePointDataSource')
)
OR
(
WF_PROC_DEFS.primary_initiate_event = 'eForms'
AND
(
WF_PROC_DEFS.primary_data_source IS NULL
)
OR WF_PROC_DEFS.primary_data_source = ''
OR WF_PROC_DEFS.primary_data_source not in('user\SharePointDataSource'
,'user\O365SharePointDataSource')
)
OR
(
WF_PROC_DEFS.primary_initiate_event IS NULL
OR WF_PROC_DEFS.primary_initiate_event in (''
,'SPSIntegration'
, 'InfoPathIntegration'
, 'ExternalForms'
, 'ParentProcess'
, 'Any')
AND
(
WF_PROC_DEFS.primary_data_source = ''
OR WF_PROC_DEFS.primary_data_source IS NULL
OR WF_PROC_DEFS.primary_data_source not in('user\SharePointDataSource'
,'user\O365SharePointDataSource')
)
)
)
WHERE
WF_MANUAL_WORKITEMS.USER_ID=N'DOMAIN\user'
AND WF_MANUAL_WORKITEMS.STATUS IN (N'Assigned'
, N'Overdue')
AND PROCINSTS.STATUS = N'Running'
UNION ALL
SELECT
TOP 999 WF_MANUAL_WORKITEMS.ACTIVITY_INST_ID AS ActivityInstID
, WF_MANUAL_WORKITEMS.NAME AS Name
, WF_MANUAL_WORKITEMS.WORK_ITEM_ID AS WorkItemID
, WF_MANUAL_WORKITEMS.CLIENT_DATA AS ClientData
, WF_MANUAL_WORKITEMS.ORIGINAL_USER_ID AS OriginalUserID
, WF_MANUAL_WORKITEMS.WAIT_WORKPERFORMED AS WaitWorkPerformed
, WF_MANUAL_WORKITEMS.POOL_ID AS PoolID
, WF_MANUAL_WORKITEMS.POOL_INFO AS PoolInfo
, WF_MANUAL_WORKITEMS.APPL_NAME as ApplName
, WF_MANUAL_WORKITEMS.ASSIGNED_DATE
, WF_MANUAL_WORKITEMS.DUE_DATE
, WF_MANUAL_WORKITEMS.STATUS AS Status
, WF_MANUAL_WORKITEMS.CREATED_DATE
, WF_MANUAL_WORKITEMS.PRIORITY AS Priority
, WF_ACTIVITY_INSTS.DISPLAY_NAME AS DisplayName
, WF_ACTIVITY_INSTS.NAME AS ActivityName
, PROCINSTS.WORK_OBJECT_ID AS WorkObjectID
, PROCINSTS.DEF_ID AS ProcDefID
, PROCINSTS.PROC_INST_ID AS ProcInstID
, PROCINSTS.SUPER_PROC_INST_ID
, PROCINSTS.PROC_INST_NAME as ProcInstName
, PROCINSTS.PROC_INITIATOR AS ProcessInitiator
, PROCINSTS.DEF_NAME AS DefName
, WF_REG_USERS.USER_NAME AS UserID
, WF_REG_USERS.FULL_NAME AS FullName
, WF_REG_USERS.DEPARTMENT AS Department
, wf_proc_defs.primary_data_source AS DS
, wf_proc_defs.PRIMARY_INITIATE_EVENT AS PIE
FROM
WF_MANUAL_WORKITEMS with (NOLOCK)
, WF_GROUP_MEMBERS AS GP
, WF_PROC_DEFS
, WF_PROC_INSTS AS PROCINSTS
, WF_ACTIVITY_INSTS
, WF_REG_USERS
WHERE
WF_MANUAL_WORKITEMS.STATUS IN (N'Assigned'
, N'Overdue')
AND PROCINSTS.STATUS = N'Running'
AND WF_MANUAL_WORKITEMS.[USER_ID] like '%'+GP.[NAME]+'%'
AND WF_MANUAL_WORKITEMS.POOL_ID IS NULL
AND GP.MEMBER = N'DOMAIN\user'
AND WF_REG_USERS.USER_NAME = N'DOMAIN\user'
AND WF_MANUAL_WORKITEMS.PROC_INST_ID = PROCINSTS.PROC_INST_ID
AND WF_MANUAL_WORKITEMS.ACTIVITY_INST_ID = WF_ACTIVITY_INSTS.ID
AND PROCINSTS.DEF_ID = WF_PROC_DEFS.DEF_ID
AND
(
WF_PROC_DEFS.primary_initiate_event != 'eForms'
AND
(
WF_PROC_DEFS.primary_data_source in ('user\SharePointDataSource'
,'user\O365SharePointDataSource')
)
OR
(
WF_PROC_DEFS.primary_initiate_event = 'eForms'
AND
(
WF_PROC_DEFS.primary_data_source IS NULL
)
OR WF_PROC_DEFS.primary_data_source = ''
OR WF_PROC_DEFS.primary_data_source not in('user\SharePointDataSource'
,'user\O365SharePointDataSource')
)
OR
(
WF_PROC_DEFS.primary_initiate_event IS NULL
OR WF_PROC_DEFS.primary_initiate_event in (''
,'SPSIntegration'
, 'InfoPathIntegration'
, 'ExternalForms'
, 'ParentProcess'
, 'Any')
AND
(
WF_PROC_DEFS.primary_data_source = ''
OR WF_PROC_DEFS.primary_data_source IS NULL
OR WF_PROC_DEFS.primary_data_source not in('user\SharePointDataSource'
,'user\O365SharePointDataSource')
)
)
)
UNION ALL
SELECT
TOP 999 WF_MANUAL_WORKITEMS.ACTIVITY_INST_ID AS ActivityInstID
, WF_MANUAL_WORKITEMS.NAME AS Name
, WF_MANUAL_WORKITEMS.WORK_ITEM_ID AS WorkItemID
, WF_MANUAL_WORKITEMS.CLIENT_DATA AS ClientData
, WF_MANUAL_WORKITEMS.ORIGINAL_USER_ID AS OriginalUserID
, WF_MANUAL_WORKITEMS.WAIT_WORKPERFORMED AS WaitWorkPerformed
, WF_MANUAL_WORKITEMS.POOL_ID AS PoolID
, WF_MANUAL_WORKITEMS.POOL_INFO AS PoolInfo
, WF_MANUAL_WORKITEMS.APPL_NAME as ApplName
, WF_MANUAL_WORKITEMS.ASSIGNED_DATE
, WF_MANUAL_WORKITEMS.DUE_DATE
, WF_MANUAL_WORKITEMS.STATUS AS Status
, WF_MANUAL_WORKITEMS.CREATED_DATE
, WF_MANUAL_WORKITEMS.PRIORITY AS Priority
, WF_ACTIVITY_INSTS.DISPLAY_NAME AS DisplayName
, WF_ACTIVITY_INSTS.NAME AS ActivityName
, PROCINSTS.WORK_OBJECT_ID AS WorkObjectID
, PROCINSTS.DEF_ID AS ProcDefID
, PROCINSTS.PROC_INST_ID AS ProcInstID
, PROCINSTS.SUPER_PROC_INST_ID
, PROCINSTS.PROC_INST_NAME as ProcInstName
, PROCINSTS.PROC_INITIATOR AS ProcessInitiator
, PROCINSTS.DEF_NAME AS DefName
, WF_REG_USERS.USER_NAME AS UserID
, WF_REG_USERS.FULL_NAME AS FullName
, WF_REG_USERS.DEPARTMENT AS Department
, wf_proc_defs.primary_data_source AS DS
, wf_proc_defs.PRIMARY_INITIATE_EVENT AS PIE
FROM
WF_MANUAL_WORKITEMS with (NOLOCK)
, WF_ASSIGNED_OBJECTS AS RL
, WF_PROC_DEFS
, WF_PROC_INSTS AS PROCINSTS
, WF_ACTIVITY_INSTS
, WF_REG_USERS
, WF_GROUP_MEMBERS AS GM
WHERE
WF_MANUAL_WORKITEMS.STATUS IN (N'Assigned'
, N'Overdue')
AND PROCINSTS.STATUS = N'Running'
and WF_MANUAL_WORKITEMS.[USER_ID] like '%'+RL.[ROLE_NAME]+'%'
AND WF_MANUAL_WORKITEMS.POOL_ID IS NULL
AND
(
(
RL.ASSIGNEE = N'DOMAIN\user'
AND RL.ASSIGNEE_TYPE = 'USER'
)
OR
(
GM.MEMBER = N'DOMAIN\user'
AND RL.ASSIGNEE_TYPE = 'GROUP'
AND GM.NAME = RL.ASSIGNEE
)
)
AND WF_REG_USERS.USER_NAME = N'DOMAIN\user'
and WF_MANUAL_WORKITEMS.PROC_INST_ID = PROCINSTS.PROC_INST_ID
and WF_MANUAL_WORKITEMS.ACTIVITY_INST_ID = WF_ACTIVITY_INSTS.ID
and PROCINSTS.DEF_ID = WF_PROC_DEFS.DEF_ID
AND
(
WF_PROC_DEFS.primary_initiate_event != 'eForms'
AND
(
WF_PROC_DEFS.primary_data_source in ('user\SharePointDataSource'
,'user\O365SharePointDataSource')
)
OR
(
WF_PROC_DEFS.primary_initiate_event = 'eForms'
AND
(
WF_PROC_DEFS.primary_data_source IS NULL
)
OR WF_PROC_DEFS.primary_data_source = ''
OR WF_PROC_DEFS.primary_data_source not in('user\SharePointDataSource'
,'user\O365SharePointDataSource')
)
OR
(
WF_PROC_DEFS.primary_initiate_event IS NULL
OR WF_PROC_DEFS.primary_initiate_event in (''
,'SPSIntegration'
, 'InfoPathIntegration'
, 'ExternalForms'
, 'ParentProcess'
, 'Any')
AND
(
WF_PROC_DEFS.primary_data_source = ''
OR WF_PROC_DEFS.primary_data_source IS NULL
OR WF_PROC_DEFS.primary_data_source not in('user\SharePointDataSource'
,'user\O365SharePointDataSource')
)
)
)
ORDER BY
WF_MANUAL_WORKITEMS.CREATED_DATE DESC -
Perfect, That option is available under "Settings" -> "Work Center" -> "Common Settings" -> "Show Dynamic group/role Tasks" as detailed on your Help Page
I have turned that setting off and we no longer experience tasks for other users incorrectly showing in the primary users task center.
Thank you.
サインインしてコメントを残してください。
コメント
4件のコメント