Tempo de leitura: 5 minutos
Olá, comunidade ProtheusAdvpl!
Hoje, mergulharemos em um dos Pontos de Entrada mais úteis para quem trabalha com o módulo de Compras (SIGACOM) e a rotina de Liberação de Documentos (MATA094): o MT094CPC. Se você precisa exibir informações adicionais, que não são padrão, do Pedido de Compra (SC7) ou Autorização de Entrega (SC9) no momento da liberação, este é o Ponto de Entrada que você estava procurando!
🤔 O que faz o Ponto de Entrada MT094CPC?
O Ponto de Entrada MT094CPC é acionado dentro da rotina MATA094 (Liberação de Documentos). Sua principal função é permitir que o desenvolvedor ADVPL inclua a exibição de informações de outros campos (sejam eles padrões ou criados via SX3) do Pedido de Compra ou Autorização de Entrega na tela de liberação.
Isso é crucial para que o aprovador tenha dados mais completos e relevantes para tomar a decisão de liberar ou não o documento, sem precisar sair da rotina ou consultar outras tabelas manualmente.
📋 Detalhes Técnicos e Utilização
| Detalhe | Descrição |
| Rotina Base | MATA094 (Liberação de Documentos) |
| Módulo | SIGACOM (Compras) |
| Tipo | Estrutural (É chamado em um ponto específico da rotina para realizar a ação) |
| Parâmetros | Não recebe parâmetros diretos (PARAMIXB não é utilizado) |
| Retorno | Não possui retorno obrigatório, a função apenas executa a lógica de exibição. |
| Tabelas Envolvidas | SC7 (Pedidos de Compra), SC9 (Autorizações de Entrega) e SCR (Alçadas) |
💻 Exemplo de Uso em ADVPL
A seguir, apresentamos um esqueleto de como você pode utilizar o MT094CPC para exibir uma informação customizada, como o nome de um campo extra do Pedido de Compra (SC7) na tela de liberação.
#INCLUDE "TOTVS.CH"
#INCLUDE "RWMAKE.CH"
/*/{Protheus.doc} MT094CPC
Exibe informações de outros campos do Pedido de Compra / Autorização de Entrega
no momento da liberação do documento (MATA094).
@type function
@author ProtheusAdvpl
@since 07/11/2025
@version 1.0
Portal ProtheusAdvpl:
Aula 10.34.2.1 - Ponto de Entrada MT094CPC:Exibe Informações de Outros Campos
do Pedido de Compra/Autorização de Entrega no Momento da Liberação do Documento (MATA094)
@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!!|
@param cNumPC, character, Número do Pedido de Compra ou Autorização de Entrega
/*/
User Function MT094CPC()
Local cNumPC := ""
Local cCampoExtra := "C7_MEUCAMP" // Exemplo: Campo extra na SC7 (Pedido de Compra)
Local cConteudoExtra := ""
Local lRet := .T.
// Verifica se a tabela SCR está posicionada (garantia da rotina)
If Select("SCR") > 0
// O número do documento a ser liberado geralmente está no campo CR_DOC
cNumPC := SCR->CR_DOC
// **IMPORTANTE**: A tabela que precisa ser consultada (SC7 ou SC9) deve ser
// verificada, a rotina MATA094 trabalha com ambos. Para simplificar o exemplo,
// vamos considerar que estamos focando na SC7 (Pedido de Compra).
DbSelectArea("SC7")
DbSetOrder(1) // C7_NUM + C7_ITEM + C7_FILIAL
If SC7->(DbSeek(xFilial("SC7") + cNumPC)) // Busca o PC pela chave
// Pega o conteúdo do campo extra
cConteudoExtra := SC7->&(cCampoExtra)
// Exibe a informação para o usuário.
// O PROTHEUS já tem um layout para isso na rotina.
// O ideal é usar uma função de help ou mensagem para exibir o dado.
Aviso("INFORMAÇÃO EXTRA:", "Conteúdo do " + cCampoExtra + ": " + cConteudoExtra, {"OK"})
// Se a sua intenção for só mostrar o dado sem travar, pode ser um
// MsgRun('...'), mas se for um dado crítico, uma pausa pode ser útil.
EndIf
EndIf
Return lRet
🌟 Dicas de Customização Avançada
- Validação e Bloqueio: Embora o foco do MT094CPC seja a exibição de dados, a informação que você exibe pode ser vital. Se a informação extra for um fator de bloqueio, você pode retornar um valor que a rotina MATA094 utilize em conjunto com outros Pontos de Entrada (como o MT094LOK) para impedir a liberação.
- Dados Agregados: Se o Pedido de Compra tiver vários itens, você pode usar este PE para somar valores ou listar itens críticos e exibir um resumo para o aprovador, garantindo que ele tenha uma visão consolidada do documento.
- Utilize o Ambiente: O ponto de entrada é executado com o ambiente posicionado na tabela de alçadas (SCR), o que facilita a busca dos dados do documento (CR_DOC).
O uso estratégico de Pontos de Entrada como o MT094CPC demonstra o poder de customização do Protheus e como o ADVPL permite adaptar o ERP perfeitamente às regras de negócio da sua empresa, especialmente em processos críticos como a Liberação de Documentos no Módulo Compras.
Link(s) de referência(s): https://tdn.totvs.com/pages/releaseview.action?pageId=286224513
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.
📢 Anúncio Especial: Leve seu Conhecimento em Protheus e ADVPL ao Próximo Nível!
Se você gostou deste conteúdo e quer dominar não apenas a programação ADVPL/TLPP, mas também os processos de negócio dos principais módulos do Protheus (como Compras, Estoque e Custos, Faturamento, Financeiro, Gestão de Pessoal e muitos outros), você precisa conhecer o Portal ProtheusAdvpl!
Uma plataforma completa com cursos e formações que te transformam em um especialista no ERP mais usado no Brasil. Clique e comece sua jornada de aprendizado hoje!
👉 Acesse a plataforma: https://go.hotmart.com/O10336806O?dp=1