Rotina Automática ExecAuto de Inclusão de Liberação de Documentos (MATA094) – MVC

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

 


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


 

 

📌 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 🚀

 

 

 

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