In this blog you can find how to add new process task and retry any failed/rejected tasks using API.
Adding new process task:
/*******************************************************************************************
* @param orcKey
* @param taskKey
* @throws Exception
* Adding new process task.
* SQL Query to find Task: Task Key (MIL_KEY) select mil_key,mil_name from mil where mil_name='User Principal Name Updated'
* and tos_key in (select tos_key from tos where tos_instance_src_field like 'UD_ADUSER.%');
*/
public void addTask (long orcKey, long taskKey)throws Exception{
tcProvisioningOperationsIntf provAPI = oimClient.getService(tcProvisioningOperationsIntf.class);
System.out.println("Added :::"+provAPI.addProcessTaskInstance(taskKey, orcKey)+" For ORC_KEY :: "+orcKey);
}
Retry failed/rejected task
/**
*********************************************************************************************
* @param ro
* @param taskName
* @param taskStatus
* @throws Exception
* Retrying Rejected task
*/
public void retryTask (String ro, String taskName, String taskStatus, String uid)throws Exception{
tcProvisioningOperationsIntf provAPI = oimClient.getService(tcProvisioningOperationsIntf.class);
Map filter = new HashMap();
filter.put("Objects.Name", ro);
filter.put("Process Definition.Tasks.Task Name", taskName);
String taskStatus1[] = new String[] {taskStatus};
Thor.API.tcResultSet rs = provAPI.findAllOpenProvisioningTasks(filter, taskStatus1);
if (rs != null && rs.getTotalRowCount() > 0){
System.out.println("Total Count :: "+rs.getTotalRowCount());
for (int i=0; i< rs.getTotalRowCount(); i++){
rs.goToRow(i);
if (rs.getStringValue("Process Instance.Task Information.Target User").equalsIgnoreCase(uid)){
System.out.println(rs.getStringValue("Process Instance.Task Information.Target User")+
" :: "+rs.getStringValue("Process Definition.Tasks.Task Name")+ " :: done");
provAPI.retryTask(rs.getLongValue("Process Instance.Task Details.Key"));
break;
}
}
}
}