@Override public void completeWorkItem(String workItemId, boolean decision, String comment, ObjectDelta additionalDelta, OperationResult parentResult) throws SecurityViolationException, SchemaException, ObjectNotFoundException, ExpressionEvaluationException, CommunicationException, ConfigurationException { getWorkflowManagerChecked().completeWorkItem(workItemId, decision, comment, additionalDelta, null, parentResult); }
private void addAssignmentApprovalMetadataOnObjectAdd(PrismObject<?> object, Task task, OperationResult result) throws SchemaException { Objectable objectable = object.asObjectable(); if (!(objectable instanceof FocusType)) { return; } FocusType focus = (FocusType) objectable; Collection<ObjectReferenceType> approvedBy = workflowManager.getApprovedBy(task, result); Collection<String> comments = workflowManager.getApproverComments(task, result); for (AssignmentType assignment : focus.getAssignment()) { addAssignmentCreationApprovalMetadata(assignment, approvedBy, comments); } }
@Override public void claimWorkItem(String workItemId, OperationResult parentResult) throws SecurityViolationException, ObjectNotFoundException { getWorkflowManagerChecked().claimWorkItem(workItemId, parentResult); }
public Collection<String> getApproverCommentsFromTaskTree(Task task, OperationResult result) throws SchemaException { Task opTask = taskManager.createTaskInstance(); Collection<String> rv = new HashSet<>(); PrismObject<SystemConfigurationType> systemConfiguration = systemObjectCache.getSystemConfiguration(result); PerformerCommentsFormattingType formatting = systemConfiguration != null && systemConfiguration.asObjectable().getWorkflowConfiguration() != null ? systemConfiguration.asObjectable().getWorkflowConfiguration().getApproverCommentsFormatting() : null; PerformerCommentsFormatter formatter = workflowManager.createPerformerCommentsFormatter(formatting); List<Task> tasks = task.listSubtasksDeeply(result); tasks.add(task); for (Task aTask : tasks) { rv.addAll(getApproverComments(WfContextUtil.getWorkflowContext(aTask.getTaskPrismObject()), formatter, opTask, result)); } return rv; }
workflowManager.augmentTaskObject(object, options, task, result);
@Override public void delegateWorkItem(String workItemId, List<ObjectReferenceType> delegates, WorkItemDelegationMethodType method, OperationResult parentResult) throws ObjectNotFoundException, SecurityViolationException, SchemaException, ExpressionEvaluationException, CommunicationException, ConfigurationException { getWorkflowManagerChecked().delegateWorkItem(workItemId, delegates, method, parentResult); }
@Override public void cleanupActivitiProcesses(Task task, OperationResult parentResult) throws SchemaException, SecurityViolationException, ObjectNotFoundException, ExpressionEvaluationException, CommunicationException, ConfigurationException { securityEnforcer.authorize(ModelAuthorizationAction.CLEANUP_PROCESS_INSTANCES.getUrl(), null, AuthorizationParameters.EMPTY, null, task, parentResult); getWorkflowManagerChecked().cleanupActivitiProcesses(parentResult); }
switch (ctx.manager) { case REPOSITORY: count = cacheRepositoryService.countContainers(type, query, options, result); break; case WORKFLOW: count = workflowManager.countContainers(type, query, options, result); break; default: throw new IllegalStateException();
list = taskManager.searchObjects(type, processedQuery, options, result); if (workflowManager != null && TaskType.class.isAssignableFrom(type) && !GetOperationOptions.isRaw(rootOptions) && !GetOperationOptions.isNoFetch(rootOptions)) { workflowManager.augmentTaskObjectList(list, options, task, result);
systemConfigurationObject.asObjectable().getAccessCertification() != null ? systemConfigurationObject.asObjectable().getAccessCertification().getReviewerCommentsFormatting() : null; PerformerCommentsFormatter commentsFormatter = workflowManager.createPerformerCommentsFormatter(formatting); RunContext runContext = new RunContext(task, commentsFormatter); caseList.forEach(aCase -> prepareMetadataDeltas(aCase, campaign, runContext, opResult));
workflowManager.augmentTaskObject(object, options, task, result);
public <T extends ObjectType, F extends ObjectType> void applyMetadataAdd(LensContext<F> context, PrismObject<T> objectToAdd, XMLGregorianCalendar now, Task task, OperationResult result) throws SchemaException { T objectType = objectToAdd.asObjectable(); MetadataType metadataType = objectType.getMetadata(); if (metadataType == null) { metadataType = new MetadataType(); objectType.setMetadata(metadataType); } transplantRequestMetadata(context, metadataType); applyCreateMetadata(context, metadataType, now, task); if (workflowManager != null) { metadataType.getCreateApproverRef().addAll(workflowManager.getApprovedBy(task, result)); metadataType.getCreateApprovalComment().addAll(workflowManager.getApproverComments(task, result)); } if (objectToAdd.canRepresent(FocusType.class)) { applyAssignmentMetadataObject((LensContext<? extends FocusType>) context, objectToAdd, now, task, result); } }
public void approveAllWorkItems(Task task, OperationResult result) throws Exception { List<WorkItemType> workItems = getWorkItems(task, result); display("work items", workItems); display("approving work items"); for (WorkItemType workItem : workItems) { workflowManager.completeWorkItem(workItem.getExternalId(), true, null, null, null, result); } }
public <T extends ObjectType, F extends ObjectType> void applyMetadataModify(ObjectDelta<T> objectDelta, LensElementContext<T> objectContext, Class objectTypeClass, XMLGregorianCalendar now, Task task, LensContext<F> context, OperationResult result) throws SchemaException { ItemDeltaCollectionsUtil.mergeAll(objectDelta.getModifications(), createModifyMetadataDeltas(context, ObjectType.F_METADATA, objectTypeClass, now, task)); List<PrismReferenceValue> approverReferenceValues = new ArrayList<>(); List<String> approverComments = new ArrayList<>(); if (workflowManager != null) { for (ObjectReferenceType approverRef : workflowManager.getApprovedBy(task, result)) { approverReferenceValues.add(prismContext.itemFactory().createReferenceValue(approverRef.getOid())); } approverComments.addAll(workflowManager.getApproverComments(task, result)); } ItemDeltaCollectionsUtil.mergeAll(objectDelta.getModifications(), prismContext.deltaFor(objectTypeClass) .item(ObjectType.F_METADATA, MetadataType.F_MODIFY_APPROVER_REF).replace(approverReferenceValues) .item(ObjectType.F_METADATA, MetadataType.F_MODIFY_APPROVAL_COMMENT).replaceRealValues(approverComments) .asItemDeltas()); if (FocusType.class.isAssignableFrom(objectTypeClass)) { applyAssignmentMetadataDelta((LensContext) context, (ObjectDelta)objectDelta, now, task, result); } }
workflowManager.completeWorkItem(workItem.getExternalId(), true, "OK", null, null, result);
private void addAssignmentApprovalMetadataOnObjectModify(ObjectDelta<?> objectDelta, Task task, OperationResult result) throws SchemaException { Collection<ObjectReferenceType> approvedBy = workflowManager.getApprovedBy(task, result); Collection<String> comments = workflowManager.getApproverComments(task, result); Set<Long> processedIds = new HashSet<>(); List<ItemDelta<?,?>> assignmentMetadataDeltas = new ArrayList<>();
workflowManager.completeWorkItem(workItem.getExternalId(), true, "OK", null, null, result);
Boolean approve = testDetails.decideOnApproval(executionId, task); if (approve != null) { workflowManager.completeWorkItem(task.getId(), approve, null, null, null, result); login(userAdministrator); break; workflowManager.completeWorkItem(workItem.getExternalId(), approvalInstruction.approval, approvalInstruction.comment, null, null, result); if (approvalInstruction.afterApproval != null) {
@Test public void test110RequestPrunedRole() throws Exception { final String TEST_NAME = "test110RequestPrunedRole"; TestUtil.displayTestTitle(this, TEST_NAME); login(userAdministrator); Task task = createTask(TEST_NAME); OperationResult result = task.getResult(); // GIVEN assignRole(RoleType.class, roleRole2Oid, metarolePruneTest2xRolesOid, task, result); assignRole(RoleType.class, roleRole2aOid, metarolePruneTest2xRolesOid, task, result); assignRole(RoleType.class, roleRole2bOid, metarolePruneTest2xRolesOid, task, result); assignRole(RoleType.class, roleRole2Oid, metaroleApproveUnassign, task, result); //display("lead2", getUser(userLead2Oid)); // WHEN assignRole(userJackOid, roleRole2aOid, task, result); // THEN result.computeStatus(); TestUtil.assertInProgress("Operation NOT in progress", result); assertNotAssignedRole(userJackOid, roleRole2aOid, task, result); // complete the work item related to assigning role-2a WorkItemType workItem = getWorkItem(task, result); display("Work item", workItem); workflowManager.completeWorkItem(workItem.getExternalId(), true, null, null, null, result); TaskType wfTask = getTask(WfContextUtil.getTask(workItem).getOid()).asObjectable(); Task parent = taskManager.createTaskInstance(wfTask.asPrismObject(), result).getParentTask(result); waitForTaskFinish(parent.getOid(), false); assertNotAssignedRole(userJackOid, roleRole2Oid, task, result); // should be pruned without approval }
workflowManager.completeWorkItem(t.getId(), approve, null, null, null, result); login(userAdministrator);