Busqueda a traves de Cirrus


([N1] Spicer) #1

Estimados,

Tengo una busqueda que funciona a través de una variable alfanumérica con el numero de identidad de la persona (llamado RUT). Si bien es un número lo tengo definido como columna de texto por otros motivos.

Al pasar el URL http://localhost:4000/ConsultaEstadoRUT.json?RUT_CUERPO=11890047 se ejecuta el controlador con el código vJavaScript más abajo indicado, y obtengo como listSize, 0. Es decir, ningún resultado; sin embargo ResultadoBusOK es 1, lo cual me indica que la búsqueda sí se está realizando.

Pero lo curioso es que si ejecuto la misma búsqueda desde un botón en el formulario, con “Crear manejador de objeto”, “Set variable local de objeto” y “Disparar objeto”, obtengo sysListSize=1

¿Qué demonios estoy haciendo mal? Debo hacer notar que la búsqueda es sobre un índice complejo.
(abajo va el vJavaScript)
Muy agradecido!

ConsultaEstadoRUT: function (params) {

	importClass( "VQuery" );
	var bus = new VQuery( theRoot );
	bus.setQuery( "46v3zxk3.vcd/SRCH_CICLOS_SERV_RECAUDACION");
	var ListaResultados = new VRegisterList (theRoot);
	
	if (params.RUT_CUERPO) {
			bus.setVar("VAR_RUT_CUERPO", params.RUT_CUERPO);
			}
	
	var ResultadoBusOK = bus.exec();
	
	
	ListaResultados = bus.result();		
	var i = ListaResultados.listSize();	
	
			
	return (i);
}

([N3] pacosatu) #2

Hola Spicer.

Suponiendo que el Script JS está bien y que la ejecución se realize de igual manera desde Velneo que desde Cirrus, puede ser que el parámetro desde Cirrus (params.RUT_CUERPO) no se reciba adecuadamente.

Depura (por decir algo…) la línea bus.setVar(“VAR_RUT_CUERPO”, params.RUT_CUERPO). Confirma que params.RUT_CUERPO = 11890047.

Saludos
Paco Satué


([N1] Spicer) #3

Paco,

Efectivamente, ese es el problema. De hecho, si hago bus.setVar(“VAR_RUT_CUERPO”, “11890047”), funciona de maravillas…
Por lo que veo en el visor de salida de Cirrus, efectivamente ese es el numero que está recibiendo, pero quizá tenga algún caracter especial…

¿Alguna idea cómo podría ver eso?

Gracias!


([N1] Spicer) #4

Y bueno, finalmente lo resolví.
Resulta que params.RUT_CUERPO se ve como un string pero en realidad no es un string sino un objeto de vJavaScript
En consecuencia, lo que hice fue poner bus.SetVar(“VAR_RUT_CUERPO”, String(params.RUT_CUERPO)) y ahí funcionó de maravillas

gracias ilustre amigo Paco


([N3] pacosatu) #5

Hola Spicer.

Alguién decía hace un tiempo que Velneo no necesitaba un Depurador.
Vamos a ver qué nos han preparado en Life is Soft 2015.

Saludos
Paco Satué


([N2] ceferino) #6

Muchas gracias, Spicer:
Tenía el mismo problema con los parámetros de la url y buscando en el foro me lo has resuelto.
Te debo un café…

Muy agradecido
Ceferino


([N1] Spicer) #7

Estimado camarada Ceferino,

Estamos para servirlo. Yo tambien he obtenido ayuda en innumerables oportunidades aquí en el foro.