Como desativar a edição de campos na Solicitação de Compras no Protheus (sem alterar o configurador)

Se você já precisou restringir a edição de campos em uma Solicitação de Compras no Protheus (MATA110), sabe que essa não é exatamente uma tarefa simples — especialmente quando queremos aplicar a regra apenas para determinados usuários, sem mexer no Modo de Edição do Configurador.

Pois é, essa dúvida é mais comum do que parece.
E neste artigo, vamos mostrar como desativar a edição de campos específicos da grid da Solicitação de Compras de forma prática, utilizando um ponto de entrada.

Essa é uma solução leve, segura e totalmente reversível — perfeita para quem quer manter o controle sem alterar o comportamento padrão do sistema.

O desafio

Um dos nossos alunos perguntou recentemente se seria possível bloquear alguns campos da tela de Solicitação de Compras (programa MATA110), mas sem alterar o modo de edição via Configurador — e aplicando isso apenas para determinados usuários.

A resposta é: sim, é possível.
E o segredo está no ponto de entrada MA110TEL, que permite manipular a grid de forma dinâmica.

A lógica por trás da solução

A ideia é simples e elegante:

  1. Verificamos se o processo é uma alteração (modo 4).
  2. Checamos se o usuário logado está em uma lista de exceções (definida via parâmetro).
  3. Percorremos o array aHeader, que contém as definições de cada coluna da grid.
  4. Identificamos os campos que queremos bloquear.
  5. Alteramos a posição do array responsável pela validação, forçando o valor para .F., o que impede a digitação.

Assim, apenas os usuários autorizados conseguem editar os campos desejados, e o comportamento da tela se ajusta automaticamente conforme o login.

Código-fonte completo

Abaixo está o código do ponto de entrada, pronto para ser implementado:

#Include "TOTVS.ch"

/*/{Protheus.doc} MT110TEL
Ponto de entrada que manipula a tela de Solicitação de Compras
@type user function
@author Atilio
@since 17/06/2025
@see https://tdn.totvs.com/pages/releaseview.action?pageId=6085447
/*/

User Function MT110TEL()
    Local aArea     := FWGetArea()
    Local nOpc      := PARAMIXB[3]
    Local cUsrLogad := RetCodUsr()
    Local cUsrPodem := SuperGetMV("MV_X_USALT", .F., "000005;000006;000011;")
    Local nAtual    := 0
    Local cCampo    := ""

    // Se for alteração
    If nOpc == 4

        // Se o usuário logado NÃO estiver na lista dos que podem alterar
        If ! cUsrLogad $ cUsrPodem

            // Percorre todos os campos da grid
            For nAtual := 1 To Len(aHeader)
                cCampo := Alltrim(aHeader[nAtual][02])

                // Se for o campo de Quantidade, Preço ou Observação
                If cCampo + ";" $ "C1_QUANT;C1_PRECO;C1_OBS;"
                    // Bloqueia a edição
                    aHeader[nAtual][06] := ".F."
                EndIf
            Next
        EndIf

    EndIf

    FWRestArea(aArea)
Return

Como configurar o parâmetro de controle de usuários

No código acima, usamos o parâmetro MV_X_USALT para definir quais usuários podem alterar os campos.
Basta configurar esse parâmetro no dicionário de dados, separando os códigos dos usuários com ponto e vírgula (;).

Exemplo:

MV_X_USALT = 000005;000006;000011;

Assim, apenas esses usuários conseguirão editar os campos bloqueados para os demais.

Dica prática

Essa abordagem é ideal para cenários onde:

  • Você quer limitar alterações sensíveis (como preço ou quantidade) a perfis específicos;
  • Deseja evitar erros de digitação em campos críticos;
  • Ou simplesmente quer melhorar o controle interno de compras sem precisar mexer no configurador ou aplicar bloqueios via dicionário.

Além disso, por ser uma customização feita via ponto de entrada, ela é fácil de manter, testar e remover, sem comprometer o ambiente padrão do Protheus.

Conclusão

Bloquear a edição de campos na Solicitação de Compras pode parecer uma tarefa complicada, mas com o ponto de entrada MA110TEL e um pouco de lógica em ADVPL, é possível fazer isso de forma simples, elegante e totalmente segura.

Na Geeker Company, acreditamos que pequenas automações como essa fazem toda a diferença no dia a dia da operação — reduzindo erros, melhorando o controle e dando mais agilidade para o time de compras.

Se você quer levar esse tipo de melhoria para o seu ambiente Protheus, fale com a gente.
Nós ajudamos sua empresa a evoluir com soluções práticas, inteligentes e que fazem o sistema trabalhar a seu favor.

Index

Categorias

Sobre o Autor

Foto do Autor
Fábio Hayama

Apaixonado por gestão, tecnologia e inovação, Fábio Hayama possui mais de 15 anos de experiência no universo do ERP Protheus, estratégia empresarial e automação de processos.

Leia mais sobre o Fábio

Entre em contato conosco

Veja mais artigos relacionados

{{brizy_dc_image_alt entityId=
Problemas na instalação zerada do Protheus: por que esse erro aparece logo no início?
Quem já tentou fazer uma instalação zerada do Protheus sabe: nem sempre o erro aparece depois de dias de uso. Às vezes, ele surge logo no começo, antes mesmo de você conseguir acessar o ambiente. E isso frustra — principalmente quando, aparentemente, “está tudo certo”. No artigo de hoje, vamos falar justamente sobre os problemas […]
{{brizy_dc_image_alt entityId=
Qual a diferença entre Protheus e TOTVS? Entenda de uma vez por todas
Se você já participou de alguma reunião sobre ERP no Brasil, provavelmente já ouviu alguém dizer frases como “a gente usa TOTVS” ou “nosso sistema é TOTVS”. E aí começa a confusão. Porque, na prática, TOTVS não é um sistema. E essa confusão, que parece pequena, é uma das grandes responsáveis por decisões ruins, projetos […]
{{brizy_dc_image_alt entityId=
Movimentos recentes da tecnologia: liderança, infraestrutura e foco em execução
O mercado de tecnologia vive um momento de ajuste fino. Em vez de grandes discursos sobre inovação, o que aparece com mais força são decisões práticas, mudanças de liderança, revisão de estratégia e investimentos muito bem direcionados. As notícias abaixo mostram como empresas globais e brasileiras estão se movimentando para ganhar eficiência, reduzir riscos e […]
{{brizy_dc_image_alt entityId=
O ERP não falha. O problema quase sempre é o treinamento da equipe
É comum ouvir frases como “esse ERP não funciona”, “o sistema é travado” ou “ninguém gosta de usar isso aqui”. Na maioria dos casos, o problema não está no ERP em si. Está na forma como a equipe foi (ou não foi) preparada para usar o sistema no dia a dia. Empresas investem valores altos […]