Usina BRGuía AdvPL
Ingresar
← Todos los temas
PUNTO DE ENTRADAPublicado

MA261LIN

MA261LIN( <PARAMIXB> ) --> lRet

Valida cada línea de transferencia incluida en el browse de la rutina MATA261.

Puntos de entradaInventarioTransferenciasMATA261ValidaciónLinhaOkProtheus 12
01 · DESCRIPCIÓN GENERAL

Descripción general

MA261LIN es un punto de entrada de la rutina Transferencias Modelo 2 (MATA261), ubicado al final de A261LinOk(). Permite ejecutar validaciones adicionales para cada línea de transferencia incluida en el browse. Cuando retorna .T., la línea se acepta; cuando retorna .F., la validación se rechaza hasta corregir el problema.

02 · SINTAXIS

Sintaxis

MA261LIN( <PARAMIXB> ) --> lRet

Parámetros

PARAMIXB[1]
NuméricoObligatorio

Número de la línea de aCols que se está validando.

Predeterminado:

Retorno

lRet, lógico. Retorna .T. para permitir la inclusión de la línea de transferencia. Retorna .F. para invalidar la línea e impedir continuar hasta corregir el problema.

03 · EJEMPLO PRÁCTICO

Estructura mínima de MA261LIN

#Include "TOTVS.ch"

User Function MA261LIN()
    Local lRet    := .T.
    Local nLinea  := PARAMIXB[1] // Número de línea de aCols

    // Validaciones adicionales del usuario.
    // Ejemplo: verificar campos de nLinea antes de permitir la transferencia.

Return lRet
Resultado esperado

La función recibe la línea en validación mediante PARAMIXB[1], ejecuta reglas adicionales y retorna .T. para aceptar o .F. para rechazar la línea.

04 · EJEMPLO PRÁCTICO

Ejemplo didáctico de rechazo controlado

#Include "TOTVS.ch"

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

    If Empty(nLinea)
        MsgAlert("No fue posible identificar la línea de transferencia.", "Validación MATA261")
        lRet := .F.
    EndIf

Return lRet
Resultado esperado

El ejemplo muestra la lógica de retorno: cuando la regla identifica una inconsistencia, muestra un mensaje y retorna .F. para impedir la continuidad de la validación de la línea.

BUENAS PRÁCTICAS
  • Inicializa el retorno como .T. y cámbialo a .F. solamente cuando una regla de validación falle.
  • Guarda PARAMIXB[1] en una variable local con nombre claro, como nLinea.
  • Separa reglas grandes en funciones auxiliares para mantener el punto de entrada legible.
  • Prueba inclusión, alteración y escenarios con múltiples líneas en MATA261 antes de liberar en producción.
  • Registra en los comentarios de la personalización qué campo/posición de aCols se está validando.
ERRORES COMUNES
  • No persistas datos dentro de la validación si no es necesario; el objetivo principal es aprobar o rechazar la línea.
  • No supongas que la posición de los campos en aCols será igual en todos los releases, personalizaciones o escenarios.
  • Evita mensajes excesivos en validaciones por línea.
  • Si la regla depende de campos específicos, documenta claramente qué posiciones/campos se consideraron.

Contenido relacionado

REFERENCIAS
  1. TOTVS. MA261LIN - Valida movimiento de transferencia. TDN. Documentación oficial consultada el 28 ago. 2026.
  2. UDESENV. MATA261-MA261LIN - validaciones del linhaOK. Publicado por Eurai, creado el 15 oct. 2023 y actualizado el 3 nov. 2023.
  3. Puntos de Entrada — AP 7 7.10. Base histórica utilizada por la Guía AdvPL para referencia cruzada de la rutina MATA261.
Estado
Publicado
Página creada el
Última revisión el
Idioma original
Portugués
Revisión
Usina.BR
0 comentario(s) aprobado(s)

Comentarios

Todavía no hay comentarios aprobados.

Inicia sesión con Google o Microsoft para comentar.

Desarrollado con Usina Docs · Alpha