Desfazendo a Numeração Gerada por GetSXENUM com RollBackSX8 em ADVPL

Tempo de leitura: 2 minutos

A função RollBackSX8 em ADVPL tem por objetivo desfazer a numeração sequencial gerada pela função GetSXENum. Ela é utilizada em situações em que ocorre algum erro, por exemplo, em processos de rotinas automáticas executadas via execauto, onde é gerado um número sequencial para ser utilizado na inclusão do registro e caso ocorra erros utilizamos ela para desfazer a numeração sequencial gerada e assim não perder o número e utilizá-lo em numa nova inclusão. Ela é uma das Funções de Controle de Numeração(SXE) em ADVPL.

RollBackSX8  é o oposto da função ConfirmSX8., que confirma a numeração gerada por GetSXENum.

 

Sintaxe:

RollBackSX8()

 

Parâmetro(s):

 

Retorno:

Exemplo da função RollBackSX8 em ADVPL:

/*{Protheus.doc} User Function fRBacSX8
(Essa função tem por finalidade mostrar a função RollBackSX8 em ADVPL)
@?type  Function
@?author Adilio Costa
@?since 23/06/2023
@?version 1.0

@?Inscreva-se no Blog ProtheusAdvpl:
https://www.protheusadvpl.com.br
@?Inscreva-se no Canal ProtheusAdvpl:
https://www.youtube.com/protheusadvpl
@?Siga-nos no Instagram:
https://www.instagram.com/protheusadvpl
@?Conheça os Cursos e Formações do Protheus:
https://cursos-e-formacoes-protheusadvpl.gr-site.com/

@Participe de nossas comunidades no WhatsApp:
-Comunidade Protheus Backoffice:https://chat.whatsapp.com/KMUIAjwZ6EZ6eAHsLkPTyb
-Comunidade Protheus-RH:https://chat.whatsapp.com/L5dUyAna6xU4ylG5DUgfOW
-Comunidade Protheus-Programação:https://chat.whatsapp.com/LsD6z0apdqKHlOz67bcaEn
-Comunidade Protheus-Framework:https://chat.whatsapp.com/BzUFpjaSnTC3vtsfa77jmG

|Se esse conteúdo foi útil pra você nos ajude divulgando
ele e nossas redes sociais!!|

*/
User Function fRBacSX8()
	Local cCodFor := ""

	DBSelectArea("SA2")
	DBSetOrder(1)

	cCodFor := GetSXENum("SA2","A2_COD")

	If(MsgYesNo("Deseja confirmar o código "+cCodFor+"?", "Confirmação"))
		//Trava a tabela para inserir um registro
		RecLock("SA2",.T.)
		A2_FILIAL := xFilial()
		A2_COD    := cCodFor
		A2_NOME   := "ProtheusAdvpl"
		//Destrava a tabela
		MsUnLock()
		//Utiliza a função ConfirmSX8() para confirmar a próxima numeração
		ConfirmSx8()

	Else
		//Utiliza a função RollBackSX8() para desfazer toda a operação e voltar para numeração anterior
		RollBackSX8()
	EndIf
	
Return

Bem, finalizamos mais um post aqui do blog, espero que tenha entendido. Qualquer dúvida deixe seu comentário abaixo ou nos envie um e-mail para adiliocosta@protheusadvpl.com.br. Nos ajude compartilhando esse conteúdo nos grupos de Protheus e ADVPL/TL++ que participa. Grande abraço e fica com Deus.

Receba as últimas atualizações do ProtheusAdvpl
Deixe seu melhor email
Nós respeitamos sua privacidade.