public List<PrismContainerValue<AccessCertificationCaseType>> getCertificationCampaignCases(String campaignName) throws SchemaException, SecurityViolationException, ConfigurationException, ObjectNotFoundException, ExpressionEvaluationException, CommunicationException { List<AccessCertificationCaseType> cases = getCertificationCampaignCasesAsBeans(campaignName); return PrismContainerValue.toPcvList(cases); }
public List<PrismContainerValue<AccessCertificationWorkItemType>> getCertificationCampaignDecisions(String campaignName, Integer stageNumber, Integer iteration) throws SchemaException, SecurityViolationException, ConfigurationException, ObjectNotFoundException, ExpressionEvaluationException, CommunicationException { List<AccessCertificationCaseType> cases = getCertificationCampaignCasesAsBeans(campaignName); List<AccessCertificationWorkItemType> workItems = new ArrayList<>(); for (AccessCertificationCaseType aCase : cases) { for (AccessCertificationWorkItemType workItem : aCase.getWorkItem()) { if (stageNumber != null && !Objects.equals(workItem.getStageNumber(), stageNumber)) { continue; } if (iteration != null && norm(workItem.getIteration()) != iteration) { continue; } workItems.add(workItem); } } return PrismContainerValue.toPcvList(workItems); }
@NotNull List<ItemDelta<?, ?>> getDeltasToCreateTriggersForTimedActions(String campaignOid, int escalationLevel, Date workItemCreateTime, Date workItemDeadline, List<WorkItemTimedActionsType> timedActionsList) { LOGGER.trace("Creating triggers for timed actions for certification campaign {}, escalation level {}, create time {}, deadline {}, {} timed action(s)", campaignOid, escalationLevel, workItemCreateTime, workItemDeadline, timedActionsList.size()); try { List<TriggerType> triggers = WfContextUtil.createTriggers(escalationLevel, workItemCreateTime, workItemDeadline, timedActionsList, prismContext, LOGGER, null, AccCertTimedActionTriggerHandler.HANDLER_URI); LOGGER.trace("Created {} triggers for campaign {}:\n{}", triggers.size(), campaignOid, PrismUtil.serializeQuietlyLazily(prismContext, triggers)); if (triggers.isEmpty()) { return Collections.emptyList(); } else { return prismContext.deltaFor(AccessCertificationCampaignType.class) .item(TaskType.F_TRIGGER).add(PrismContainerValue.toPcvList(triggers)) .asItemDeltas(); } } catch (SchemaException | RuntimeException e) { throw new SystemException("Couldn't create deltas for creating trigger(s) for campaign " + campaignOid + ": " + e.getMessage(), e); } }
public static void createTriggersForTimedActions(String workItemId, int escalationLevel, Date workItemCreateTime, Date workItemDeadline, Task wfTask, List<WorkItemTimedActionsType> timedActionsList, OperationResult result) { LOGGER.trace("Creating triggers for timed actions for work item {}, escalation level {}, create time {}, deadline {}, {} timed action(s)", workItemId, escalationLevel, workItemCreateTime, workItemDeadline, timedActionsList.size()); try { PrismContext prismContext = getPrismContext(); List<TriggerType> triggers = WfContextUtil.createTriggers(escalationLevel, workItemCreateTime, workItemDeadline, timedActionsList, prismContext, LOGGER, workItemId, WfTimedActionTriggerHandler.HANDLER_URI); LOGGER.trace("Adding {} triggers to {}:\n{}", triggers.size(), wfTask, PrismUtil.serializeQuietlyLazily(prismContext, triggers)); if (!triggers.isEmpty()) { List<ItemDelta<?, ?>> itemDeltas = prismContext.deltaFor(TaskType.class) .item(TaskType.F_TRIGGER).add(PrismContainerValue.toPcvList(triggers)) .asItemDeltas(); getCacheRepositoryService().modifyObject(TaskType.class, wfTask.getOid(), itemDeltas, result); } } catch (ObjectNotFoundException | SchemaException | ObjectAlreadyExistsException | RuntimeException e) { throw new SystemException("Couldn't add trigger(s) to " + wfTask + ": " + e.getMessage(), e); } }
@SuppressWarnings("unused") public List<PrismContainerValue<AccessCertificationWorkItemType>> getCertificationCampaignNonResponders(String campaignName, Integer stageNumber) throws SchemaException, SecurityViolationException, ConfigurationException, ObjectNotFoundException, ExpressionEvaluationException, CommunicationException { List<AccessCertificationWorkItemType> workItems = new ArrayList<>(); AccessCertificationCampaignType campaign = getCampaignByName(campaignName); if (campaign != null) { List<AccessCertificationCaseType> cases = getCertificationCampaignNotRespondedCasesAsBeans(campaignName); for (AccessCertificationCaseType aCase : cases) { for (AccessCertificationWorkItemType workItem : aCase.getWorkItem()) { if (norm(workItem.getIteration()) == norm(campaign.getIteration()) && (workItem.getOutput() == null || workItem.getOutput().getOutcome() == null) && (stageNumber == null || Objects.equals(workItem.getStageNumber(), stageNumber))) { workItems.add(workItem); } } } } else { LOGGER.debug("No campaign named '{}' was found", campaignName); } return PrismContainerValue.toPcvList(workItems); }
deltas.add(prismContext.deltaFor(objectClass) .item(ObjectType.F_OPERATION_EXECUTION) .delete(PrismContainerValue.toPcvList(CloneUtil.cloneCollectionMembers(executionsToDelete))) .asItemDelta());
public List<PrismContainerValue<WorkItemType>> searchApprovalWorkItems(int days, QName sortColumn) throws CommunicationException, ObjectNotFoundException, SchemaException, SecurityViolationException, ConfigurationException, ExpressionEvaluationException, DatatypeConfigurationException { Task task = taskManager.createTaskInstance(); OperationResult result = task.getResult(); ObjectQuery query = prismContext.queryFor(AbstractWorkItemType.class).build(); if (days > 0) { XMLGregorianCalendar since = (new Clock()).currentTimeXMLGregorianCalendar(); DatatypeFactory df = DatatypeFactory.newInstance(); since.add (df.newDuration(false, 0, 0, days, 0, 0, 0)); query.addFilter(prismContext.queryFor(AbstractWorkItemType.class) .item(AbstractWorkItemType.F_CREATE_TIMESTAMP).lt(since).buildFilter()); } if (sortColumn != null) { query.addFilter(prismContext.queryFor(AbstractWorkItemType.class) .asc(sortColumn) .buildFilter()); } Object[] itemsToResolve = { WorkItemType.F_ASSIGNEE_REF, ItemPath.create(PrismConstants.T_PARENT, WfContextType.F_OBJECT_REF), ItemPath.create(PrismConstants.T_PARENT, WfContextType.F_TARGET_REF), ItemPath.create(PrismConstants.T_PARENT, WfContextType.F_REQUESTER_REF) }; SearchResultList<WorkItemType> workItems = model.searchContainers(WorkItemType.class, query, schemaHelper.getOperationOptionsBuilder().items(itemsToResolve).resolve().build(), task, result); return PrismContainerValue.toPcvList(workItems); }
.item(F_CASE, caseId, F_WORK_ITEM).add(PrismContainerValue.toPcvList(workItems)) .item(F_CASE, caseId, F_CURRENT_STAGE_CREATE_TIMESTAMP).replace(stage.getStartTimestamp()) .item(F_CASE, caseId, F_CURRENT_STAGE_DEADLINE).replace(stage.getDeadline())