Define o início de um ciclo de transação (begin transaction) dentro de uma thread. Esse bloco deve ser associado ao banco de dados vinculado ao namespace selecionado.


Figura 1 - Bloco Iniciar Transação


Este bloco utiliza a interface Java TransactionManager. Ela define métodos para possibilitar que o servidor de aplicações gerencie os limites de transações na thread. Dessa forma, o Cronapp oferece um serviço de controle de transação que aguardará o final da thread para definir se irá atualizar o banco de dados (commit) ou não realizar nenhuma ação (rollback). Por isso é importante entender a necessidade do projeto e saber quando utilizar os blocos de transação, evitando, por exemplo, fechar um ciclo de transação fora do escopo da função de bloco de programação. 

Compatibilidade

  • Bloco servidor: cronapi.database.Operations.beginTransaction()

Retorno

O bloco não possui retorno.

Parâmetros

O bloco não possui parâmetros.

Características do bloco

O bloco Iniciar Transação é vinculado ao namespace da aplicação. Por padrão o Cronapp possui o namespace "app", o qual será utilizado neste exemplo. Para configurá-lo, clique no ícone de engrenagem (seta da figura 2), em seguida, será aberta a janela com uma caixa de seleção solicitando a escolha do namespace (destaque 1 da figura 2).


Figura 2 - Seleção do namespace

Exemplo

Inicialmente criamos uma entidade denominada "carro" no Diagrama de dados, em seguida, criamos uma view, na qual inserimos dois componentes: entrada de texto e um botão, que será responsável por ativar a função. Para que o exemplo abaixo funcione, é necessário vincular um formulário de referência ao bloco. Acesse o tópico Propriedades do Blockly da documentação Bloco de programação para mais detalhes.

A função abaixo inicia uma transação antes de inserir dados na entidade "carro", os dados são obtidos através dos blocos Obter valor do campo na view. Caso ocorra algum problema, o erro será impresso no Console do Depurador e a operação não será concluída, devido ao bloco Rollback da Transação, do contrário, a operação será finalizada no campo "finally", pelo bloco Commit da Transação. O bloco try catch foi utilizado para garantir o fluxo de execução.


Figura 2.1 - Função que inicia uma transação


Execute o projeto e preencha os dados necessários.


Figura 2.2 - Inserindo dados do carro


O resultado pode ser conferido abaixo. Como não ocorreu nenhum erro durante a transação, os dados foram inseridos de forma correta no banco.


Figura 2.3 - Resultado após a inserção dos dados

Nesta página