En este artículo te mostraré cómo podemos utilizar las Opciones de Creación para habilitar y deshabilitar fácilmente funcionalidades. Las Opciones de Creación se pueden utilizar en tres escenarios. El primer escenario es habilitar y deshabilitar funcionalidades durante una instalación. Por ejemplo, si tenemos configurado un SMTP en nuestro servidor o estamos implementando nuestra aplicación, es posible que deseemos habilitar la funcionalidad para enviar correos electrónicos. El segundo escenario consiste en ocultar funcionalidades incompletas en diferentes entornos. Si estamos trabajando en algunas funcionalidades que aún no están terminadas en el entorno de desarrollo, podemos asignar una opción de creación o el estado «exclude» para deshabilitarlas en otros entornos. El tercer escenario es determinar las consecuencias de eliminar una funcionalidad. Si tenemos una funcionalidad y no estamos seguro de que si la eliminamos podría causar problemas, entonces podemos asignar una opción de creación «exclude» solo para esa funcionalidad y ver cuál sería el impacto de eliminarla. Si todo funciona bien, podemos eliminar la funcionalidad de forma segura junto con los elementos asociados; de lo contrario, simplemente podemos cambiar la opción de creación o cambiarla a «include». Utilizamos las “Opciones de Creación” para mostrar de forma condicional una funcionalidad específica en una aplicación, en otras palabras, las opciones de creación son valores predefinidos que determinan si un componente está activado dentro de una aplicación. Las opciones de creación tienen dos valores posibles:
  • Incluir: es para habilitar un componente e incluirlo con la aplicación, es decir, si se especifica un atributo como “Incluir” el motor de Application Express lo considera en tiempo de ejecución.
  • Excluir: es para deshabilitar un componente y excluirlo de la aplicación, es decir, el motor de Application Express lo trata como si no existiera en la aplicación.
Podemos aplicar opciones de creación o de compilación a una página, componente, control de página o componente compartido en el Diseñador de Páginas. Una vez que se crea una opción de creación en Componentes Compartidos, podemos seleccionarla para una página, un componente (informe, gráfico o formulario), un control de página específico (botón, elemento, lista de valores) y otros componentes compartidos (ruta de navegación, lista o LOV). En el Diseñador de Páginas, seleccionamos la página, o el componente, o un control de página especifico o algún componente compartido y buscamos la sección “Configuración” -> Opción de Creación. Para esta demostración usaremos la aplicación de ejemplo “Sample Reporting” de la galería de aplicaciones de ejemplo de APEX:
Si ejecutamos la aplicación podemos ver todas las páginas en funcionamiento en la aplicación.
Como ejemplo vamos a agregar una opción de creación de tipo “Excluir” en la página 17, correspondiente a la Grilla Interactiva de Proyectos de la aplicación de ejemplo. Ingresamos a Componentes Compartidos de la Aplicación, en la sección Lógica de la Aplicación, seleccionamos “Opciones de Creación”.
Hacemos clic en el botón Crear e ingresamos los siguientes datos:
  • Aplicación: 211 Sample Reporting
  • Opción de Creación: Sample Reporting – Siguiente Versión (Introduzca un nombre descriptivo para esta opción de creación. Las opciones de creación son valores predefinidos que determinan si un componente está activado dentro de una aplicación.)
  • Estado: Excluir
  • Valor por defecto en la Exportación: – igual que el Estado Actual – (Seleccione si el estado de la opción de creación en la aplicación desplegada se debe mantener o se debe sobrescribir con el estado especificado cuando se cambia la versión de la aplicación. La selección de  para mantener el estado desplegado es útil si la aplicación soporta la configuración de la opción de creación (a través de la API APEX_UTIL.SET_BUILD_OPTION_STATUS) para activar o desactivar la opción de creación en la aplicación desplegada y allí donde desee respetar esa configuración después del cambio de versión.)
  • Comentarios: Mover a la siguiente Versión.
