@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 void prepareStartInstruction(WfTaskCreationInstruction instruction) { instruction.setProcessName(PROCESS_DEFINITION_KEY); instruction.setSimple(false); instruction.setSendStartConfirmation(true); instruction.setProcessInterfaceBean(this); if (LOGGER.isDebugEnabled() && instruction instanceof PcpChildWfTaskCreationInstruction) { PcpChildWfTaskCreationInstruction instr = (PcpChildWfTaskCreationInstruction) instruction; LOGGER.debug("About to start approval process instance '{}'", instr.getProcessInstanceName()); if (instr.getProcessContent() instanceof ItemApprovalSpecificContent) { ItemApprovalSpecificContent iasc = (ItemApprovalSpecificContent) instr.getProcessContent(); LOGGER.debug("Approval schema XML:\n{}", PrismUtil.serializeQuietlyLazily(prismContext, iasc.approvalSchemaType)); LOGGER.debug("Attached rules:\n{}", PrismUtil.serializeQuietlyLazily(prismContext, iasc.policyRules)); } } }
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); } }