Tempo aproximado para leitura: 00:02:00 min
Dúvida
Ao utilizar o codeanalysis tivemos o retorno "Uso de Return dentro do BeginTransaction", como resolver?
Ambiente
Cross Segmento - TOTVS Backoffice (Linha Protheus) - ADVPL - Todas as versões
Solução
Neste caso, é necessário encerrar a transação antes do return, para não ocorrer um divergência no banco de dados.
Segue um exemplo (https://tdn.totvs.com/pages/viewpage.action?pageId=271843449)
Function Grava01()
BEGIN TRANSACTION
//-------------------------------------------------------------------
//Bloco de Gravação A
//Dentro deste bloco será realizado alguma gravação no banco de dados
//-------------------------------------------------------------------
Grava02()
//-------------------------------------------------------------------
//Bloco de Gravação D
//Dentro deste bloco será realizado alguma gravação no banco de dados
//-------------------------------------------------------------------
END TRANSACTION
Return
Function Grava02()
BEGIN TRANSACTION
//-------------------------------------------------------------------
//Bloco de Gravação B
//Dentro deste bloco será realizado alguma gravação no banco de dados
//-------------------------------------------------------------------
DisarmTransaction()
Break
//-------------------------------------------------------------------
//Bloco de Gravação C
//Dentro deste bloco será realizado alguma gravação no banco de dados
//-------------------------------------------------------------------
END TRANSACTION
Return
Caso tenha dúvidas, deve ser reportado através do DevForum.
https://devforum.totvs.com.br/
Saiba mais
Guia de desenvolvimento da linha Microsiga Protheus
Boas práticas - TotvsTec
0 Comentários