diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java index 00f98ffe614..17346f7efde 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java @@ -619,7 +619,7 @@ public static TaskType createSingleRecurrenceTask(String taskName, QName applica ObjectReferenceType ownerRef = new ObjectReferenceType(); ownerRef.setOid(owner.getOid()); - ownerRef.setType(owner.getUser().COMPLEX_TYPE); + ownerRef.setType(UserType.COMPLEX_TYPE); task.setOwnerRef(ownerRef); task.setBinding(TaskBindingType.LOOSE); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebModelServiceUtils.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebModelServiceUtils.java index 6a5e3a4ce6d..6f5b378d8ce 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebModelServiceUtils.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebModelServiceUtils.java @@ -16,6 +16,7 @@ import java.util.Map; import java.util.TimeZone; +import com.evolveum.midpoint.schema.*; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; import org.apache.commons.lang.BooleanUtils; import org.apache.commons.lang.LocaleUtils; @@ -42,10 +43,6 @@ import com.evolveum.midpoint.prism.delta.ObjectDelta; import com.evolveum.midpoint.prism.path.ItemPath; import com.evolveum.midpoint.prism.query.ObjectQuery; -import com.evolveum.midpoint.schema.GetOperationOptions; -import com.evolveum.midpoint.schema.GetOperationOptionsBuilder; -import com.evolveum.midpoint.schema.SchemaHelper; -import com.evolveum.midpoint.schema.SelectorOptions; import com.evolveum.midpoint.schema.constants.SchemaConstants; import com.evolveum.midpoint.schema.result.OperationResult; import com.evolveum.midpoint.schema.util.ObjectTypeUtil; @@ -184,11 +181,14 @@ public static String runTask(TaskType taskToRun, Task operationalTask, Operation try { ObjectDelta delta = DeltaFactory.Object.createAddDelta(taskToRun.asPrismObject()); pageBase.getPrismContext().adopt(delta); - pageBase.getModelService().executeChanges(WebComponentUtil.createDeltaCollection(delta), null, + Collection> deltaOperationRes = pageBase.getModelService().executeChanges(WebComponentUtil.createDeltaCollection(delta), null, operationalTask, parentResult); + if (StringUtils.isEmpty(delta.getOid()) && deltaOperationRes != null && !deltaOperationRes.isEmpty()){ + ObjectDeltaOperation deltaOperation = deltaOperationRes.iterator().next(); + delta.setOid(deltaOperation.getObjectDelta().getOid()); + } parentResult.recordInProgress(); parentResult.setBackgroundTaskOid(delta.getOid()); - pageBase.showResult(parentResult); return delta.getOid(); } catch (ObjectAlreadyExistsException | ObjectNotFoundException | SchemaException | ExpressionEvaluationException | CommunicationException | ConfigurationException diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageAssignmentsList.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageAssignmentsList.java index 5ceeccb8549..6ec73846f7c 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageAssignmentsList.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageAssignmentsList.java @@ -339,13 +339,13 @@ private ModelExecuteOptions createOptions() { private void onMultiUserRequestPerformed(AjaxRequestTarget target) { OperationResult result = new OperationResult(OPERATION_REQUEST_ASSIGNMENTS); Task operationalTask = createSimpleTask(OPERATION_REQUEST_ASSIGNMENTS); - + String executionTaskOid = null; try { TaskType task = WebComponentUtil.createSingleRecurrenceTask( createStringResource(OPERATION_REQUEST_ASSIGNMENTS).getString(), UserType.COMPLEX_TYPE, getTaskQuery(), prepareDelta(null, result), createOptions(), TaskCategory.EXECUTE_CHANGES, PageAssignmentsList.this); - WebModelServiceUtils.runTask(task, operationalTask, result, PageAssignmentsList.this); + executionTaskOid = WebModelServiceUtils.runTask(task, operationalTask, result, PageAssignmentsList.this); } catch (SchemaException e) { result.recordFatalError(result.getOperation(), e); result.setMessage(createStringResource("PageAssignmentsList.requestError").getString()); @@ -353,7 +353,7 @@ private void onMultiUserRequestPerformed(AjaxRequestTarget target) { "Failed to execute operaton " + result.getOperation(), e); target.add(getFeedbackPanel()); } - if (hasBackgroundTaskOperation(result)) { + if (hasBackgroundTaskOperation(result) || StringUtils.isNotEmpty(executionTaskOid)) { result.setMessage(createStringResource("PageAssignmentsList.requestInProgress").getString()); showResult(result); clearStorage();