Ponto de Entrada A410EXC: Validando a Exclusão de Pedidos de Venda no Protheus

Tempo de leitura: 4 minutos

A exclusão de Pedidos de Venda (MATA410) é uma operação crítica no módulo SIGAFAT – Faturamento do TOTVS Protheus. Para garantir a integridade dos dados e respeitar regras de negócio específicas, o Ponto de Entrada A410EXC é a ferramenta essencial para customização ADVPL.

Neste post, exploraremos a funcionalidade do A410EXC, suas aplicações e forneceremos um exemplo ADVPL.

 

🎯 O que é o Ponto de Entrada A410EXC?

O Ponto de Entrada A410EXC é um exit point de validação na rotina de Exclusão de Pedido de Venda (MATA410). Ele é disparado antes que o sistema execute a exclusão física dos registros nas tabelas SC5 (Cabeçalho do Pedido) e SC6 (Itens do Pedido).

A principal finalidade é permitir que o desenvolvedor ADVPL implemente regras de negócio adicionais que possam impedir a exclusão do pedido.

 

✨ Funcionalidade e Aplicações

O A410EXC retorna um valor lógico: .T. (Verdadeiro) para permitir a exclusão, e .F. (Falso) para bloquear a exclusão.

Aplicação Comum Cenário de Uso
Bloqueio por Status Impedir a exclusão de pedidos que já foram faturados parcialmente ou que possuem um status de “Liberado para Faturamento”.
Validação Financeira Bloquear a exclusão se houver adiantamentos financeiros vinculados ao pedido.
Auditoria/Log Registrar a tentativa de exclusão em uma tabela customizada antes de permitir ou bloquear.
Restrição por Usuário Permitir que apenas usuários com perfis específicos (ex: Gerente de Vendas) possam excluir certos tipos de pedidos.

 

💻 Exemplo em ADVPL do Ponto de Entrada A410EXC

O Ponto de Entrada A410EXC não recebe parâmetros, mas ao ser executado, o ambiente de trabalho (área de Work Area) estará posicionado no cabeçalho do pedido na tabela SC5. O valor de retorno deve ser um lógico.

Abaixo, um exemplo ADVPL que impede a exclusão de qualquer pedido de venda que tenha o campo customizado C5_CUSTOM preenchido com “NAOEXCLUIR”.

#Include 'Protheus.ch'

/*/{Protheus.doc} A410EXC
Ponto de Entrada para validar a exclusão do Pedido de Venda na rotina MATA410.
Disparado antes da exclusão física dos registros.
@author ProtheusAdvpl
@since 03/11/2025
@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 do ProtheusAdvpl:
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!!|

@type User Function
@return logical Retorna .T. para permitir a exclusão e .F. para bloquear.
@example 
If !U_A410EXC()
    Return
EndIf
*/
User Function A410EXC()
Local lRet  := .T. // Por padrão, permite a exclusão

// O P.E. é executado com a Work Area SC5 (Tabela de Cabeçalho do Pedido)
// já posicionada no registro a ser excluído.

// Exemplo de Regra: Impedir a exclusão se o campo C5_ESTADO for 'F' (Faturado)
// Embora o Protheus já faça essa validação básica, é um bom exemplo.
If AllTrim(SC5->C5_ESTADO) == "F"
    lRet := .F.
    Help(,,"Atenção", "Pedido de Venda já Faturado. A exclusão foi bloqueada pela regra A410EXC.", 1, 0)
EndIf

// Exemplo de Regra Customizada: Utilizando um campo Z (C5_CUSTOM)
// Assumindo que C5_CUSTOM é um campo Z criado no SC5
If lRet .And. AllTrim(SC5->C5_CUSTOM) == "NAOEXCLUIR"
    lRet := .F.
    Help(,,"Atenção", "Este Pedido de Venda possui marcação de bloqueio e não pode ser excluído.", 1, 0)
EndIf

Return lRet // Retorna .T. para excluir, .F. para bloquear

 


 

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

Link(s) de referência(s):https://tdn.totvs.com/pages/releaseview.action?pageId=6784034

Bem, finalizamos mais um post aqui do Blog ProtheusAdvpl.

Se esse conteúdo lhe foi útil nos ajude compartilhando ele em suas redes sociais do TOTVS Protheus.

Grande abraço e fica com Deus.

 

🚀 Domine a Carreira Protheus com o Portal ProtheusAdvpl

Se você busca ir além dos Pontos de Entrada e dominar a fundo a Carreira Protheus, a plataforma Portal ProtheusAdvpl é o seu caminho definitivo para o sucesso.

Nossa metodologia de ensino é dividida em trilhas de conhecimento (CPAs), que cobrem tudo o que você precisa para ser um especialista TOTVS Protheus:

Trilha de Carreira Foco Principal
CPA1 (Infraestrutura) TOTVS AppServer, SmartClient HTML (WebApp/WebAgent), TOTVS DBAccess, SQL Server e License Server.
CPA2 (Programação) TOTVS VSCode, ADVPL, ADVPL MVC, ADVPL Web Services e TLPP. O core da customização Protheus.
CPA3 (Lógica de Negócios) Processos dos principais módulos: Compras (SIGACOM), Estoque e Custos (SIGAEST), Faturamento (SIGAFAT), Financeiro (SIGAFIN), Livros Fiscais (SIGAFIS), Contabilidade (SIGACTB), Gestão de Pessoal (SIGAGPE)/TAF/eSocial, Ponto Eletrônico (SIGAPON) e Medicina e Segurança do Trabalho (SIGAMDT) e Protheus Documentos Eletrônicos(TSS, NFe, NFSe, MDFe).

Com o Portal ProtheusAdvpl, você não apenas aprende ADVPL/TLPP, mas se torna um profissional completo, entendendo a lógica de negócio por trás dos módulos mais importantes do Protheus.

🔗 Transforme sua carreira e alcance a excelência no Protheus: Portal ProtheusAdvpl – Carreira Protheus (CPA)

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