Continuando con la segunda parte, ahora te muestro cómo hice para que mi página de resultados mantenga la configuración del checksum y no me genere error. Si quieres ver la parte 1 aquí te dejo el enlace 🙂

Entonces en propiedades de la página de resultados en mi caso la 67, configuré en Page Access Protection =  Arguments Must Have Checksum.

Luego en la página Global 0, agregué un ítem oculto que lo llamé P0_URL_RESULT, que vamos a utilizarlo para guardar la URL con el Ckecksum.

A continuación, dentro de la Acción Dinámica del elemento que vimos en el post anterior, vamos a realizar lo siguiente.

Tenemos dos Acciones Verdaderas.

True Action 1

Execute Server-side Code =

BEGIN
:P0_URL_RESULT := APEX_UTIL.PREPARE_URL(p_url =>'f?p=&APP_ID.:67:&APP_SESSION.::::P67_SEARCH:&P0_SEARCH.',p_checksum_type=> 'SESSION',p_triggering_element =>NULL);
END;

Items to Submit = P0_SEARCH

Items to Return = P0_URL_RESULT

True Action 2

Execute JavaScript Code =

var vURLResultSearch = apex.item('P0_URL_RESULT').getValue();
window.location = vURLResultSearch;

De esta forma ahora podemos ir a la página de resultados desde cualquier página de la aplicación sin problema 🙂

¡Si conoces otra forma de hacerlo compártelo en los comentarios para que podamos seguir aprendiendo!

Por último si quieres que la redirección sólo suceda cuando el usuario ingresa 4 o mas caracteres puedes colocar este código JavaScript en la condición de la Acción Dinámica:

event.keyCode == '13' && apex.item("P0_SEARCH").getValue().length >= 4;

¡Hasta la próxima!