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!