Hola fans de Oracle APEX! con este post vamos a empezar a conocer las nuevas características de Oracle APEX 23.2!

En esta oportunidad vamos a conocer cómo podemos crear copias de trabajo! Ahora bien, que serían las copias de trabajo?

Con las Copias de Trabajo podemos hacer una copia de una aplicación para corregir errores o agregar funciones, y luego fusionar selectivamente esos cambios de vuelta a la aplicación original. También podemos actualizar cambios desde la aplicación principal a la copia de trabajo. Durante la fusión o actualización, podemos comparar la copia de trabajo con la aplicación principal y elegir qué cambios incorporar. Podemos crear varias copias de trabajo para que diferentes desarrolladores contribuyan y fusionen cambios en una única aplicación.

Cuando comparamos una copia de trabajo con la aplicación principal, se exporta un archivo YAML de ambas aplicaciones y se genera una suma de verificación para cada archivo. La copia de trabajo se exporta con identificadores originales para asegurar que sean consistentes. Luego, se comparan las sumas de verificación para identificar las diferencias.

En el proceso de fusión, seleccionamos páginas y componentes compartidos de la copia de trabajo para importarlos a la aplicación principal. Si la página o componente compartido ya existe, se reemplaza. Es esencial que revisemos los cambios individuales en cualquier página o componente marcado como «Cambiado» entre la copia de trabajo y la aplicación principal. Esto garantiza que solo los cambios del desarrollador estén presentes entre las dos versiones. El visor de diferencias integrado facilita esta revisión para asegurar una fusión adecuada.

Para entender como funcionan las Copias de Trabajo vamos a realizar un ejemplo.

Supongamos que tenemos una aplicación que estamos desarrollando, la cual tenemos a dos desarrolladores trabajando en la misma, Mely y Nico.

Y tenemos un líder de proyecto que verifica el progreso de la aplicación. Supongamos que ese líder crea un ticket en el módulo desarrollo de equipos, primero para Mely, para que realice las siguientes tareas:

  1. Crear la página de Empleados y su respectivo formulario para crear, editar y eliminar empleados, a partir de la tabla EMP.
  2. Crear un gráfico en la página de inicio de barras vertical que muestre la cantidad de empleados por departamento.

Entonces Mely, que es desarrolladora de la aplicación «DEMO CMO» va a realizar una Copia de Trabajo y la denominará «DEMOCMO 0001» según el número de ticket en el que ella está trabajando. Para crear una copia de trabajo de una aplicación, simplemente debemos navegar hacia la página de inicio de la aplicación y, en la barra lateral de Tareas, hacemos clic en  Crear Copia de Trabajo. Ingresamos un nombre para la copia de trabajo y una breve descripción y luego hacemos clic en el botón Crear Copia de Trabajo.

Ahora podemos ver que se muestra al lado del nombre de la aplicación una insignia resaltado en amarillo como DEMOCMO 0001.

Después de realizar las actualizaciones solicitadas de la aplicación en su copia de trabajo, Mely ahora fusionará estos cambios en la aplicación principal.  Para ello, en el menú desplegable Copia de Trabajo, seleccionamos Fusionar en Principal.

El Creador de Aplicaciones exporta la aplicación principal y la copia de trabajo y compara las dos versiones. Aparece el cuadro de diálogo Fusionar <nombre del proyecto> en Principal, que resume lo que se ha cambiado, agregado o falta. Para ver una diferencia de los cambios, hacemos clic en el  icono Comparar Cambios  de cualquier componente o página.

Aparece la ventana de Ver Diferencias.

En este ejemplo Mely agregó la página del Empleado y su formulario de edición de datos. Además agregó un gráfico en la página de Inicio de la Aplicación.

Hacemos clic en el botón Siguiente.

El cuadro de diálogo Fusionar <nombre del proyecto> en Principal incluye dos opciones:

  • Realice una copia de seguridad de la aplicación de destino primero
  • Suprimir copia de trabajo tras fusión

