Tempo de leitura: 5 minutos
Se sua empresa utiliza Controle de Alçadas no Fluxo de Compras do TOTVS Protheus, entender como automatizar a liberação de documentos é fundamental para ganhar produtividade e evitar gargalos operacionais.
Neste post você vai aprender, em detalhes, como utilizar a Rotina Automática ExecAuto da MATA094 (Liberação de Documentos) para inclusão automática de registros na tabela SCR (Documentos com Alçadas) dentro do modelo MVC do Protheus.
📌 O que é a rotina MATA094?
A MATA094 – Liberação de Documentos é a rotina responsável por controlar a aprovação de documentos quando está ativo o Controle de Alçadas no Protheus.
Ela é utilizada principalmente no Fluxo de Compras, envolvendo:
-
Pedidos de Compra (MATA121)
-
Contratos de Parceria (MATA125)
-
Autorizações de Entrega (MATA122)
-
Documentos de Entrada (MATA103) com divergência
Quando existe controle de alçada configurado, os documentos passam a exigir aprovação conforme regras parametrizadas (valor, comprador, grupo de produto, centro de custo, etc.).
Esses documentos ficam registrados na:
Tabela SCR – Documentos com Alçadas
🚀 Automatizando a Liberação com ExecAuto (MATA094)
A ExecAuto permite executar a rotina MATA094 via código AdvPL, sem intervenção manual do usuário.
Isso é extremamente útil para:
-
Integrações
-
Customizações
-
Processos automáticos
-
Jobs
-
Workflows
-
Rotinas batch
-
Liberação automática baseada em regra específica
Estrutura da ExecAuto no MVC
A rotina MATA094 trabalha em MVC (Model-View-Controller).
Para utilizá-la via ExecAuto, precisamos montar corretamente os parâmetros esperados pelo Model.
Abaixo, segue o exemplo prático para implementar essa automação:
#INCLUDE 'RWMAKE.CH'
#INCLUDE 'TBICONN.CH'
#INCLUDE 'PROTHEUS.CH'
#INCLUDE 'FWMVCDEF.CH'
/*/{Protheus.doc
ExecAuto de Inclusão de Liberação de Documentos (MATA094)
@type Function
@author Adilio Costa
@since 14/02/2026
Portal ProtheusAdvpl:
Aula 10.34.1 - Rotina Automática ExecAuto de Inclusão de Liberação de Documentos MVC (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!!|
*/
User Function ExInc094()
Local oModel094 := Nil //-- Objeto que receberá o modelo da MATA094
Local cNum := "PMSA02" //-- Recebe o número do documento a ser avaliado
Local cTipo := "PC" //-- Recebe o tipo do documento a ser avaliado
Local cAprov := "000003" //-- Recebe o código do aprovador do documento
Local nLenSCR := 0 //-- Controle de tamanho de campo do documento
Local lOk := .T. //-- Controle de validação e commit
Local aErro := {} //-- Recebe msg de erro de processamento
//-- Inicializa o ambiente
PREPARE ENVIRONMENT EMPRESA "01" FILIAL "01" USER "Administrador" PASSWORD "*" MODULO "COM"
nLenSCR := TamSX3("CR_NUM")[1] //-- Obtem tamanho do campo CR_NUM
DBSelectArea("SCR")
SCR->(DBSetOrder(3)) //-- CR_FILIAL+CR_TIPO+CR_NUM+CR_APROV
If SCR->(DBSeek(xFilial("SCR") + cTipo + Padr(cNum, nLenSCR) + cAprov))
//-- Códigos de operações possíveis:
//-- "001" // Liberado
//-- "002" // Estornar
//-- "003" // Superior
//-- "004" // Transferir Superior
//-- "005" // Rejeitado
//-- "006" // Bloqueio
//-- "007" // Visualizacao
//-- Seleciona a operação de aprovação de documentos
A094SetOp('001')
//-- Carrega o modelo de dados e seleciona a operação de aprovação (UPDATE)
oModel094 := FWLoadModel('MATA094')
oModel094:SetOperation( MODEL_OPERATION_UPDATE )
oModel094:Activate()
//-- Valida o formulário
lOk := oModel094:VldData()
If lOk
//-- Se validou, grava o formulário
lOk := oModel094:CommitData()
EndIf
//-- Avalia erros
If !lOk
//-- Busca o Erro do Modelo de Dados
aErro := oModel094:GetErrorMessage()
//-- Monta o Texto que será mostrado na tela
AutoGrLog("Id do formulário de origem:" + ' [' + AllToChar(aErro[01]) + ']')
AutoGrLog("Id do campo de origem: " + ' [' + AllToChar(aErro[02]) + ']')
AutoGrLog("Id do formulário de erro: " + ' [' + AllToChar(aErro[03]) + ']')
AutoGrLog("Id do campo de erro: " + ' [' + AllToChar(aErro[04]) + ']')
AutoGrLog("Id do erro: " + ' [' + AllToChar(aErro[05]) + ']')
AutoGrLog("Mensagem do erro: " + ' [' + AllToChar(aErro[06]) + ']')
AutoGrLog("Mensagem da solução:" + ' [' + AllToChar(aErro[07]) +']')
AutoGrLog("Valor atribuído: " + ' [' + AllToChar(aErro[08]) + ']')
AutoGrLog("Valor anterior: " + ' [' + AllToChar(aErro[09]) + ']')
//-- Mostra a mensagem de Erro
MostraErro()
EndIf
//-- Desativa o modelo de dados
oModel094:DeActivate()
Else
MsgInfo("Documento não encontrado!", "MyExec094")
EndIf
//-- Finaliza o ambiente
RESET ENVIRONMENT
Return Nil
🎯 Quando utilizar ExecAuto na MATA094?
Você deve utilizar quando:
-
Criar integrações externas que exigem liberação automática
-
Implementar workflows personalizados
-
Realizar liberações automáticas baseadas em regra interna
-
Desenvolver rotinas batch para aprovação massiva
📈 Benefícios da Automação da Liberação
Implementar a Rotina Automática ExecAuto da MATA094 traz diversas vantagens:
-
Redução de retrabalho
-
Agilidade no fluxo de compras
-
Padronização do processo
-
Integração com sistemas externos
-
Menos intervenção manual
-
Maior controle sobre o Controle de Alçadas
📌 Conclusão
A Rotina Automática ExecAuto de Inclusão da MATA094 é uma poderosa ferramenta para automatizar o processo de liberação de documentos no Protheus, principalmente em ambientes que utilizam Controle de Alçadas no Fluxo de Compras.
Se você quer evoluir no desenvolvimento ADVPL e dominar rotinas automáticas como essa, precisa ir além do básico.
👉 Conheça agora nossos cursos e formações especializadas em ProtheusAdvpl:
https://cursos-e-formacoes-protheusadvpl.gr-site.com/
Invista no seu crescimento profissional e torne-se referência em desenvolvimento Protheus 🚀
Link de referência:https://tdn.totvs.com/pages/releaseview.action?pageId=543090187