/** {@inheritDoc} */ @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED) public void atualizarTransacoes(Integer idProcesso, String[] fluxos, String[] posicoes) throws NegocioException { Workflow workflow = this.getProcessoBO().obter(idProcesso).getWorkflow(); this.validarSePodeAlterarWorkflow(workflow); List<TransacaoAtividade> transacoes = this.getTransacoes(fluxos); this.validarFluxo(transacoes, idProcesso); List<TransacaoAtividade> atual = this.atividadeDAO.recuperarTransacoesDoProcesso(idProcesso); if (atual != null) { // excluindo as transações atuais for (TransacaoAtividade transacao : atual) { this.atividadeDAO.excluirTransacao(transacao); } this.flush(); } // inserindo as transações enviadas for (TransacaoAtividade transacao : transacoes) { this.atividadeDAO.salvarTransacao(transacao); } // Salvando as novas posições dos processos Atividade atividade; String[] atividades; for (String posicao : posicoes) { atividades = posicao.split(","); // Formato: <id>,<left>,<top> atividade = this.atividadeDAO.obter(Integer.valueOf(atividades[0])); atividade.setLeft(Integer.valueOf(atividades[1])); atividade.setTop(Integer.valueOf(atividades[2])); this.atividadeDAO.atualizar(atividade); } }