Las primeras funciones y procedimientos del paquete APEX_APPLICATION_INSTALL, se trataron en la entrada anterior, en esta nueva entrada, continuaremos con un nuevo grupo de procedimientos y funciones de este paquete.
Función GET_KEEP_SESSIONS
Esta función averigua si las sesiones y el estado de la sesión se conservarán o eliminarán en las actualizaciones.
La sintaxis utilizada es:
function GET_KEEP_SESSIONS
RETURN BOOLEAN
Por ejemplo:
dbms_output.put_line (
case when apex_application_install.get_keep_sessions then ‘sessions will be kept’
else ‘sessions will be deleted’
end );
Función GET_NO_PROXY_DOMAINS
Utilice esta función para obtener el atributo No Proxy Domains de una aplicación que se va a importar.
La sintaxis utilizada es:
APEX_APPLICATION_INSTALL.GET_PROXY
RETURN VARCHAR2;
Por ejemplo:
declare
l_no_proxy_domains varchar2(255);
begin
l_no_proxy_domains := apex_application_install.get_no_proxy_domains;
end;
Función GET_OFFSET
Utilice esta función para obtener el valor de offset utilizado durante la importación de la aplicación.
La sintaxis utilizada es:
APEX_APPLICATION_INSTALL.GET_OFFSET
RETURN NUMBER;
Por ejemplo:
declare
l_offset number;
begin
l_offset := apex_application_install.get_offset;
end;
Función GET_PROXY
Utilice esta función para obtener el valor del atribute servidor proxy de una aplicación que se va a importar.
La sintaxis utilizada es:
APEX_APPLICATION_INSTALL.GET_PROXY
RETURN VARCHAR2;
Por ejemplo:
declare
l_proxy varchar2(255);
begin
l_proxy := apex_application_install.get_proxy;
end;
Función GET_REMOTE_SERVER_BASE_URL
Utilice esta función para obtener la propiedad URL base que se utilizará para un servidor remoto determinado durante la importación de la aplicación.
La sintaxis utilizada es:
APEX_APPLICATION_INSTALL.GET_REMOTE_SERVER_BASE_URL(
p_static_id IN VARCHAR2)
RETURN VARCHAR2;
En donde,
p_static_id, es el identificador estático para referenciar el objeto servidor remoto.
Por ejemplo:
declare
l_base_url varchar2(255);
begin
l_base_url := apex_application_install.get_remote_server_base_url( ‘MY_REMOTE_SERVER’ );
end;
Función GET_REMOTE_SERVER_HTTPS_HOST
Utilice esta función para obtener la propiedad de host HTTPS que se utilizará para un servidor remoto determinado durante la importación de la aplicación.
La sintaxis utilizada es:
APEX_APPLICATION_INSTALL.GET_REMOTE_SERVER_HTTPS_HOST(
p_static_id IN VARCHAR2)
RETURN VARCHAR2;
En donde,
p_static_id, es el identificador estático del objeto servidor remoto.
Por ejemplo:
declare
l_https_host varchar2(255);
begin
l_https_host := apex_application_install.get_remote_server_https_host( ‘MY_REMOTE_SERVER’ );
end;
Función GET_SCHEMA
Utilice esta función para obtener el esquema de análisis («owner») de la aplicación APEX.
La sintaxis utilizada es:
APEX_APPLICATION_INSTALL.GET_SCHEMA
RETURN VARCHAR2;
Por ejemplo:
declare
l_schema varchar2(30);
begin
l_schema := apex_application_install.get_schema;
end;
Función GET_WORKSPACE_ID
Utilice esta función para obtener el identificador del espacio de trabajo de la aplicación a ser importada.
La sintaxis utilizada es:
APEX_APPLICATION_INSTALL.GET_WORKSPACE_ID
RETURN NUMBER;
Por ejemplo:
declare
l_workspace_id number;
begin
l_workspace_id := apex_application_install.get_workspace_id;
end;
Procedimiento INSTALL
Utilice este procedimiento para instalar una aplicación. Utilice los procedimientos APEX_APPLICATION_INSTALL_INSTALL.SET% para configurar los parámetros de instalación.
La sintaxis utilizada es:
PROCEDURE INSTALL (
p_source IN apex_t_export_files default null,
p_overwrite_existing IN BOOLEAN default false );
En donde,
p_source, es el código fuente, una tabla (nombre, contenido) con un solo registro para las aplicaciones normales de Oracle APEX o varios registros para las aplicaciones que se dividieron al exportar.
Tenga en cuenta que no se admite pasar varias aplicaciones. Si es nulo (valor predeterminado), importa la fuente que se pasó previamente a GET_INFO.
Por ejemplo:
declare
l_source apex_t_export_files;
l_info apex_application_install.t_file_info;
begin
l_source := apex_t_export_files (
apex_t_export_file (
name => ‘f100.sql’,
contents => apex_web_service.make_rest_request (
p_url => ‘https://www.example.com/apps/f100.sql’,
p_http_method => ‘GET’ )));
apex_util.set_workspace(‘EXAMPLE’);
apex_application_install.generate_application_id;
apex_application_install.generate_offset;
apex_application_install.install (
p_source => l_source );
end;
Puede levantar una de las siguientes excepciones:
-
WWV_FLOW_IMP_PARSER.RUN_STMT_ERROR
: The source contains invalid statements. -
SECURITY_GROUP_ID_INVALID
: The current workspace conflicts with the install workspace. -
WWV_FLOW_API.FLOW_ID_RESERVED_FOR_OTHER_WORKSPACE
: The application ID isused in another workspace. -
WWV_FLOW_API.FLOW_ID_RANGE_RESERVED
: The application ID is reserved internal us. -
WWV_FLOW_API.FLOW_ID_OUT_OF_RANGE
: The application ID used for installing is not in a valid range. -
APPLICATION_ID_RESERVED
: The application ID is in use in the current workspace and p_overwrite_existing was set to false.
Procedimiento REMOVE_APPLICATION
Este procedimiento elimina una aplicación de un espacio de trabajo. Utilice los procedimientos APEX_APPLICATION_INSTALL.SET_% para configurar los parámetros de instalación.
La sintaxis utilizada es:
APEX_APPLICATION_INSTALL.REMOVE_APPLICATION(
p_application_id IN NUMBER);
Donde,
p_application_id, es el identificador de la aplicación a remover.
Por ejemplo:
begin
apex_application_install.set_workspace(‘EXAMPLE’);
apex_application_install.set_keep_sessions(false);
apex_application_install.remove_application(100);
end;
Puede levantar una excepción:
WWV_FLOW_API.DELETE_APP_IN_DIFFERENT_WORKSPACE
: The application is not in this workspace.WWV_FLOW_API.FLOW_NOT_DELETED
: The application was not deleted.WWV_FLOW.APP_NOT_FOUND_ERR
: The application ID was not found.
Procedimiento SET_APPLICATION_ALIAS
Este procedimiento establece el alias de la aplicación que se va a importar. Esto solo se usa si la aplicación que se va a importar tiene un alias especificado. Un alias de aplicación debe ser único dentro de un espacio de trabajo y se recomienda que sea único dentro de una instancia.
La sintaxis utilizada es:
APEX_APPLICATION_INSTALL.SET_APPLICATION_ALIAS(
p_application_alias IN VARCHAR2);
En donde,
p_application_alias, es el alias de la aplicación a importar. Es un identificador alfanumérico y no puede ser mayor de 255 caracteres, debe ser único dentro del espacio de trabajo e idealmente, único dentro de la instancia APEX.
Por ejemplo:
begin
apex_application_install.set_workspace(‘FRED_PROD’);
apex_application_install.generate_offset;
apex_application_install.set_schema( ‘FREDDY’ );
apex_application_install.set_application_alias( ‘FREDPROD_APP’ );
end;
Procedimiento SET_APPLICATION_ID
Utilice este procedimiento para establecer el ID de aplicación de la aplicación que se va a importar. El ID de la aplicación no debe existir en la instancia o, si existe, debe estar en el espacio de trabajo donde se importa la aplicación. Este número debe ser un entero positivo y no debe pertenecer al rango reservado de ID de aplicación de APEX.
La sintaxis utilizada es:
APEX_APPLICATION_INSTALL.SET_APPLICATION_ID (
p_application_id IN NUMBER);
En donde,
p_application_id, es el identificador de la aplicación a importar. El ID de la aplicación debe ser un número entero positivo y no puede estar en el rango reservado de ID de la aplicación (3000 – 8999). Debe ser menor a 3000 o mayor o igual a 9000.
Por ejemplo:
begin
apex_application_install.set_application_id( 702);
apex_application_install.generate_offset;
apex_application_install.set_application_alias( ‘F’ || apex_application_install.get_application_id );
end;
En la siguiente entrega finalizaremos con las funciones y procedimientos de este paquete.