Modelo de datos
Modelamiento de un Proceso
Proceso
- Es la unidad básica donde se almacena el modelamiento de un trámite
- Incluye toda la información del workflow del proceso
- Cada proceso corresponde a una fila en la tabla proceso
Tarea
- Corresponde a las diferentes etapas que se siguen para completar un trámite
- Son ejecutadas por algún usuario asignado
- La asignacion se puede definir como: ciclica, autoasignacion, manual o programada
- Esta compuesta por:
- Pasos (Ejecutados por usuarios)
- Eventos (Ejecutados en servidor automaticamente)
Paso
- Son las etapas que el usuario debe ejecutar para completar una tarea
- Cada paso tiene asignado un formulario
- Modo edición: El usuario debe ingresar input en el formulario
- Modo visualización: El formulario solamente esta disponible para ser visualizado
- Cada paso puede tener condiciones para ejecutarse o no
Formulario
- HTML forms donde el usuario ingresa la información requerida
- Están compuestos por distintos campos HTML
- Se pueden estructurar para tener un orden y una forma deseada
- Permiten insertar javascript si se desean comportamientos mas complejos
Campo
- Campo HTML para el ingreso de información
- Varios tipos
- textinput, textarea, select, check, radio, grid, etc
- Pueden tener condiciones para ser mostrados o no
- Se les puede asignar reglas de validación
- required, numeric, max_length[num], etc
Evento
- Son las etapas que se ejecutan en forma automática en el servidor
- Cada evento tiene asignado una acción
- Se puede definir en que momento se ejecutaran
- Antes o después de una tarea
- Antes o después de un paso
- Se puede definir que ocurran bajo una condición
Acción
- Son operaciones que se ejecutan en el servidor
- Enviar correo
- Generar variable
- Permite almacenar en una variable el resultado de una expresión
- Consultar Webservice
- Permite almacenar en una variable el resultado de una llamada a un webservice
Workflow de Tareas
- Las tareas de un proceso siguen un workflow
- Las tareas están conectadas unas a otras
- La información de conexiones se almacena en la tabla conexión
- Cada conexión tiene una tarea origen, destino y condición con que se avanza
- Además hay distintos tipos de conexiones
Tipos de conexiones
- Secuencial: La mas básica, simplemente se avanza
- Evaluación: Se avanza solo si se cumple la condición
- Paralela: Se avanza a múltiples tareas
- Paralela con evaluación: Se avanza a múltiples tareas si se cumple las condiciones respectivas
- Unión: Se une el flujo en una sola tarea (Se ocupa luego de que se dividió el flujo en paralelo)
Modelo Entidad - Relación

Modelamiento de un Trámite
Trámite
- Es una instancia de un proceso
- Ej: Cada vez que un usuario inicia un proceso, se genera un nuevo trámite
- Se almacena
- Su estado: pendiente o completo
- Fecha de inicio
- Fecha de término
Etapa
- Corresponde a una instancia de una tarea
- Se almacena el usuario que esta asignado a ejecutar esa tarea
- Ademas se almacena
- Fecha de inicio
- Fecha de fin
- Los datos ingresados en cada etapa quedan almacenados en la tabla dato_seguimiento
Dato Seguimiento
- Se almacenan los datos obtenidos durante el tramite
- Cada dato tiene un nombre (Nombre de la variable)
- El valor es un campo JSON
- Se almacena la etapa donde fue ingresado el dato
¿Qué ocurre cuando una misma variable se reescribe varias veces durante el trámite?
- Cada dato queda en una fila distinta de la tabla dato_seguimiento
- Esta fila queda relacionada a la etapa en que se modifico
- Asi se mantiene la historia de cada dato
¿Cómo obtener el dato actual?
- Se agrupan los datos por nombre
- Se ordenan los datos por etapa de mayor a menor
- El primero de la lista sería el dato mas actual