I have the same question. How do we send email to the users who have been granted shared queue access? Is it similar to groups where the shared queue members are sent an email AFTER they claim an task?
I've looked around the database so I can write the process to send the email myself but I'm not sure where the queue sharing settings are stored.
I am trying to send the email when the task assign to the user who own the shared queue, but after I research the event object, it seem that it is not the same as the event we use in the event driven programming... so I just give up and send the email BEFORE assign the task.
After I look at the system db tables again and again, I come up with the following SQL, which the result look like what I want, feel free to try at your environment:
from tb_shared_users_2_shared_queues sq, tb_queue q, edcprincipalentity e, edcprincipaluserentity eu
where q.workflow_principal_id = eu.refprincipalid
and eu.uidstring = ? // user login id go here
and q.workflow_principal_id <> sq.shared_queues_id // ignore queue owner
and q.id = sq.shared_users_id
and sq.shared_queues_id = e.id
I am still asking Adobe support for the official method to get the above information, because I think the system tables may change in system update, so... use at your own risk.
Wish it help.
What about using the getUsersWithAccessToTask() from the TaskManager API? See http://livedocs.adobe.com/livecycle/8.2/programLC/programmer/javadoc/com/adobe/idp/taskman ager/dsc/client/task/TaskManager.html.
Also for you event question, You could leverage the TaskComplete event to get a notification when the task is completed. That way you'll get the email only when the task is completed.
Thanks. We must be working with different versions/databases because I don't have the tb_shared_users_2_queues table. Here is the query(not optimized) that I'm using for 8.2.1.
SELECT email from EDCPRINCIPALENTITY WHERE ID IN
(SELECT SHARED_QUEUES_ID FROM TB_57 WHERE OID IN
(SELECT OID FROM TB_57 WHERE SHARED_USERS_ID IN
(SELECT OID FROM TB_57 WHERE OID = SHARED_USERS_ID AND SHARED_QUEUES_ID =
(select ID FROM EDCPRINCIPALENTITY WHERE canonicalname = ?)))) AND canonicalname <> ?
Thanks for the reply.
Your solution look great, but I still have a few question about it:
1) I have no idea how to make use of the event
(Searched the web and find no example, tried by myself with no luck)
2) I need to send the email to notify the user when task assigned but not when task completed
(I will need another event to do so)
3) The function getUsersWithAccessToTask() belong to a interface, and as far as I know, interface should be a empty function, or maybe the interface in ALC are difference from the java one?
I think our DB version are difference, sorry that my SQL can't help at all.
1 person found this helpful
1) Create a new process, and from the Event view drag the TaskCreated event and select Start Point. A Start Point will ensure your new process will only be started when it receives an event of type TaskCreated.
2) You can use the built in capabilities to do that. Go in adminui under Process Management/Server Settings/Task Notifications, click on Task Assigment and make sure they are enabled. You also need to make sure email notification is enabled in workspace under preferences.
3) You can use an instance that class that implements this interface by using TaskManagerClientFactory.getTaskManager().
Thanks for all the help, and sorry for the late reply because was very busy recently.
My problem is:
1) When use the Task Manager function I need the Task ID, but the workflow stop to flow when it arrive the Assign Task service (i.e. I cannot execute any more code), and I have no idea how to get the Task ID too.
2) Look like that I can solve problem 1 by using a TaskCreated event, but before I can use a Event Start Point or Event Receiver, I need to throw the event, but it look like that I should throw the event before (which mean the task do not exist yet) or after (which mean the task completed) the Assign Task service, which look like both can not solve my problem
3) The Task ID in the event type will need to assign by the developer, which I have no idea how can I find the task id
Sorry for the long question
1 person found this helpful
2) You don't have to throw the TaskCreated event. The User service will take care of throwing the event for you. All the Task Manager events are thrown automatically. You just have to worry about catching the event.
3) The task id is created automatically. This is internally to keep track of the task. It can't be overwritten. If you need a custom id, you would need to create a separate variable for it.
Thanks for all your help.
Finally, I succeeded to get the email of the shared queue user by using event and ALC java API.
And it is really a good start point for me to understand how the events work and how to use browse the ALC java API online doc, I really have a hard time to find any reference to use both the event and ALC java API.