Este paquete provee muchos métodos para modificar atributos de la aplicación durante el proceso de instalación de APEX.
Oracle APEX ofrece dos formas de importar una aplicación a una instancia de Application Express:
- Cargar e instalar un archivo de exportación de la aplicación mediante la interfaz web de APEX.
- Ejecutar el archivo de exportación de la aplicación como un script SQL, normalmente en la utilidad de línea de comandos SQL*Plus, o bien, desde SQL Developer.
Usando la capacidad de carga de archivos de la interfaz web de APEX, los desarrolladores pueden importar una aplicación con una ID de aplicación diferente, una ID de espacio de trabajo diferente y un esquema de análisis diferente. Pero al importar una aplicación mediante una herramienta de línea de comandos como SQL*Plus, ninguno de estos atributos (ID de la aplicación, ID del espacio de trabajo, esquema de análisis) se puede cambiar sin modificar directamente el archivo de exportación de la aplicación.
Para ver el registro de instalación, ingrese lo siguiente desde la herramienta de línea de comandos, para que se muestren los resultados del servidor:
set serveroutput on unlimited
A medida que más y más clientes de Application Express crean aplicaciones destinadas a implementarse mediante utilidades de línea de comandos o mediante un instalador no basado en web, se enfrentan al desafío de cómo importar su aplicación a un espacio de trabajo arbitrario en cualquier lugar. Instancia de la aplicación Express.
Otro escenario común es en una clase de capacitación cuando se instala una aplicación en 50 espacios de trabajo diferentes que usan el mismo archivo de exportación de la aplicación. Hoy en día, los clientes solucionan esto agregando sus propias variables globales a un archivo de exportación de la aplicación y luego variando los valores de estas variables globales en el momento de la instalación. Sin embargo, esta modificación manual del archivo de exportación de la aplicación (generalmente realizada con un script sed o awk posterior a la exportación) no debería ser necesaria.
Application Express 4.0 y superior incluye la API APEX_APPLICATION_INSTALL. Esta API de PL/SQL proporciona muchos métodos para establecer los atributos de la aplicación durante el proceso de instalación de la aplicación APEX. Todos los archivos de exportación en Application Express 4.0 y superior contienen referencias a los valores establecidos por la API APEX_APPLICATION_INSTALL. Sin embargo, los métodos de esta API solo se utilizan para anular el comportamiento de instalación de la aplicación predeterminada.
Atributos manipulados por APEX_APPLICATION_INSTALL
En esta sección se describen los atributos que pueden ser definidos con el uso de APEX_APPLICATION_INSTALL por medio de funciones.
Atributo | Descripción |
Workspace ID | Identificador del espacio de trabajo de la aplicación importada |
Application ID | Identificador de la aplicación instalada |
Offset | Valor Offset utilizado durante el proceso de instalación |
Schema | El esquema de análisis (“owner”) de la aplicación importada |
Name | El nombre de aplicación de la aplicación importada |
Alias | El alias de aplicación de la aplicación importada |
Image Prefix | El prefijo de imagen de la aplicación importada |
Proxy | Los atributos del servidor proxy de la aplicación importada |
Tipos de datos de importación
A continuación se describen los tipos de datos utilizados por el paquete APEX_APPLICATION_INSTALL.
t_file_type
Define los tipos de archivos de instalación:
subtype t_file_type is pls_integer range 1 .. 5;
c_file_type_workspace constant t_file_type := 1;
c_file_type_app constant t_file_type := 2;
c_file_type_websheet constant t_file_type := 3;
c_file_type_plugin constant t_file_type := 4;
c_file_type_css constant t_file_type := 5;
Nota: la constante c_file_type_websheet ya no se usa en APEX y se encuentra obsoleta.
t_app_usage
Define los tipos de uso de aplicación
subtype t_app_usage is pls_integer range 1..3;
c_app_usage_not_used constant t_app_usage := 1;
c_app_usage_current_workspace constant t_app_usage := 2;
c_app_usage_other_workspace constant t_app_usage := 3;
t_file_info
Especifica información en un archivo fuente que se puede usar para configurar la instalación.
type t_file_info is record (
file_type t_file_type,
workspace_id number,
version varchar2(10),
app_id number,
app_name varchar2(4000),
app_alias varchar2(4000),
app_owner varchar2(4000),
build_status varchar2(4000),
has_install_script boolean,
app_id_usage t_app_usage,
app_alias_usage t_app_usage );
Ejemplos de scripts de instalación
Usando el espacio de trabajo PRUEBAS, en la instancia de desarrollo, genera un archivo de exportación de la aplicación 525 y la guarda como f525.sql. Todos los ejemplos a continuación asumen que está conectado a SQL*Plus.
En el primer ejemplo, vamos a exportar la aplicación sin ninguna modificación. Lo vamos a regresar al espacio de trabajo PRUEBAS con el mismo número de aplicación. Para hacerlo, simplemente ejecutamos desde SQL*Plus:
@f525.sql
En el segundo ejemplo, a continuación, igual vamos a instalar la aplicación en el espacio de trabajo PRUEBAS, pero la vamos a instalar con el número de aplicación 10525, para esto ejecutamos:
begin
apex_application_install.set_application_id(10525);
apex_application_install.generate_offset;
apex_application_install.set_application_alias( ‘F’ || apex_application_install.get_application_id );
end;
/
@525.sql
El siguiente ejemplo, instala la aplicación, asignando de manera automática un nuevo número de aplicación, de nuevo la instalación se hará sobre el espacio de trabajo PRUEBAS.
begin
apex_application_install.generate_application_id;
apex_application_install.generate_offset;
apex_application_install.set_application_alias( ‘F’ || apex_application_install.get_application_id );
end;
/
@f525.sql
En el próximo ejemplo, vamos a cambiar el esquema de instalación (DATA), así como el espacio de trabajo (PROD), adicionalmente, definiremos el alias de la aplicación como DEMO_APP:
begin
apex_application_install.set_workspace(‘PROD’);
apex_application_install.generate_offset;
apex_application_install.set_schema( ‘DATA’ );
apex_application_install.set_application_alias( ‘DEMO_APP’ );
end;
/
@f525.sql
Finalmente, vamos a hacer la instalación en una instancia de pruebas, en tres diferentes espacios de trabajo:
begin
apex_application_install.set_workspace(‘TRAINING1’);
apex_application_install.generate_application_id;
apex_application_install.generate_offset;
apex_application_install.set_schema( ‘STUDENT1’ );
apex_application_install.set_application_alias( ‘F’ || apex_application_install.get_application_id );
end;
/
@f525.sql
begin
apex_application_install.set_workspace(‘TRAINING2’);
apex_application_install.generate_application_id;
apex_application_install.generate_offset;
apex_application_install.set_schema( ‘STUDENT2’ );
apex_application_install.set_application_alias( ‘F’ || apex_application_install.get_application_id );
end;
/
@f525.sql
begin
apex_application_install.set_workspace(‘TRAINING3’);
apex_application_install.generate_application_id;
apex_application_install.generate_offset;
apex_application_install.set_schema( ‘STUDENT3’ );
apex_application_install.set_application_alias( ‘F’ || apex_application_install.get_application_id );
end;
/
@f525.sql
En la siguiente entrega, veremos el detalle de los procedimientos y funciones que componen este paquete.