Session en APEX

¿Qué es la session en Oracle APEX?

Definición

Una sesión en APEX es un estado de persistencia lógica que vive durante un tiempo determinado por APEX. A cada sesión se le aplica un identificador único y APEX lo utiliza para recuperar un conjunto de datos almacenados en ella, es decir a nivel global nos sirve para pasar parámetros de una página a otra sin perder persistencia durante su tiempo de vida.


Session ID

Si en la definición de sesión hablamos de que tiene un identificador único, este es visible en la url de nuestras aplicaciones APEX, por ejemplo:

En la url tenemos

http://apexdevtesting.com:8080/ords/f?p=100:LOGIN_DESKTOP:6869888967516:::::

El identificador de la sesión es 6869888967516



Si puedes notar en la barra de desarrollador tenemos una opción de sesión, esta opción nos permitirá ver los siguientes alcances:



Page items: en esta sección encontrarás la información enviada a sesión de forma local, es decir desde un submit de un formulario y tiene scope detro de la página.

Application Items: aquí podrás identificar los items globales, estos tienen persistencia de forma global (en toda la aplicación).

Session state: cuando un usuario hace el submit de un formulario Apex automaticamente guarda los valores del formulario en esta sesión y una vez aquí será posible sustituirlos por variables, por ejemplo:

IF :P1_JOB IS NOT NULL THEN
  INSERT INTO tabla (employee_id, first_name, job_id) 
  VALUES (:P1_EMP_ID, :P1_NAME, :P1_JOB)--estos valores estarán en session
end if;

Collections: una colección de datos temporal es lo que se guarda en esta sección y por su puesto que debemos mandarla a sesión de forma manual, se pueden crear colecciones de la siguiente forma:
Begin
    l_query := 'select make, model, year from AUTOS';
    APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERY (
        p_collection_name => 'AUTO', 
        p_query => l_query,
        p_generate_md5 => 'YES');
End;
y se puede acceder a esta con una simple consulta

SELECT * FROM AUTO;
Una vez que el usuario termine la sesión, la colección y todo lo que esté ahí se destruye.

Este tema tal vez sea muy fácil de comprender, pero es esencial dominarlo y conocer los alcances que tiene APEX, me he encontrado muchos items tipo hidden todo por el desconocimiento de ciertos componentes como lo son los items globales.

No te pierdas el siguiente POST donde hablaremos de los items globales.

Comments