public static void removeTriggersForWorkItem(Task wfTask, String workItemId, OperationResult result) { List<PrismContainerValue<TriggerType>> toDelete = new ArrayList<>(); for (TriggerType triggerType : wfTask.getTaskPrismObject().asObjectable().getTrigger()) { if (WfTimedActionTriggerHandler.HANDLER_URI.equals(triggerType.getHandlerUri())) { PrismProperty workItemIdProperty = triggerType.getExtension().asPrismContainerValue() .findProperty(SchemaConstants.MODEL_EXTENSION_WORK_ITEM_ID); if (workItemIdProperty != null && workItemId.equals(workItemIdProperty.getRealValue())) { toDelete.add(triggerType.clone().asPrismContainerValue()); } } } removeSelectedTriggers(wfTask, toDelete, result); }
OperationResult result = parentResult.createSubresult(AccCertTimedActionTriggerHandler.class.getName() + ".handle"); try { Duration timeBeforeAction = ObjectTypeUtil.getExtensionItemRealValue(trigger.getExtension(), SchemaConstants.MODEL_EXTENSION_TIME_BEFORE_ACTION); if (timeBeforeAction != null) { AbstractWorkItemActionType action = ObjectTypeUtil.getExtensionItemRealValue(trigger.getExtension(), SchemaConstants.MODEL_EXTENSION_WORK_ITEM_ACTION); if (action == null) { LOGGER.warn("Notification trigger without workItemAction; ignoring it: {}", trigger); WorkItemActionsType actions = ObjectTypeUtil.getExtensionItemRealValue(trigger.getExtension(), SchemaConstants.MODEL_EXTENSION_WORK_ITEM_ACTIONS); if (actions == null) { LOGGER.warn("Trigger without workItemActions; ignoring it: {}", trigger);
return; String workItemId = ObjectTypeUtil.getExtensionItemRealValue(trigger.getExtension(), SchemaConstants.MODEL_EXTENSION_WORK_ITEM_ID); if (workItemId == null) { LOGGER.warn("Trigger without workItemId; ignoring it: " + trigger); Duration timeBeforeAction = ObjectTypeUtil.getExtensionItemRealValue(trigger.getExtension(), SchemaConstants.MODEL_EXTENSION_TIME_BEFORE_ACTION); if (timeBeforeAction != null) { AbstractWorkItemActionType action = ObjectTypeUtil.getExtensionItemRealValue(trigger.getExtension(), SchemaConstants.MODEL_EXTENSION_WORK_ITEM_ACTION); if (action == null) { LOGGER.warn("Notification trigger without workItemAction; ignoring it: " + trigger); WorkItemActionsType actions = ObjectTypeUtil.getExtensionItemRealValue(trigger.getExtension(), SchemaConstants.MODEL_EXTENSION_WORK_ITEM_ACTIONS); if (actions == null) { LOGGER.warn("Trigger without workItemActions; ignoring it: " + trigger);
PrismProperty<String> workItemIdProp = workItemIdDef.instantiate(); workItemIdProp.addRealValue(workItemId); trigger.getExtension().asPrismContainerValue().add(workItemIdProp);
continue; String workItemId = ObjectTypeUtil.getExtensionItemRealValue(trigger.getExtension(), SchemaConstants.MODEL_EXTENSION_WORK_ITEM_ID); if (!taskEvent.getTaskId().equals(workItemId)) { continue; Duration timeBeforeAction = ObjectTypeUtil.getExtensionItemRealValue(trigger.getExtension(), SchemaConstants.MODEL_EXTENSION_TIME_BEFORE_ACTION); if (timeBeforeAction != null) { continue; WorkItemActionsType actions = ObjectTypeUtil.getExtensionItemRealValue(trigger.getExtension(), SchemaConstants.MODEL_EXTENSION_WORK_ITEM_ACTIONS); if (actions == null || actions.getComplete() == null) { continue;