Cómo compilar paso a paso

De Egeasy
Revisión del 14:03 11 feb 2009 de Irodriguez (Discusión | contribuciones) (Configuración del compilador en EditPlus)

Saltar a: navegación, buscar

Cuando un centro es modificado, bien sea mediante cambios en el diccionario o en el modelo, es necesario realizar una serie de operaciones para que las variaciones realizadas se vean reflejadas en la aplicación egExplorer. Operaciones como compilar, actualizar el centro, etc. En este artículo abordaremos aquellos aspectos que influyan en dichas modificaciones, así como los pasos a seguir en función de qué elementos o ficheros del modelo se modifiquen. Para ello, es necesario entender los ficheros que intervienen en el funcionamiento de un centro, y cómo afectan a éste.

Configuración del compilador en EditPlus

A la hora de programar en ODL, es necesario configurar el compilador (egCompiler) en algún editor de programación. En este caso, el editor utilizado es EditPlus. Sin más preámbulos, veamos cómo configurar dicho compilador para utilizarlo en el editor:

  • Primer paso: ir a Tools -> Preferences
Tools -> Preferences
  • Segundo paso: dentro de Preferences, ir a la etiqueta User tools
Entrar en User Tools
  • Tercer paso: una vez en User tools, hay varias opciones y campos que debemos configurar. En primer lugar, vemos que existen varios grupos. Seleccionamos uno de ellos, y para cambiar el nombre haremos click en Group Name.... Estos grupos sirven para etiquetar conjuntos de herramientas que definamos en EditPlus, como por ejemplo, en nuestro caso, la configuración del compilador.
Editar el nombre de un grupo
  • Cuarto paso: ahora, tenemos que crear una herramienta. Para ellos seleccionamos hacemos click en Add Tool >> y en el desplegable que aparece, seleccionaremos Program para indicar que vamos a configurar una aplicación.
Añadimos una herramienta, en este caso, nuestro compilador
  • Quinto paso: vemos que hay ciertos campos como Menu text, Command, Argument o Initial directory además de ciertas opciones activables.
Introducir datos necesarios para la ejecución del compilador
En Menu text pondremos el nombre que aparecerá en el menú de herramientas para ejecutar el compilador.

En Command introduciremos la ruta en donde está almacenado el ejecutable del egCompiler.

En el campo Argument podremos especificar los argumentos que acepta el egCompiler. Como parámetro de entrada tenemos que incluir el fichero de definiciones .npc. Además, existen unos parámetros adicionales que permiten configurar el comportamiento del compilador. Por ejemplo:
  • /O: --> Indicaremos el diccionario previo a la compilación para compararlo con el nuevo diccionario.
  • /N: --> Indicaremos el directorio de definiciones.
  • /D: --> Indicaremos el directorio destino donde queramos que se generen el diccionario(.ndc) y el modelo(.nmc).
  • /S: --> Su inclusión indica que sólamente se genere el diccionario y no el modelo.
NOTA: si alguna ruta contiene espacios en blanco, debemos acotar dicha ruta entre comillas dobles.
En nuestro caso, añadiremos el parámetro /O: para que al compilar compare el diccionario previo con el nuevo creado, de manera que pueda detectar los cambios.

A continuación, añadiremos en el campo Initial directory el directorio donde se encuentra el fichero .npc (si no indicamos el directorio destino con el parámetro /D: el compilador almacenará el diccionario y el modelo en este directorio).

Finalmente, activaremos las casillas Capture output para ver los mensajes de compilación en el propio EditPlus (en vez de en una ventana) y Save open files para que al compilar se guarden los ficheros abiertos del proyecto en cuestión. Los ficheros abiertos que no pertenezcan al proyecto no se guardarán.

Ahora veremos que la opción Compilar estará disponible en el menú Tools o Herramientas.

El compilador ya se puede utilizar desde EditPlus

Compilando...

Una vez configurado el editor para utilizar el egCompiler, ya estamos en disposición de realizar la compilación de nuestro modelo.

Cuando compilemos, el compilador sólo tendrá en cuenta aquellos ficheros que estén asociados a alguna definición en el fichero .npc. Este fichero es editado manualmente por el programador, de forma que si se crean nuevas definiciones o ficheros de definiciones nuevas, deberán ser incluídos para que el compilador compile los nuevos ficheros. Al finalizar la compilación, se generará un diccionario(.ndc) y un modelo(.nmc).

Ahora bien, en función de las modificaciones realizadas en el código, se podrán liberar o generar definiciones a las que se libere o asigne un DRC en la base de datos. Una tercera opción es variar el nombre de una definición, de forma que es posible que nos interese asignar a la nueva definición el DRC de la que vamos a liberar para conservar los valores creados en la definición anterior. Veamos algunos ejemplos gráficos:
  • En primer lugar, vamos a generar por primera vez nuestro modelo, de forma que se generará un DRC para todas las definiciones. Podemos ir generando las nuevas definiciones seleccionando de una en una con el botón Generar, o bien utilizar el botón Generar todos.

    Nuestro sistema de información está constuído por dos definiciones de tipo (Cliente y Expediente) con sus respectivas colecciones (Clientes->Contenido) y Expedientes->Contenido). Además también hay definida una habitación Mi organización para ubicar dichas colecciones y una definición de rol para acceder a los recursos definidos:

