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.