LiveCycle ES: duplicate user queues appearing in Workspace ES

Issue

Users have duplicate queues in Workspace in Adobe LiveCycle ES 8.2.1. The first queue is the user’s personal queue (in blue below), and the second seems to be a shared queue (in red below).

 

Reason

Duplicate queues can appear if you had a custom application in LiveCycle 7 that created more than one queue per user. By default, LiveCycle doesn’t create more than one queue per user. LiveCycle clients, like Workspace (LC ES) and FormManager (LC 7) do not support multiple queues for the same user. The workflow engine in the background does support multiple queues per person, but this functionality is rarely used.

When there are multiple queues for a user, each queue has a row with a unique ID in TB_QUEUE. The ID in the default_queue_id column is the ID of the queue that workspace always uses for that user.

Solution

Remove the duplicate (shared) queue from the TB_QUEUE table. Before deleting the queue, run the following query to ensure that there are no assignments referencing the shared queue:

Select count(*) from tb_assignment where queue_id = xxx

Where xxx is the queue ID of the queue that is not the user’s default queue. That is, the queue ID not listed in the default_queue_id column.

reference: (181496045)

VN:F [1.9.22_1171]
Was this helpful? Please rate the content.
Rating: 0.0/10 (0 votes cast)

LiveCycle ES: InvalidCoercionException when using TaskManagerQueryService.taskSearch(TaskSearchFilter filter)

Issue

When you use the API in LiveCycle ES to call the method, “TaskManagerQueryService.taskSearch(TaskSearchFilter filter),” the following exception may occur:

ALC-DSC-119-000: com.adobe.idp.dsc.util.InvalidCoercionException: Cannot coerce object: 
com.adobe.idp.taskmanager.dsc.client.query.TaskSearchFilter@1972b9a of type: 
com.adobe.idp.taskmanager.dsc.client.query.TaskSearchFilter to type: 
class com.adobe.idp.taskmanager.dsc.client.query.TaskSearchFilter
 at com.adobe.idp.dsc.util.CoercionUtil.toType(CoercionUtil.java:1047)
 at com.adobe.idp.dsc.interceptor.impl.InvocationInterceptor.intercept(InvocationInterceptor.java:127)
 at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptorChainImpl.java:60)
 at com.adobe.idp.dsc.transaction.interceptor.TransactionInterceptor$1.doInTransaction(TransactionInterceptor.java:74)
 at com.adobe.idp.dsc.transaction.impl.ejb.adapter.EjbTransactionCMTAdapterBean.execute(EjbTransactionCMTAdapterBean.java:342)
 at com.adobe.idp.dsc.transaction.impl.ejb.adapter.EjbTransactionCMTAdapterBean.doSupports(EjbTransactionCMTAdapterBean.java:212)
 at com.adobe.idp.dsc.transaction.impl.ejb.adapter.EjbTransactionCMTAdapter_z73hg_ELOImpl.doSupports

Solution

  1.  Make sure that the processId object passed into the filter.addCondition() is a valid object.
  2. Verify that the libraries you are importing contain no abstract references to classes with similar names and make sure that they are the latest versions.

Additional Information

Here is the code which would generate the error message above (or download here):

____________________________

 

ServiceClientFactory factory = ServiceClientFactory.createInstance(context);

TaskManagerQueryService queryManager = TaskManagerClientFactory.getQueryManager(factory);

TaskManager taskManager = TaskManagerClientFactory.getTaskManager(factory);

TaskSearchFilter filter = new TaskSearchFilter();

filter.addCondition(TaskSearchingConstants.pPROCESS_INSTANCE_ID, Operator.EQUALS, processId);

filter.addSortAsc(TaskSearchingConstants.pPROCESS_START_TIME);

// To look on every task !!! Need to have an Administrator context!!!

filter.setAdminIgnoreAllAcls(true);

List<TaskRow> result = queryManager.taskSearch(filter);

____________________________

reference: (181492707)

VN:F [1.9.22_1171]
Was this helpful? Please rate the content.
Rating: 0.0/10 (0 votes cast)