Usina BRGuía AdvPL
Ingresar
← Todos los temas
GUíA PRáCTICAEn revisión

Prevención y diagnóstico de bucles AdvPL

Explicita avance, condición de salida y límite del bucle.

Prevención y diagnóstico de bucles AdvPLAdvPL
01 · DESCRIPCIÓN GENERAL

Descripción general

Antes de optimizar, identifique qué cambia la condición de continuidad. En consultas, Eof y DbSkip deben usar el alias de la consulta aunque el cuerpo posicione otra tabla. Loop puede omitir el avance al final del cuerpo: cada camino debe avanzar o salir. El ejemplo en memoria incluye un límite y termina antes por la condición de negocio. Diagnostique con contadores e identificadores técnicos sin datos personales; revise reintentos ilimitados, bloqueos y validaciones reentrantes. (Fuentes: refs. 1–2.)

03 · EJEMPLO PRÁCTICO

Ejemplo comentado

#Include "Protheus.ch"

User Function Ed597()
    Local nPaso := 0
    Local nLimite := 10
    // Cada pasada avanza; el límite acota el trabajo.
    While nPaso < nLimite
        nPaso++
        If nPaso == 3
            Exit
        EndIf
    EndDo
    ConOut(nPaso)
Return Nil
Resultado esperado

Imprime 3 con avance y salida explícitos. El límite no sustituye errores ni cancelación. En revisión: ejemplo editorial no compilado ni ejecutado en Protheus. Comprobar includes, release, RDD y contexto antes de probar.

BUENAS PRÁCTICAS
  • Un contador no interrumpe una llamada interna bloqueada. Mida el tramo lento y compruebe cada alias.
  • En revisión: ejemplo editorial no compilado ni ejecutado en Protheus. Comprobar includes, release, RDD y contexto antes de probar.

Contenido relacionado

REFERENCIAS
  1. TOTVS. Desenvolvendo queries no Protheus. Seções de varredura e query de recno. Consulta el 2026-10-27.
  2. Atilio. dan-atilio/AdvPL. Maratona de Exemplos/Exemplo_421_Funcao_RetSQLName.prw. Arquivo completo consultado; adaptação editorial. Consulta el 2026-10-27.
Estado
En revisión
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