0 Replies Latest reply on Jan 13, 2017 1:51 AM by kuopching

    Assign Multiple Tasks -different behaviour ES3 vs ES4

    kuopching

      Problem:

      I've got "Assign Multiple Tasks" service in process with 2 participants User1, User2.

      ES3:  After completion task by User1, second task is deadlined and  TaskDeadlined event is sent.

      ES4:After completion task by User1, second task is deadlined but NO  TaskDeadlined event is sent.

       

      I spent all day by looking for bug in my code and in the end i surprisingly found that things has been changed on livecycle side.

       

      Specifically TaskManagerServiceImpl  version 11 has been changed. When classOftask is Multi, Deadlined event is not send as shown  below[1].

      A. It's the same with Terminated Event.

      B. It's the same when you deadline or terminate task by hand etc. with java api.

       

      I think it is bug[2], Task has status deadlined or terminated but no event is sent but with Standard task everything work like charm.

      If it's not bug maybe it is worthy to mention this behaviour in documentation or somewhere.

      Adobe, Is there any reason, why things has been changed?

       

      1.

      <pre>

      String classOfTask = ((DefaultCompleteTaskResult)_result).getClassOfTask();

            TaskEventHolder _eventData;

            if ((classOfTask != null) && (!classOfTask.startsWith("Multi")))

            {

              _eventData = new TaskEventHolder();

              _eventData.setTaskId(aTaskId.longValue());

              _eventData.setActionId(_result.getActionId());

              _eventData.setJobId(_result.getInvocationId());

              _eventData.setQueueId(Long.valueOf(_result.getQueueId()));

              _eventData.setAssignedUser(_result.getCompleteUserId());

       

              _eventData.setProcessName(((DefaultCompleteTaskResult)_result).getProcessName());

              _eventData.setProcessInstanceId(Long.valueOf(((DefaultCompleteTaskResult)_result).getProc essId()));

              _eventData.setStepName(((DefaultCompleteTaskResult)_result).getStepName());

              _eventData.setClassOfTask(classOfTask);

              _eventData.setSelectedRoute(deadlineAction);

       

              _eventData.setEventTypeId((short)8);

              sendTaskEvent(_eventData);

            }

      </pre>

       

      2.

      TaskManager (Adobe LiveCycle ES4 API Reference)

      Completes a task with a deadline event.

      TaskManager (Adobe LiveCycle ES4 API Reference)

      Completes a task with a terminate event.