EgTaskEditor
A la hora de realizar un tratamiento de las tareas y procesos lanzados en un centro, egeasy nos proporciona una herramienta llamada egTaskEditor. Con esta herramienta podremos ver y modificar la información relativa a cualquier proceso o tarea simplemente introduciendo su RRC y DRC.
A lo largo de este artículo, iremos explicando la información que podremos visualizar bajo esta aplicación, así como las operaciones que nos va a permitir realizar sobre dicha información.
Contenido
- 1 Configurar un centro en egTaskEditor
- 2 Abrir un proceso o tarea
- 3 Información general de una tarea
- 4 Pestañas
- 4.1 Pestaña "Threads"
- 4.1.1 Visualizar el código de un método
- 4.1.2 Estado del hilo de ejecución de un método. ¿Cómo cambiarlo?
- 4.1.3 ¿Qué es el Instruction Pointer? ¿Cómo puedo modificarlo?
- 4.1.4 Editar el código de ejecución
- 4.1.5 Añadir o modificar variables en un método
- 4.1.6 Añadir o modificar los parámetros de un thread
- 4.2 Pestaña "Snapshot"
- 4.3 Pestaña "Propiedades"
- 4.4 Pestaña "Campos"
- 4.5 Pestaña "Avisos y caducidades"
- 4.1 Pestaña "Threads"
Configurar un centro en egTaskEditor
Para que egTaskEditor pueda mostrar la información de tareas y procesos, debe conectarse a la base de datos que utiliza el centro que estemos tratando, además de especificar la ruta del diccionario y el directorio de registros. Para introducir esta información, nos saldrá la siguiente ventana al ejecutar la aplicación:
No obstante, cuando utilizamos egTaskEditor frecuentemente, resulta tedioso estar introduciendo una y otra vez los datos de la base de datos, etc. para entrar en la aplicación. Para evitar este problema, existe un fichero .ini, llamado egTaskEditor.ini, donde podemos introducir los datos de todos los centros que queramos, de manera que egTaskEditor cargará dicho fichero en la ventana de inicio y mediante un desplegable se mostrarán todos aquellos centros que estén configurados con su correspondiente información:
Abrir un proceso o tarea
Una vez hemos entrado en la aplicación, la interfaz que nos aparecerá de entrada será la siguiente:
En la zona marcada en rojo, podemos ver los diferentes campos para introducir la información que nos permitirá abrir un proceso o tarea. Los dos campos de la izquierda (UEL y DRC) nos permitirán abrir una tarea introduciendo su RRC y DRC (aunque el campo se llame UEL, introduciremos el RRC), picando posteriormente en el botón Cargar. Otra opción es abrir una tarea o proceso en función de su maintarget. El maintarget es en realidad la referencia del objeto, que estará incluída en la definición del contenedor del maintarget. En caso de no tener una referencia específica, será el nombre del objeto. Por tanto, accediendo con la herramienta egSQL a la tabla TS$TASKS podremos obtener el maintarget de una tarea o proceso concreto. Una vez obtenemos el maintarget, lo introduciremos en el campo Nº de expediente y picaremos en el botón Cargar. La información introducida en este campo debe coincidir exactamente con el valor de maintarget obtenido de TS$TASKS (es sensible a mayúsculas y minúsculas).
En caso de abrir un proceso, en el panel izquierdo aparecerá el nombre del proceso con un desplegable que hace referencia a las tareas que que se han ejecutado o se están ejecutando. En caso de abrir una tarea aparecerá únicamente la tarea:
Información general de una tarea
Al cargar una tarea, la información de ésta se cargará en el panel principal de la aplicación. En la parte superior de este panel, podremos ver el título de la tarea seleccionada, así como los siguientes campos:
- UEL/DRC: informa del RRC y DRC de la tarea seleccionada.
- Status: muestra el estado actual de la tarea seleccionada (Not Working, Working, Aborted, Finished).
- Target: información del target de la tarea (RRC@DRC@Definición del target).
- Source: informa de la habitación donde ha sido lanzada la tarea (RRC@DRC@Nombre de la habitación).
Los campos Status, Target o Source pueden ser modificados, de tal manera que realizaremos el cambio y picaremos en el botón Modificar. Posteriormente, picaremos en el botón Guardar de la parte inferior derecha de la ventana. En general, siempre que queramos cambiar información de la tarea, habrá un botón modificar al lado del campo modificado, y posteriormente tendremos que guardar esos cambios.
A continuación, iremos explicando la información mostrada de una tarea o proceso en función de las pestañas que aparecen en el panel principal de la aplicación.
Pestañas
Pestaña "Threads"
Cuando abrimos un proceso, la primera pestaña que nos encontramos es la pestaña Threads. Como su propio nombre indica, en esta pestaña se mostrarán los hilos de aquellos métodos que un proceso haya ejecutado o esté ejecutando. Por tanto, si seleccionamos una tarea, mirar esta pestaña no tendrá sentido ya que no muestra información sobre tareas, sólo sobre procesos. En la siguiente imagen podremos ver como el proceso Solicitud de beca tiene dos hilos en su ejecución:
Como hemos visto, en el panel de tareas está seleccionado el proceso Solicitud de beca. En el panel de métodos podremos ver los métodos RegistrarEntrada y FirmarRequerimiento. En este panel se va a mostrar el árbol de todos aquellos métodos que hayan sido ejecutados por el proceso.
NOTA: Si seleccionamos una tarea, en el panel de métodos no aparecerá nada, aunque la tarea ejecute código de método en sus eventos.
Si un método es invocado por otro método, éste aparecerá con un mayor nivel de identado, como podemos ver con el método FirmarRequerimiento. Si éste a su vez invocara a otro método, aparecería con otro nivel más de identado, formando un árbol de ejecución de métodos más extenso.
Ahora bien, ¿cómo vemos el código que se ha ejecutado de un método concreto?
Visualizar el código de un método
Para visualizar el código de un método simplemente tendremos que seleccionar el método que nos interese en el panel de métodos, cuyo código será mostrado en la pestaña Método:
Al realizar esta operación, además se mostrará otra información de gran importancia referente al hilo de ejecución de ese método, como por ejemplo, el estado del hilo o el IP (puntero que apunta a la siguiente instrucción a ejecutar).
Estado del hilo de ejecución de un método. ¿Cómo cambiarlo?
Cuando seleccionamos un método y se muestra su código, en la parte inferior del panel principal podemos ver un campo desplegable llamado Estado. En él se informará del estado actual del hilo de ejecución de dicho método. Si abrimos el desplegable podemos ver el conjunto de estados que puede adquirir un método. Las características de cada estado son las siguientes:
- Active:
- Waiting:
- ActiveSuspended:
- WaitingSuspended:
- Terminated:
- Aborted:
Si quisiéramos cambiar el estado de un hilo de ejecución, abriremos el desplegable y seleccionaremos el nuevo estado que queramos asignar. Para que los cambios se guarden, primero debemos picar en el botón Modificar y luego en Guardar:
¿Qué es el Instruction Pointer? ¿Cómo puedo modificarlo?
El Instruction Pointer es un puntero que apunta a la siguiente instrucción que se va a ejecutar en el método cuyo valor se muestra en la parte inferior izquierda del panel principal. Además, podremos verlo gráficamente en el código, en la línea que indique el campo IP. Éste se representa con el símbolo =>:
Cuando seleccionamos un método y no encontramos el IP, es porque el método habrá finalizado y, aunque no lo veamos gráficamente en el código, el puntero tendrá un valor de n líneas de método, que es la forma de indicar que el método ha terminado.
¿Y cómo podemos modificar el IP de un método?
Para modificar el IP, simplemente modicaremos el campo IP por el nuevo valor que queramos que adquiera. Picaremos en el botón Modificar que se encuentra justo a la derecha del campo IP, y como siempre, guardaremos el cambio haciendo click en el botón Guardar.
Editar el código de ejecución
Otra operación que nos permite realizar egTaskEditor es la edición del código que está ejecutando el hilo del método seleccionado. Este código es una copia del código original del método que se encuentra en el fichero .nmt, por lo que cualquier modificación sólo afectará a la ejecución del hilo y no al fichero .nmt. Esta operación puede resultar muy útil cuando se realizan modificaciones en los ficheros .nmt, ya que los cambios que realicemos no modificarán las copias de código que realizan los métodos en ejecución. Por tanto, si queremos que los métodos que ya estén en ejecución también adquieran las nuevas modificaciones añadidas en los ficheros .nmt, podremos hacerlo directamente desde esta aplicación.
Para modificar el código, picaremos en el botón Editar código.... A continuación, se abrirá una nueva ventana con el código en ejecución. Una vez realizadas las modificaciones, picaremos en el botón Aceptar:
Finalmente, picaremos en el botón Guardar para almacenar los cambios.
Añadir o modificar variables en un método
Como sabemos, en la elaboración de un método siempre se declaran variables de diferente tipo. egTaskEditor también nos va a permitir modificar estas variables, o añadir otras nuevas. Para ello, accederemos a la pestaña Variables/Parámetros:
Para modificar una variable de método, haremos doble click sobre la variable que queramos modificar. Veremos que en los campos Nombre y Valor aparecerán los datos de dicha variable. Modificaremos el campo Nombre o Valor en función de lo que necesitemos. Para terminar picaremos en el botón Modificar y como siempre, guardaremos el cambio picando en Guardar:
Para añadir una nueva variable, picaremos en el botón Añadir.... Nos aparecerá la siguiente ventana donde podremos introducir el nombre de la nueva variable, el tipo de datos de la variable, e inicializarla con algún valor si es necesario (es posible que la variable adquiera algún valor durante la ejecución del hilo y no sea necesario inicializarla con algún valor):
Añadir o modificar los parámetros de un thread
Como ya sabemos, cuando ejecutamos un método se puede dar el caso de que su invocación requiera el paso de ciertos parámetros. Dichos parámetros podremos gestionarlos con el egTaskEditor al igual que lo hacemos con la variables. Para ello accederemos a la misma pestaña Variables/Parámetros, pero esta vez nos fijaremos en la parte derecha del panel de la pestaña:
Tanto la operación de modificar como la de añadir un parámetro nuevo se realizan exactamente igual que las mismas operaciones explicadas para el caso de las variables. Ver
Para mantener los cambios realizados, recordaremos siempre picar en el botón Guardar.