En esta oportunidad Mely quiere eliminar la copia de trabajo después de la fusión porque no la volverá a necesitar. Después de elegir las opciones apropiadas, Mely hará clic en el botón Confirmar fusión. Los cambios de Mely ahora son parte de la aplicación principal.

Se ha fusionado correctamente las tareas de Mely en la aplicación Principal.

Luego, supongamos que a Nico, el líder del proyecto le asigna el Ticket número 0002, en el cual debe realizar las siguientes tareas:

  1. Cambiar el título del gráfico de barras de la página de inicio como: «Cantidad de Empleados por Departamento«.
  2. Cambiar el color de las barras del gráfico por un color violeta.

Entonces Nico, que es desarrollador de la aplicación «DEMO CMO» va a realizar una Copia de Trabajo y la denominará «DEMOCMO 0002» según el número de ticket en el que él está trabajando.

Inmediatamente, el líder del proyecto le asigna otro ticket a Mely en este caso el ticket «DEMOCMO 0003«, el cual debe realizar modificaciones en la apariencia del gráfico de la página de inicio y personalizar el informe interactivo de Empleados. Mely comenzó a trabajar al mismo tiempo que Nico en sus tareas y le puso el nombre de Copia de Trabajo  DEMOCMO 0003. Dado que Nico terminó y se fusionó a la aplicación Principal antes que ella, Mely quiere incorporar los cambios de Nico (fusionados en la aplicación principal) a su copia de trabajo. Quiere revisar las diferencias y seleccionar los cambios para incorporarlos a su copia de trabajo.

Tengamos en cuenta que Nico ya fusionó su copia de trabajo a la aplicación Principal.

La acción de Actualizar una Copia de Trabajo exporta los cambios de la aplicación principal a la copia de trabajo. Para actualizar una copia de trabajo con cambios desde Principal, en la página de inicio de la aplicación «DEMOCMO 0003«, debajo de la barra lateral de Tareas de copia de trabajo, hacemos clic en Refrescar copia de trabajo. El Creador de Aplicaciones exporta los cambios de la aplicación principal a la copia de trabajo y compara las dos versiones.

Aparece el cuadro de diálogo Refrescar <nombre del proyecto> a partir de Principal, que resume lo que se ha cambiado, agregado o falta.

Mely puede elegir selectivamente los cambios que se incluirán en su copia de trabajo y hacer clic en Siguiente.

Finalmente, hará clic en Confirmar Refrescamiento.

Ahora, Mely revisará su ticket asignado, realizará las actualizaciones en la copia de trabajo de su aplicación «DEMOCMO 0003» y luego seleccionará un subconjunto de sus cambios para fusionarlos nuevamente con la aplicación principal. Dado que uno de los cambios de último minuto que el líder del proyecto le pidió que hiciera aún no estaba listo para fusionarse, Mely no eliminará la copia de trabajo después de la fusión.

Luego lo que ella hará será cambiar el nombre de la copia de trabajo a DEMOCMO – Mely WIP (Work In Progress). 🙂

Para cambiar el nombre de una copia de trabajo, desde la aplicación principal, debemos navegar hasta Copias de Trabajo y luego seleccionar el nombre de la copia de trabajo, por ejemplo, en este caso: «DEMOCMO 0003 – 196«. Luego seleccionamos  Ver detalles de copia de trabajo.

Aquí ingresamos un nombre para la copia de trabajo, una breve descripción y hacemos clic en Aplicar Cambios.

De esta forma tanto los cambios de Mely, como de Nico están fusionados en la Aplicación Principal. Teniendo Mely su copia de trabajo para seguir trabajando en los requerimientos faltantes.

Conclusión

La verdad muy buena esta característica que nos permite controlar mejor la colaboración de cada desarrollador sin que todos estén trabajando en la aplicación principal. Combinando las copias de trabajo con el Desarrollo de Equipos es la mejor forma de mantener limpio y claro el proceso de desarrollo de la aplicación cuando hay un grupo de desarrolladores trabajando en una misma aplicación.