diff --git a/api/src/org/labkey/api/workflow/WorkflowService.java b/api/src/org/labkey/api/workflow/WorkflowService.java new file mode 100644 index 00000000000..55e22cb6602 --- /dev/null +++ b/api/src/org/labkey/api/workflow/WorkflowService.java @@ -0,0 +1,44 @@ +package org.labkey.api.workflow; + +import org.jetbrains.annotations.NotNull; +import org.labkey.api.data.Container;import org.labkey.api.security.User;import org.labkey.api.services.ServiceRegistry; + +public interface WorkflowService +{ + enum ActionType + { + AssayImport("assay types", "Imported assay data"); + + private final String _inputDescription; + private final String _auditMessage; + + ActionType(String inputDescription, String auditMessage) + { + _inputDescription = inputDescription; + _auditMessage = auditMessage; + } + + public String getInputDescription() + { + return _inputDescription; + } + + public String getAuditMessage() + { + return _auditMessage; + } + } + + static void setInstance(WorkflowService impl) + { + ServiceRegistry.get().registerService(WorkflowService.class, impl); + } + + static WorkflowService get() + { + return ServiceRegistry.get().getService(WorkflowService.class); + } + + void onActionComplete(@NotNull Container container, @NotNull User user, @NotNull Long actionId); + void onActionComplete(@NotNull Container container, @NotNull User user, @NotNull Long taskId, @NotNull ActionType actionType); +} diff --git a/assay/src/org/labkey/assay/actions/ImportRunApiAction.java b/assay/src/org/labkey/assay/actions/ImportRunApiAction.java index 853469b332b..54d26bc3220 100644 --- a/assay/src/org/labkey/assay/actions/ImportRunApiAction.java +++ b/assay/src/org/labkey/assay/actions/ImportRunApiAction.java @@ -69,6 +69,7 @@ import org.labkey.api.view.ActionURL; import org.labkey.api.view.NotFoundException; import org.labkey.api.view.UnauthorizedException; +import org.labkey.api.workflow.WorkflowService; import org.labkey.vfs.FileLike; import org.labkey.vfs.FileSystemLike; import org.springframework.beans.MutablePropertyValues; @@ -345,6 +346,12 @@ else if (rawData != null && !rawData.isEmpty()) Pair result = provider.getRunCreator().saveExperimentRun(uploadContext, batchId, forceAsync, getTransactionAuditDetails()); ExpRun run = result.second; + if (workflowTaskId != null) + { + WorkflowService workService = WorkflowService.get(); + if (workService != null) + workService.onActionComplete(getContainer(), getUser(), workflowTaskId, WorkflowService.ActionType.AssayImport); + } transaction.commit(); success = true;