Diferencia entre revisiones de «Cómo compilar paso a paso»

De Egeasy
Saltar a: navegación, buscar
Línea 118: Línea 118:
  
 
==¿Actualizamos el diccionario, el modelo o el centro?==
 
==¿Actualizamos el diccionario, el modelo o el centro?==
 +
asdasd

Revisión del 14:12 11 feb 2009

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.

¿Actualizamos el diccionario, el modelo o el centro?

asdasd