Generamos los DRC de las definiciones por primera vez
  • Ahora, hemos decidido eliminar ciertas definiciones, de forma que al compilar, se comparará el diccionario creado en el paso anterior con el nuevo, y detectará aquellas definiciones que ya no se encuentren en el código. Al igual que al generar DRCs, existe un botón para ir liberando uno a uno cada DRC mediante el botón Liberar o bien liberarlas todas automáticamente, sin tener que seleccionar ninguna, con el botón Liberar todas:
Eliminamos la definición de tipo Expediente, así como todo aquello relacionado con dicha definición (colección, ubicación y permisos)
  • La tercera posibilidad que nos podemos encontrar es la asignación de un DRC, correspondiente a una definición que vamos a eliminar, a una definición nueva que vamos a generar. En este caso debemos tener en cuenta las posibilidades que se nos pueden presentar, pues pueden ser varias.

    Normalmente, esta operación se suele realizar al cambiar el nombre de alguna definición, de forma que nos puede interesar asignar el DRC de la definición anterior a la nueva definición para que los valores generados anteriormente al cambio de nombre se mantengan en la nueva definición.

    Otra posibilidad es, por ejemplo, cambiar el tipo de un campo. En este caso, se podrá asignar el DRC del campo previo al nuevo campo, pero las consecuencias de dicho cambio tendrá que valorarlas el programador, pues puede no conseguirse el efecto deseado.

    Un nuevo caso, en el que vamos a basar nuestro ejemplo, puede ser el cambio de nombre de un formulario, junto con el cambio de nombre de un campo incluído en dicho formulario. En cuanto a los formularios hay que tener en cuenta que deben tener el mismo número de campos, además, los campos deben tener el mismo nombre. Vayamos viendo los pasos a realizar uno a uno, de manera que los vayamos comentando:

Relación de las definiciones a liberar o a generar
Vemos que el compilador ha detectado definiciones que, o bien pueden ser liberadas, o bien pueden ser generadas. Pero nuestra intención es asignar el DRC del formulario Datos generales al formulario Datos generales del cliente. Además, ha detectado que el campo DNI ha cambiado de nombre, detectando un nuevo campo denominado NIF así como el cambio de nombre de la columna DNI de la colección Clientes por NIF:
Primero seleccionamos la definición del DRC que vamos a asignar
Seleccionamos la definición nueva, indicando que el DRC será asignado a esa definición
Y generamos la asignación con el botón Asignar
Ya tenemos realizada la asignación de la columna que ha cambiado de nombre en la colección Clientes. Ahora vamos a asignar el formulario, pero para ello, hay que tener en cuenta que un campo ha cambiado de nombre, y por tanto deberemos asignar dicho DRC antes de hacerlo con el formulario:
Seleccionamos el campo que contiene el DRC
Seleccionamos el campo nuevo
Y generamos la asignación, al igual que en el caso anterior
Una vez tratado el cambio que ha cambiado de nombre, ya no hay restricciones para asignar el DRC del formulario Datos generales al formulario Datos generales del cliente:
Seleccionamos el formulario que contiene el DRC
Seleccionamos el formulario nuevo
Y realizamos la asignación
¿Y qué pasa si introduzco, elimino o modifico un atributo en alguna definición? Los atributos, no tienen asignado un DRC, por lo que cualquier edición que hagamos sobre ellos, el compilador no detectará posibles modificaciones en los DRC del sistema.

Conceptos Básicos

Para que el desarrollador se familiarice con un proyecto en egeasy comenzaremos explicando los diferentes tipos de archivos que se puede encontrar. A continuación mostraremos una referencia de los tipos de archivos que usaremos en EGE:

  • Dictionary.Ndc: contiene las relaciones entre entidades, tareas y procesos de nuestro sistema de información, es único.
  • proyecto.Nmc: contiene la implementación del sistema de información, es único.
  • Escritos.Ndf: archivos de código fuente que se usaran para generar el diccionario.
  • Gestión de modificación.Nmt: archivos de código interpretado en los que se definen los métodos.
  • MP-Inf 001.rtf: archivos plantilla para los documentos generados.

A continuación pasaremos a explicar la estructura de un proyecto en EGE:

Archivo:Figura 18.JPG
Proyecto egeasy

Source: están todos los archivos *.ndf de código fuente que son necesarios para generar el diccionario.

  • Habitaciones: tantas carpetas como habitaciones que tendrán el código fuente que definan relacionados con dicha habitación.
  • Tareas: tantas carpetas como habitaciones
    • Habitaciones: que tendrán el código fuente que definan las tareas relacionadas a las habitaciones.

