Uso correcto/ Timing Items to Return en Dynamic Actions (AJAX) Oracle Apex

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.




Published by Angel O. Flores Torres

System engineer, Applications engineer, working with C# and Oracle Apex 5, 5.1 since 2017. I specialize in Oracle APEX (Oracle Application Express )

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: