Tempo de leitura: 4 minutos
Se você trabalha com customização Protheus e precisa manipular a forma como os pedidos de compra são exibidos na rotina de Documento de Entrada (MATA103), o Ponto de Entrada MA103F4H é a ferramenta ideal em ADVPL!
Este post detalha a funcionalidade e apresenta um exemplo ADVPL prático para você aplicar em seu ambiente TOTVS Protheus.
🎯 O que é o Ponto de Entrada MA103F4H?
O Ponto de Entrada MA103F4H é um exit point essencial no módulo SIGACOM – Compras do Protheus. Ele é disparado na rotina Documento de Entrada (MATA103), especificamente no momento da seleção e exibição dos pedidos de compra vinculados ao fornecedor, antes que a tela de itens dos pedidos seja apresentada.
✨ Funcionalidade e Aplicações
O MA103F4H permite que o desenvolvedor ADVPL filtre, altere ou manipule o array de pedidos de compra que será mostrado ao usuário.
💻 Exemplo em ADVPL do Ponto de Entrada MA103F4H
Abaixo, apresentamos um exemplo de Ponto de Entrada MA103F4H que demonstra como filtrar os pedidos de compra com base em uma condição específica antes de serem exibidos ao usuário na MATA103.
Este Ponto de Entrada recebe um array, por referência, contendo os pedidos de compra (SC7). A alteração desse array refletirá na tela de seleção.
#Include 'Protheus.ch'
#Include 'TopConn.ch'
/*/{Protheus.doc} MA103F4H
Ponto de Entrada para manipulação do array de Pedidos de Compra
na rotina Documento de Entrada (MATA103).
@author ProtheusAdvpl
@since 03/11/2025
@version 1
@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
@example
U_MA103F4H()
*/
User Function MA103F4H()
Local aPedCom := ParamIXB[1] // Array de Pedidos de Compra (SC7) - Recebido por referência
Local aNewPed := {} // Novo array para armazenar os pedidos filtrados
Local aLinha := {} // Linha atual do array aPedCom
Local cStatus := "" // Status do Pedido (SC7->C7_ESTADO)
Local cNumPed := "" // Número do Pedido (SC7->C7_NUM)
// Verifica se o array foi recebido e se contém informações
If ValType(aPedCom) == 'A' .And. Len(aPedCom) > 0
// Itera sobre o array de pedidos de compra
For nI := 1 To Len(aPedCom)
aLinha := aPedCom[nI]
cNumPed := aLinha[1] // Supondo que o primeiro elemento seja o C7_NUM
// Exemplo de como obter um campo do SC7:
// CUIDADO: O array aPedCom não é um array de registros, é um array de arrays
// com informações específicas. O mais seguro é buscar o registro.
// Exemplo: Buscar o Status do Pedido de Compra (C7_ESTADO) no SC7
DbSelectArea("SC7")
DbSetOrder(1) // C7_NUM + C7_ITEM
If DbSeek(xFilial("SC7") + cNumPed)
// Lê o status (Exemplo: "L" para Liberado)
cStatus := SC7->C7_ESTADO
Else
cStatus := ""
EndIf
// --- Regra de Negócio: Filtra apenas Pedidos com Status 'L' (Liberado) ---
// Você pode implementar qualquer regra de negócio aqui (Ex: C7_USER = "UsuarioX", C7_MOEDA = "1", etc.)
If AllTrim(cStatus) == "L"
AAdd(aNewPed, aLinha)
EndIf
// --------------------------------------------------------------------------
Next nI
// Zera o array original e o popula com os pedidos filtrados
ASize(aPedCom, 0)
AAdd(aPedCom, AClone(aNewPed))
// Limpa a memória
aNewPed := Nil
EndIf
Return(Nil)
🎓 Aprenda Mais sobre ADVPL e Protheus
Se o mundo da programação Protheus e a customização ADVPL/TLPP despertam o seu interesse, e você busca se aprofundar nos processos dos módulos, como compras, estoque e custos, faturamento, financeiro, gestão de pessoal e muito mais, você precisa conhecer o Portal ProtheusAdvpl!
O Portal ProtheusAdvpl é uma plataforma completa de aprendizado focada no TOTVS Protheus. Com ele, você terá acesso a:
-
Conteúdo Estruturado: Aulas do básico ao avançado em ADVPL e TLPP.
-
Módulos Específicos: Entenda a fundo os processos e as customizações nos principais módulos do Protheus (SIGACOM, SIGAEST, SIGAFAT, SIGAFIN, SIGAGPE, etc.).
-
Exemplos Práticos: Centenas de exemplos e casos reais de uso de Pontos de Entrada, User Functions e desenvolvimento de rotinas.
-
Comunidade Ativa: Participe de um ambiente colaborativo para tirar dúvidas e trocar experiências.
Não perca tempo! Transforme sua carreira e domine o Protheus.
🔗 Acesse agora e comece sua jornada de sucesso: Portal ProtheusAdvpl – Cursos ADVPL e Módulos Protheus
Link(s) de referência(s):http://tdn.totvs.com/pages/viewpage.action?pageId=6085338
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.