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
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)