Begin Transaction … End Transaction

Exemplo de utilização de controle de transação no AdvPL, podendo utilizar “rollback” nas alterações feitas.

Exemplo da Rotina:

Begin Transaction

    //Tratativas de inclusão, alteração, disarm

End Transaction

Exemplo 1- Exemplo de criação de registro no cadastro de Produtos, perguntando se deseja cancelar:

//Bibliotecas

#Include "Protheus.ch"

/*/{Protheus.doc} zTeste

Função de Teste

@type function

@author Terminal de Informação

@since 13/11/2016

@version 1.0

    @example

    u_zTeste()

/*/

User Function zTeste()

    Local aArea    := GetArea()

    Local aAreaB1  := SB1->(GetArea())

    //Iniciando controle de transações

    Begin Transaction

        RecLock('SB1', .T.)

            B1_COD  := dToS(dDataBase)+StrTran(Time(), ':', '')

            B1_DESC := "Teste"

        SB1->(MsUnlock())

        //Se a pergunta foi confirmada, cancela os lançamentos na transação

        If MsgYesNo("Deseja cancelar e disarmar a transação?", "Atenção")

            DisarmTransaction()

        EndIf

    //Finalizando controle de transações

    End Transaction

    RestArea(aAreaB1)

    RestArea(aArea)

Return

Compartilhe nosso conteúdo

Nosso Boletim Informativo

Cadastre-se para receber nossos informativos, novidades e serviços por e-mail.

Categorias

Artigos Relacionados

Não há mais postagens para mostrar

Damasceno Viera, 928 – 42 Veneza
São Paulo 04363-040 SP, BR

Telefone: +55(11) 97546-2642
Email: info@phfsistemas.com.br