Estaba trabajando con mi amigo Jorge R. y nos encontramos con algo realmente interesante, cuando usamos llamadas PLSQL en un dynamic actions.
Revisando un problema de un combo box , donde se necesitaba usar un valor despues de la seleccion del elemento, usamos un dynamic action y retornamos dos valores, aqui es donde descubrimos que el orden del retorno de las variables es \”Muy Importante\”.
Vamos a revisarlo en un ejemplo:
Tengo una lista, P16_LIST_DEP el cual en mi caso asignare valores a los items, P16_VAL_1 y P16_VAL_2
Como vemos estoy colocando 10 y 20 en nuestros items y retornandolos en \”Items to Return\”.
Adicionalmente, tengo un Dynamic Action que se ejecuta cuando cambia el valor de de P16_VAL_1 y este muestra en consola el valor de P16_VAL_2.
Entonces corremos la aplicacionm cambiare la seleccion de P16_LIST_DEPT y vemos el valor ….
Vacio ??, pero tenemos un valor en \”Items to Return\”, si efectivamente, es lo que vimos, y esto ocurre por que cuanndo usamos Dynamic Action estamos usando Ajax.
Entonces estamos retornando primero el valor de P16_VAL_1, al cambiar el valor se ejecuta el DA pero nuestra variable P16_VAL_2 , aun no tiene valor, asi que muestra vacio.
Ahora cambiare el orden de retorno de los valores y veamos lo que pasa.
Y si ahora lo vemos correctamente:
Lo que paso ahora es que el P16_VAL_2 se coloco en sesion primero, y luego el valor de P16_VAL_1 cuando este cambio, se ejecuto el DA y mostro correctamente en consola el valor de P16_VAL_2.
Asi que, a tener mucho cuidado en el orden de los items que retornamos , si estos ejecutan un DA, con un valor que tambien esta retornando.