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.

Share This