ipprmt021: consulta el nombre del usuario una sola vez por usuario (antes una consulta por fila)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-26 15:56:18 -04:00
co-authored by Claude Sonnet 5.5
parent f6f1c9b8c7
commit f8e97fd09e
+7 -2
View File
@@ -20,6 +20,7 @@ GLOBALS
us_crea VARCHAR(50) us_crea VARCHAR(50)
END RECORD END RECORD
DEFINE nombreUsuario,email,etiqueta STRING DEFINE nombreUsuario,email,etiqueta STRING
DEFINE cacheUsuarios DICTIONARY OF STRING
MAIN MAIN
DEFER INTERRUPT DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios CALL ARG_VAL(1) RETURNING usuarios
@@ -59,8 +60,12 @@ FUNCTION ipprmt021()
LET idx = 1 LET idx = 1
FOREACH buscardata INTO arr_busqueda[idx].* FOREACH buscardata INTO arr_busqueda[idx].*
CALL usuarioSistema(arr_busqueda[idx].us_crea) RETURNING nombreUsuario,email # Nombre del usuario: se consulta una sola vez por usuario
LET arr_busqueda[idx].usuario = nombreUsuario IF NOT cacheUsuarios.contains(arr_busqueda[idx].us_crea) THEN
CALL usuarioSistema(arr_busqueda[idx].us_crea) RETURNING nombreUsuario,email
LET cacheUsuarios[arr_busqueda[idx].us_crea] = nombreUsuario
END IF
LET arr_busqueda[idx].usuario = cacheUsuarios[arr_busqueda[idx].us_crea]
LET idx = idx + 1 LET idx = idx + 1
END FOREACH END FOREACH
IF idx = 1 THEN IF idx = 1 THEN