Tempo de leitura: 2 minutos
A função GetSXENum em ADVPL obtém o próximo número disponível ou sequencial de um alias/tabela informado no parâmetro, através da referência aos arquivos de sistema SXE/SXF ou ao servidor de numeração(TOTVS License Server Virtual), quando esta configuração está habilitada no ambiente TOTVS Protheus.
Essa função é muito útil quando desejamos obter o próximo número disponível de uma tabela para ser usado na inclusão via rotinas automáticas em ADVPL como Execauto.
A função GetSXENum trabalha em conjunto com a função ConfirmeSX8, que auxilia na confirmação da numeração automática e a função RollBackSX8, que desfaz toda a operação, voltando a numeração anterior.
Ela é uma das Funções de Controle de Numeração(SXE) em ADVPL.
Sintaxe:
GetSXENum(cAlias, cCampo, cAliasSXE, nOrdem)
Parâmetro(s):
Retorno:
Exemplo da função GetSXENum em ADVPL:
/*{Protheus.doc} User Function fGetSNum
(Essa função tem por finalidade mostrar a função GetSXENum 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 fGetSNum()
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.
Link de referência:https://tdn.totvs.com/pages/releaseview.action?pageId=24346933