Hacemos clic en el botón “Crear Opción de Creación”.
Regresamos a nuestra aplicación y entramos al Diseñador de Páginas de la Página 17 “Interactive Grid”. En el panel de la derecha de propiedades, en la sección Configuración, seleccionamos en Opción de Creación: Sample Reporting – Siguiente Versión.
Guardamos los cambios. Por último, nos queda excluir la entrada al Menú de Navegación de nuestra aplicación, para ello vamos a componentes compartidos y seleccionamos en la sección de Navegación, el Menú de Navegación. Hacemos clic en el enlace “Navigation Menu” y luego hacemos clic en el icono del lapicito que corresponde a la entrada del menú “Interactive Grid”.
En la ficha Configuración, seleccionamos en Opción de Creación que sea “Sample Reporting -Siguiente Versión”.
Y aplicamos los cambios. Regresamos a la aplicación y la ejecutamos y podremos ver que el menú de Interactive Grid ya no está visible en la aplicación en ejecución y si colocamos en la URL el nombre de la página interactive-grid obtendremos un error ya que APEX no lo encuentra.
Eliminar Opciones de Creación  Eliminar una opción de compilación no elimina los componentes asociados. Antes de eliminar una opción de creación, debemos revisar los componentes asociados para determinar si los componentes deben eliminarse. Hacemos clic en Componentes Compartidos > Opciones de Creación > Clic en Sample Reporting – Siguiente Versión.
Dentro de la sección Componentes Asociados hacemos clic en el botón Eliminar Componentes.
Luego al hacer clic en el botón Eliminar Componentes aparece un mensaje de confirmación de eliminación: IMPORTANTE: Si suprimimos los componentes asociados, en este caso se eliminaría la página 17 y la entrada del menú de navegación asociada.
Luego de eliminar los componentes asociados podemos eliminar la opción de creación, haciendo clic en el botón Suprimir. Ver la utilización de las Opciones de Creación  Es un reporte que nos permite ver el uso de las opciones de creación que tenemos en nuestra aplicación. Ingresamos a Componentes Compartidos -> Opciones de Creación -> Uso, luego seleccionar la opción de creación y hacer clic en el botón Ir.
Exportar Opciones de Creación o Crear Estado de Opción
Exportar estado de opción de creación para activar o desactivar las opciones de compilación dentro de otro entorno. Podemos exportar opciones de creación o crear estado de opción en la página “Exportación de Componentes”. Por ejemplo, podemos usar esta función para implementar una aplicación de producción con una función oculta asociando los componentes de la función oculta con una opción de creación que tenga el estado EXCLUDE. Después de la implementación, podemos habilitar la función oculta al cambiar el estado de la opción de compilación a INCLUDE y luego exportar el estado de la opción de creación. Una vez que se aplica el Estado de las Opciones de Creación a la instancia de producción, aparece la nueva función. Para exportar opciones de compilación o crear estado de opción: Hacemos clic en Componentes Compartidos -> Desde la Lista de Tareas (lateral derecha) -> Clic en Exportar Componentes de Aplicación.
Hacemos clic en Estado de Opciones de Creación. Seleccionamos los componentes y hacemos clic en el botón de Agregar a Exportación.
Se agrega a los componentes a exportar:
Hacemos clic en el botón Siguiente. Definimos el formato de archivo si es DOS o UNIX y en el recuadro A partir de… (Especificamos un tiempo en minutos para volver atrás en la exportación. Esta opción nos permite volver en el tiempo en la aplicación, quizás para recuperar un objeto suprimido). Esta utilidad utiliza el paquete dbms_flashback. La asignación de registro de hora a SCN (Número de Cambio del Sistema) se refresca cada 5 minutos aproximadamente, por lo que tal vez tengamos que esperar ese espacio de tiempo para obtener la versión que estamos buscando. El tiempo que se mantiene la información de deshacer depende del parámetro de inicio undo_retention (3 horas por defecto), pero esto solo afecta al tamaño del tablespace de deshacer. Mientras que dos bases de datos pueden tener el mismo parámetro undo_retention, podemos volver atrás en el tiempo en la base de datos con menos transacciones, ya que las transacciones no están rellenando el tablespace de deshacer, forzando así el archivado de los datos más antiguos.) Hacemos clic en el botón Exportar Componente, y nos permite guardar un script sql del componente.
De este modo podemos nosotros condicionar los atributos o funcionalidades que queremos que se muestren en nuestra aplicación y llevar los componentes de un entorno a otro. Añadir Opciones de Creación en objetos de Soporte de la Aplicación También estando en la página de inicio de nuestra aplicación de ejemplo, podemos hacer clic en el icono de Objetos de Soporte y en la sección de Instalación hacer clic en “Opciones de Creación”:
Las opciones de creación de la aplicación se enumeran a continuación, junto con el valor actual de cada una de ellas. Podemos activar la casilla situada junto a una opción de creación para permitir a un usuario que instala la aplicación cambiar el valor como parte del proceso de instalación. El valor actual será el valor por defecto de cada opción de creación.
Aplicamos los cambios. De ese modo podemos ver que se muestra que hay una Opción de Creación en la sección de Instalación.
Para esta demostración exportamos la aplicación de ejemplo Sample Reports. Luego importamos la aplicación con el archivo sql generado en la exportación. En el proceso de importación, indicamos que en Actualizar Objetos de Soporte.
Hacemos clic en el botón Siguiente. Y es aquí en donde el usuario puede especificar si desea incluir o no las Opciones de Creación disponibles.
Hasta aquí esta demostración del uso y creación de las Opciones de Creación en Oracle APEX. ¡Espero haya sido de utilidad, será hasta la próxima!