Usina BRAdvPL Guia
Entrar
← Todos os tópicos
PONTO DE ENTRADAPublicado

MT120OK

MT120OK() --> lRetorno

Executa validações específicas de usuário nos itens do pedido de compra antes de seguir o processo.

Pontos de entradaComprasPedido de compraMATA120MATA121GetDadosValidação
01 · VISÃO GERAL

Visão geral

MT120OK é um ponto de entrada da rotina de Pedido de Compras / Autorização de Entrega. Ele é acionado no final da função A120TudOk(), após a confirmação dos itens da GetDados e antes do rodapé da dialog do pedido de compra. Seu retorno controla a continuidade do processo: .T. permite prosseguir e .F. interrompe a validação.

02 · SINTAXE

Sintaxe

MT120OK() --> lRetorno

Retorno

lRetorno, lógico. Retorne .T. para permitir que os itens validados sigam o processo. Retorne .F. para interromper o processo quando alguma validação específica do usuário não for atendida.

03 · EXEMPLO PRÁTICO

Validação de produto, quantidade e preço

#Include "TOTVS.ch"

User Function MT120OK()
    Local nPosPrd  := AScan(aHeader, {|x| AllTrim(x[2]) == "C7_PRODUTO"})
    Local nPosQtd  := AScan(aHeader, {|x| AllTrim(x[2]) == "C7_QUANT"})
    Local nPosPrc  := AScan(aHeader, {|x| AllTrim(x[2]) == "C7_PRECO"})
    Local lValido  := .T.
    Local nX       := 0

    For nX := 1 To Len(aCols)
        If !aCols[nX][Len(aCols[nX])] .And. !Empty(aCols[nX][nPosPrd])
            If Empty(aCols[nX][nPosQtd]) .Or. Empty(aCols[nX][nPosPrc])
                MsgAlert("Informe quantidade e preço para o produto " + aCols[nX][nPosPrd], "Validação do pedido")
                lValido := .F.
                Exit
            EndIf
        EndIf
    Next nX

Return lValido
Resultado esperado

O exemplo localiza os campos no aHeader, percorre as linhas do aCols e impede a continuidade quando um produto informado estiver sem quantidade ou sem preço.

04 · EXEMPLO PRÁTICO

Estrutura mínima

#Include "TOTVS.ch"

User Function MT120OK()
    Local lRetorno := .T.

    // Execute aqui as validações adicionais dos itens do pedido.
    // Retorne .F. para interromper o processo.

Return lRetorno
Resultado esperado

Estrutura mínima para criar uma validação adicional controlada pelo retorno lógico do ponto de entrada.

BOAS PRÁTICAS
  • A referência oficial informa que o ponto está localizado no final da função A120TudOk().
  • O ponto é disparado após a confirmação dos itens da GetDados e antes do rodapé da dialog do pedido de compra.
  • O programa fonte informado no TDN é MATA120.PRX.
  • A base histórica do catálogo também relaciona o ponto ao Pedido de Compra - MATA121.PRX; por isso, a página mantém as duas referências de rotina no contexto editorial.
  • Embora a sintaxe não declare parâmetros formais, o exemplo trabalha com variáveis de contexto como aHeader e aCols.
ARMADILHAS COMUNS
  • Não presuma que as posições de C7_PRODUTO, C7_QUANT e C7_PRECO sejam fixas; localize os campos no aHeader antes de acessar aCols.
  • Atenção à última posição da linha do aCols, usada com frequência para indicar linha marcada/excluída no browse.
  • Evite retornar .F. sem orientar o usuário sobre o motivo da interrupção.
  • Não execute processos demorados nessa validação sem avaliar o impacto na confirmação do pedido.
  • Evite includes legados em novos códigos quando não forem necessários; mantenha apenas as dependências exigidas pelo fonte.

Conteúdos relacionados

REFERÊNCIAS
  1. TOTVS. MT120OK - Validações Específicas de Usuário. TDN. Criado por Raphaela Marcela Ferreira, última alteração por Philipe dos Santos Pompeu em 7 jul. 2023. Acesso em 28 ago. 2026.
  2. COSTA, Adilio. Ponto de Entrada MT120OK - Validações Específicas de Usuário. ProtheusAdvpl, 22 out. 2025. Acesso em 28 ago. 2026.
  3. Pontos de Entrada — AP 7 7.10. Base histórica utilizada pelo AdvPL Guia para referência cruzada do pedido de compra.
Situação
Publicado
Página criada em
Última revisão em
Idioma original
Português
Revisão
Usina.BR
0 comentário(s) aprovado(s)

Comentários

Ainda não há comentários aprovados.

Entre com Google ou Microsoft para comentar.

Powered by Usina Docs · Alpha