Tips Parte 4: Transici贸n de Oracle Forms a Oracle APEX. 馃實

Tips Parte 4: Transici贸n de Oracle Forms a Oracle APEX. 馃實

Continuando con el proceso de Transici贸n de Oracle Forms a Oracle APEX, marca un paso significativo para las empresas que desean modernizar sus aplicaciones y maximizar la eficiencia en sus proyectos. Durante d茅cadas, Oracle Forms ha sido una herramienta fundamental para desarrollar aplicaciones empresariales basadas en la base de datos Oracle. Sin embargo, la evoluci贸n de las tecnolog铆as web y la creciente necesidad de interfaces m谩s intuitivas y modernas han convertido a Oracle APEX (Application Express) en una opci贸n ideal para la modernizaci贸n.

En este art铆culo, exploraremos el proceso t茅cnico de integraci贸n entre ambas plataformas y c贸mo configurar esquemas de autenticaci贸n para garantizar una transici贸n segura y efectiva.

Conexi贸n entre Oracle Forms y APEX

Conceptos claves:

  • APEX_SESSION.CREATE_SESSION: Es un paquete de Oracle APEX que se utiliza para crear program谩ticamente sesiones de usuario. Es 煤til cuando deseas identificar a un usuario y redirigirlo a una pagina especifica.

    • Sintaxis:

        APEX_SESSION.CREATE_SESSION (
            p_app_id IN NUMBER, --ID de la aplicacion
            p_page_id IN NUMBER DEFAULT NULL, --ID de la pagina
            p_username IN VARCHAR2, 
            p_schema IN VARCHAR2 DEFAULT NULL
        );
      
        --Ejemplo de USO
        BEGIN
            APEX_SESSION.CREATE_SESSION(
                p_app_id   => 100,
                p_page_id  => 1,
                p_username => 'usuario_demo'
            );
        END;
      
  • APEX_PAGE.GET_URL: Se utiliza para generar din谩micamente URL鈥檚 que apuntan a p谩ginas espec铆ficas de una aplicaci贸n APEX.

    • Sintaxis:

        FUNCTION GET_URL (
            p_application        IN VARCHAR2 DEFAULT NULL, --ID de la aplicacion
            p_page               IN VARCHAR2 DEFAULT NULL, --ID de la pagina
            p_session            IN NUMBER   DEFAULT APEX.G_INSTANCE, 
            p_request            IN VARCHAR2 DEFAULT NULL, --**El nombre de la authenticacion en APEX
            p_debug              IN VARCHAR2 DEFAULT NULL,
            p_clear_cache        IN VARCHAR2 DEFAULT NULL,
            p_items              IN VARCHAR2 DEFAULT NULL,--Parametros como TOKEN
            p_values             IN VARCHAR2 DEFAULT NULL,--Valores de los parametros
            p_printer_friendly   IN VARCHAR2 DEFAULT NULL,
            p_trace              IN VARCHAR2 DEFAULT NULL )
            RETURN VARCHAR2;
      
    •     --EJemplo de USO
          DECLARE
              l_url VARCHAR2(4000);
          BEGIN
              l_url := APEX_PAGE.GET_URL(
                  P_APPLICATION => 100,
                  p_page        => 1,
                  p_items       => 'P2_ITEM1,P2_ITEM2',
                  p_values      => '123,ABC'
              );
              dbms_output.put_line('URL generada: ' || l_url);
          END;
      

      Tomar en cuenta que en el par谩metro p_request*, ingresaremos el nombre de la authenticacion, es decir, la authentiacion scheme creada en nuestra aplicaci贸n APEX.*

    • CREACION DE TOKEN: Para mejorar la seguridad, podemos implementar un mecanismo de autenticaci贸n basado en tokens. Una funci贸n personalizada podr铆a generarlos utilizando DBMS_CRYPTO o t茅cnicas similares.

         -- Create a TOKEN usando dbms_crypto
            vw_Token := dbms_crypto......
            return vw_Token;
      

Ejemplo de la integraci贸n:

Desde Oracle Forms.

BEGIN
    -- Generamos el token
    vtoken := GENERACION_TOKEN('usuario-demo');

    -- Crear la sesi贸n de APEX
    APEX_SESSION.CREATE_SESSION(100, 1, 'usuario-demo');
   -- Generar la URL din谩mica
   vUrl := 'http:....../' || APEX_PAGE.GET_URL (P_APPLICATION => 100,
                                                P_PAGE        => 1,
                                                P_ITEMS       => 'TOKEN,' || 'items',
                                                P_VALUES      => vtoken || ',' || 'valores',
                                                P_REQUEST     => 'APEX_AUTHENTICATION=JWT_AUTH');

    WEB.SHOW_DOCUMENT(vUrl , '_blank');

END;

Configuraci贸n del Esquema de Autenticaci贸n en APEX:

En la aplicaci贸n APEX, debemos crear un nuevo esquema de autenticaci贸n personalizado, por ejemplo, llamado JWT_AUTH. Este esquema debe configurarse definiendo las siguientes funciones:

  • Sentry Function Name: Funci贸n para controlar accesos.

  • Invalid Session Procedure Name: Procedimiento para manejar sesiones inv谩lidas.

  • Authentication Function Name: Funci贸n personalizada para validar autenticaciones.


Como resultado obtenemos lo siguiente:


CONCLUSI脫N:

Migrar de Oracle Forms a Oracle APEX es una decisi贸n estrat茅gica para empresas que buscan modernizar sus aplicaciones y aprovechar los beneficios de una arquitectura web. Este proceso no solo mejora la experiencia del usuario, sino que tambi茅n optimiza el desarrollo y mantenimiento. Con una planificaci贸n adecuada, la transici贸n puede realizarse de manera efectiva, aprovechando lo mejor de ambas plataformas.