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

MA261LIN

MA261LIN( <PARAMIXB> ) --> lRet

Valida cada linha de transferência incluída no browse da rotina MATA261.

Pontos de entradaEstoqueTransferênciasMATA261ValidaçãoLinhaOkProtheus 12
01 · VISÃO GERAL

Visão geral

MA261LIN é um ponto de entrada da rotina Transferências Mod. 2 (MATA261), localizado no final da função A261LinOk(). Ele permite executar validações adicionais em cada linha incluída no browse de transferência. Quando retorna .T., a linha é aceita; quando retorna .F., a validação é negada e o usuário não deve prosseguir com aquela inclusão.

02 · SINTAXE

Sintaxe

MA261LIN( <PARAMIXB> ) --> lRet

Parâmetros

PARAMIXB[1]
NuméricoObrigatório

Número da linha do aCols que está sendo validada.

Padrão:

Retorno

lRet, lógico. Retorne .T. para permitir a inclusão da linha de transferência. Retorne .F. para invalidar a linha e impedir que o usuário continue incluindo a transferência sem corrigir o problema.

03 · EXEMPLO PRÁTICO

Estrutura mínima do MA261LIN

#Include "TOTVS.ch"

User Function MA261LIN()
    Local lRet   := .T.
    Local nLinha := PARAMIXB[1] // Número da linha do aCols

    // Validações adicionais do usuário.
    // Exemplo: verificar campos da linha nLinha antes de permitir a transferência.

Return lRet
Resultado esperado

A função recebe a linha em validação por PARAMIXB[1], executa regras adicionais e retorna .T. para aceitar ou .F. para rejeitar a linha.

04 · EXEMPLO PRÁTICO

Exemplo didático de reprovação controlada

#Include "TOTVS.ch"

User Function MA261LIN()
    Local lRet   := .T.
    Local nLinha := PARAMIXB[1]

    If Empty(nLinha)
        MsgAlert("Não foi possível identificar a linha da transferência.", "Validação MATA261")
        lRet := .F.
    EndIf

Return lRet
Resultado esperado

O exemplo mostra a lógica de retorno: quando a regra identifica uma inconsistência, exibe uma mensagem e retorna .F. para impedir a continuidade da validação da linha.

BOAS PRÁTICAS
  • O ponto de entrada é chamado ao final da validação da função A261LinOk(), para cada linha de transferência incluída no browse.
  • A rotina de referência é a MATA261, conforme fluxo analisado na documentação oficial disponível.
  • Use MA261LIN para regras adicionais de negócio que dependam da linha corrente da transferência.
  • Mantenha a validação objetiva e rápida, pois ela pode ser executada repetidamente durante a edição das linhas.
  • Confirme o comportamento na versão, release e patch do Protheus utilizados no ambiente.
ARMADILHAS COMUNS
  • Não altere dados persistentes dentro da validação sem necessidade; o objetivo principal do ponto é aprovar ou reprovar a linha.
  • Não presuma que a posição dos campos no aCols será igual em todos os releases, customizações ou cenários.
  • Evite mensagens excessivas em validações por linha, pois isso pode tornar a digitação da transferência cansativa para o usuário.
  • Se a regra depende de campos específicos, documente claramente quais posições/campos foram considerados no ambiente validado.

Conteúdos relacionados

REFERÊNCIAS
  1. TOTVS. MA261LIN - Valida movimento de transferência. TDN. Documentação oficial consultada em 28 ago. 2026.
  2. UDESENV. MATA261-MA261LIN - Validações do linhaOK. Publicado por Eurai, criado em 15 out. 2023 e atualizado em 3 nov. 2023.
  3. Pontos de Entrada — AP 7 7.10. Base histórica utilizada pelo AdvPL Guia para referência cruzada da rotina MATA261.
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