Data: están todos los archivos .csv que guardan los datos estáticos de nuestro sistema de información.

  • Métodos: están todos los archivos .mnt y tiene tantas carpetas como habitaciones
    • Habitaciones: con los archivos .mnt en los que se definen los métodos de las habitaciones.

Instalation: archivos correspondientes a la instalación del centro (no para la creación).
Template documents: contiene los archivos .rtf que definen los documentos que se realizan en nuestro sistema de información.

  • Habitaciones: para organizar los .rtf

Template prints: archivos que configurarán la vista con la que se mostrarán los formularios. Si no se tocan se mostrarán por defecto.
Template views: configurarán la vista de los elementos del Egexplorer. Si no se tocan se mostrarán por defecto.

Tarea A: Configurando Editplus

El programa que usamos para la edición de código fuente es el Editplus, es un editor de texto con un par de funciones más. La interfaz que nos ofrece el programa consta de varias partes:

  • Columna vertical izquierda: navegador del sistema de fichero con el contenido de la carpeta por la que estemos navegando.
  • Pequeña consola : situada en la parte inferior sirve para mostrar los resultados de compilación o de las búsquedas de texto.
  • Barra de herramientas : que contiene todos las herramientas, la búsqueda en ficheros bastante útil.
  • Ventana central : visor de archivos.

A continuación nos centraremos en configurar el Editplus para poder compilar:

  • Accedemos a Tools --> Configure User Tools
Archivo:Figura 20.JPG
Configuración de Editplus
  • Menú text: nombre de la herramienta.
    Ejemplo: Generar Diccionario
  • Command: ruta donde esta el compilador.
    Ejemplo: S:\Entornos 2002\Banzai\Aplicaciones\egCompiler\egCompiler.exe
  • Argument: argumentos necesarios para el compilador, el nombre del proyecto y la ruta donde poner el diccionario.
    Ejemplo: Maxorata.npc /O:"I:\Desarrollo\xIvan\Maxorata\Dictionary.ndc"
  • Initial directory: ruta del proyecto.
    Ejemplo:I:\Desarrollo\xIvan\Maxorata\

Tarea B: Compilar

A continuación vamos a explicar todos los pasos que se han de seguir para compilar un proyecto de egeasy, para ello usaremos el centro Maxorata y el modelo MaxorataMod:

  • Conseguir el diccionario que vamos a compilar y lo copiamos en nuestra carpeta donde pondremos el proyecto I:\Desarrollo\xIvan\Maxorata
  • I:\Desarrollo\Diccionarios en Explotación\Maxorata :sirve de carpetas para hacer copias de seguridad de los diccionarios en elaboración (ya que no se pueden subir al servidor de control de versiones), todas las personas que están desarrollando para este modelo lo pueden coger. A esta carpeta solo se suben los diccionarios que están correctos y siempre se tiene que guardar el archivo que ya está, renombrandolo a .old
  • Para generar el diccionario Tools --> User Tool Groups --> Generar Diccionario
EGcompiler genera 2 archivos: el diccionario (Dictionary.Ndc) y el modelo de nuestro centro (Maxorata.Nmc). En el caso que hayas creado nuevas unidades en el sistema de información saldrá una ventana como la siguiente en donde deberemos seleccionar que unidades generar, cuales liberar (borrar) o hacer coincidir alguna antigua con una nueva.
Archivo:Figura 21.JPG
Proyecto egeasy
Está parte es bastante compleja ya que tienes que tener muy claro lo que has hecho o han hecho tus compañeros.
  • Debemos copiar, de la carpeta raíz donde está el proyecto, el diccionario y copiarlo a mano en el servidor donde está alojado realmente tu centro.
La ruta será: S:\Entornos 2002\Banzai\Modelos\MaxorataMod
OJO: si copiamos el diccionario en otra carpeta nos machacariamos el diccionario de un compañero
  • Una vez copiado el diccionario, abrimos egAdmin:

a.Paramos el centro b.Actualizamos nuestro modelo Herramientas --> Actualizar --> Ruta I:\Desarrollo\xIvan\Maxorata y seleccionamos el archivo maxorata.Nmc. c.Comprobamos nuestro modelo Herramientas --> Comprobar d.Arrancamos el centro

  • Trucos:

Para evitar estar actualizando el modelo continuamente nos bastará con copiar el diccionario generado al compilar en la carpeta del servidor y reiniciar el centro. Esto es válido para los siguientes casos:

  • Modificar métodos
  • Modificar plantillas de documentos (*.rtf)
  • Modificar propiedades de unidades (campos o atributos)
  • Modificar sentencias SQL

Tarea C: Actualizar

Tarea D: Instalar

== Tarea E: Crear usuarios ==