public static Result moveTasks(TeamWorkFlowArtifact newParent, List<TaskArtifact> taskArts) throws OseeCoreException { for (TaskArtifact taskArt : taskArts) { // task dropped on same awa as current parent; do nothing if (taskArt.getParentAWA().equals(newParent)) { return Result.FalseResult; } // Validate able to move tasks; WorkDefinitions must match boolean taskOverridesItsWorkDefinition = AtsClientService.get() .getWorkDefinitionAdmin() .isTaskOverridingItsWorkDefinition(taskArt); IWorkDefinitionMatch match = AtsClientService.get() .getWorkDefinitionAdmin() .getWorkDefinitionForTaskNotYetCreated(newParent); if (!taskOverridesItsWorkDefinition && !taskArt.getWorkDefinition().equals(match.getWorkDefinition())) { return new Result( "Desitination Task WorkDefinition does not match current Task WorkDefintion; Move Aborted"); } } // Move Tasks SkynetTransaction transaction = TransactionManager.createTransaction(AtsUtilCore.getAtsBranch(), "Drop Add Tasks"); for (Artifact art : taskArts) { if (art.isOfType(AtsArtifactTypes.Task)) { TaskArtifact taskArt = (TaskArtifact) art; taskArt.clearCaches(); if (taskArt.getParentAWA() != null) { taskArt.deleteRelation(AtsRelationTypes.TeamWfToTask_TeamWf, taskArt.getParentAWA()); } taskArt.addRelation(AtsRelationTypes.TeamWfToTask_TeamWf, newParent); taskArt.persist(transaction); taskArt.clearCaches(); } } transaction.execute(); return Result.TrueResult; }