Usina BRAdvPL Guia
Entrar
← Todos os tópicos
GUIA PRÁTICOEm revisão

Transações e rollback no Protheus

Delimita a unidade de gravação e o fluxo de cancelamento.

Transações e rollback no ProtheusAdvPL
01 · VISÃO GERAL

Visão geral

A orientação oficial usa BEGIN TRANSACTION e END TRANSACTION e proíbe BeginTran/EndTran no ERP. DisarmTransaction desfaz desde o primeiro nível aberto e coloca o fluxo em TTSBREAK; deve ser seguido de Break ou término da thread conforme o contrato documentado. Não abra nova transação antes de sair de todos os níveis pendentes. O exemplo é laboratório sem gravações, que recusa transação já aberta ou TTSBREAK; demonstra fluxo, não prova rollback de dados. FWInTTSBreak exige LIB compatível, documentada para versões posteriores a 08022017. (Fontes: refs. 1–1.)

03 · EXEMPLO PRÁTICO

Exemplo comentado

#Include "Protheus.ch"

User Function Ed693()
    // Laboratorio isolado: nao interferir na transacao do chamador.
    If InTransact() .Or. FWInTTSBreak()
        Return Nil
    EndIf
    Begin Transaction
        // Sem gravacoes: demonstrar apenas a saida documentada.
        DisarmTransaction()
        Break
    End Transaction
    ConOut("Fluxo encerrado")
Return Nil
Resultado esperado

Se o laboratório estiver fora de transação e TTSBREAK, percorre uma transação vazia cancelada. Não há dados para desfazer. Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.

BOAS PRÁTICAS
  • Abrir transações próximas das gravações. Não esperar input nem fazer chamada de rede mantendo locks. Rollback não desfaz e-mail ou API externa; planejar esses efeitos separadamente.
  • Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.

Conteúdos relacionados

REFERÊNCIAS
  1. TOTVS. Controle de transações. DisarmTransaction, TTSBREAK e funções auxiliares. Consulta em 2026-10-28.
Situação
Em revisão
Página criada em
Última revisão em
Idioma original
Português
Revisão
Usina.BR
0 comentário(s) aprovado(s)

Comentários

Ainda não há comentários aprovados.

Entre com Google ou Microsoft para comentar.

Powered by Usina Docs · Alpha