Estructura de Datos

Estructura de un Proceso

Un proceso contiene toda la información sobre como funciona un proceso en Simple. Sus reglas, flujo, formularios, etc.

proceso

Esta tabla almacena la info principal perteneciente a un proceso creado en Simple

Columna Tipo Descripción
id int Identificador del proceso
nombre varchar(128) Nombre del proceso
width varchar(8) Ancho del canvas donde esta dibujado el modelo del proceso
height varchar(8) Alto del canvas donde esta dibujado el modelo del proceso
cuenta_id int Identificador de la cuenta a la que pertenece este proceso

tarea

Un proceso esta compuesto por varias tareas. Una tarea equivale a un conjunto de acciones que ejecutara un usuario dado dentro del proceso.

Columna Tipo Descripción
id int Identificador de la tarea
identificador varchar(32) Identificador que utiliza la libreria JS que dibuja el proceso para identificar cada tarea
nombre varchar(128) Nombre de la tarea
inicial bool Indica si es tarea inicial del proceso
posx int Posición de coordenada x dentro del canvas de dibujo del proceso
posy int Posición de coordenada y dentro del canvas de dibujo del proceso
asignacion enum Forma de asignación de usuarios a esta tarea: ciclica, manual, auto-servicio y usuario
asignacion_usuario varchar(128) En caso de que la asignacion sea a usuario, aquí se indica el id del usuario a asignar o la variable SIMPLE que contiene este id
asignacion_usuario_notificar bool Indica si se debe notificar via email al usuario asignado a esta tarea
proceso_id int Identificador del proceso al que pertenece esta tarea
almacenar_usuario bool Indica si se desea almacenar el id del usuario que ejecuto esta tarea
almacenar_usuario_variable varchar(128) Si se desea almacenar el usuario que ejecuto esta tarea, aquí se indica como se debe llamar la variable SIMPLE que almacena ese id
acceso_modo enum Quienes tienen permiso para ejecutar esta tarea: grupos_usuarios, publico, registrados y claveunica
activacion enum Modo de activación de esta tarea: si, no o entre_fechas
activacion_inicio date Si la activación es entre fechas, aquí se indica la fecha inicial
activacion_fin date Si la activación es entre fechas, aquí se indica la fecha final
vencimiento bool Indica si esta tarea tiene un periodo de vencimiento
vencimiento_valor int Cantidad de tiempo en la que la tarea se vence
vencimiento_unidad enum Unidad de tiempo en que se mide el vencimiento: D (días), W (semanas) o M (meses)
vencimiento_habiles bool Indica si se deben considerar solamente los días hábiles
vencimiento_notificar bool Notificar via email cuando la tarea esté cercana a vencer
vencimiento_notificar_email varchar(255) Email al que se debe notificar cuando la tarea este próxima a vencer
vencimiento_notificar_dias int Cantidad de (dias,semanas,meses) para que se cumpla el vencimiento de la tarea
grupos_usuarios text Listado de grupos de usuarios, separados por coma, los cuales tienen permisos para ejecutar esta tarea
paso_confirmacion bool Indica si la tarea debe incluir al final un último paso que confirme si uno desea avanzar a la siguiente tarea
previsualizacion text HTML que permite previsualizar el contenido de una tarea antes de ejecutarla

paso

Una tarea esta compuesta por una serie de pasos que el usuario ejecuta. Esta tabla almacena información sobre estos pasos a ejecutar.

Columna Tipo Descripción
id int Identificador del paso
orden int En que posición se ejecuta este paso
modo enum En que modo se ejecuta el paso: edicion o visualizacion
regla varchar(512) Condición para que se ejecute este paso
formulario_id int Identificador del formulario que se debe ejecutar en este paso
tarea_id int Identificador de la tarea a la que pertenece este paso

formulario

Columna Tipo Descripción
id int Identificador del formulario
nombre varchar(128) Nombre del formulario
proceso_id int Identificador del proceso al que perteneces este formulario

campo

Esta tabla almacena la información de campos correspondientes a un formulario.

Columna Tipo Descripción
id int Identificador del campo
nombre varchar(32) Nombre de la variable con la cual serán almacenados los datos ingresados en este campo.
readonly bool Indica si el campo es de solo lectura
valor_default text Texto con que se llena el campo en caso de no tener data
posicion int Posición del campo dentro del formulario
tipo varchar(32) Tipo de campo: Puede ser text, file, radio, checkbox, textarea, select, etc.
formulario_id int Identificador del formulario al cual pertenece el campo
etiqueta text Texto que acompaña al campo explicando que es el campo. (Es el label del campo)
validacion varchar(128) Reglas de validación que se aplicarán al campo dado un input de usuario. Las reglas van separadas de el signo "
ayuda text Ayuda contextual sobre el llenado del campo
dependiente_tipo enum Solo aplica si es un campo en el cual su visualización depende de otro campo. Indica que tipo de comparación hacer para encontrar el match con los valores del otro campo: string o regex
dependiente_campo varchar(64) Solo aplica si es un campo en el cual su visualización depende de otro campo. Indica en que campo hacer la comparación de valores.
dependiente_valor varchar(256) Solo aplica si es un campo en el cual su visualización depende de otro campo. Indica el valor con el cual se debe hacer la comparación
dependiente_relacion enum Solo aplica si es un campo en el cual su visualización depende de otro campo. Indica que tipo de comparacion hacer: igualdad (==) o desigualdad (!=)
datos text Estructura JSON que almacena los datos adicionales para desplegar un campo. Por ejemplo, en el caso de un select, aquí estaría el listado de opciones dentro del select
documento_id int Si este campo es de tipo documento, este identificador corresponde al documento a desplegar en este campo
extra text Estructura JSON que contiene configuración adicional que pudiera requerir este campo.

accion

Esta tabla almacena las acciones y sus configuraciones que un proceso ejecutara en los momentos correspondientes. Estas acciones pueden ser de distintos tipos: webservices, envios de correo, etc.

Columna Tipo Descripción
id int Identificador de la acción
nombre varchar(128) Nombre de la acción
extra text JSON que incluye configuración adicional
proceso_id int Identificador del proceso al que pertenece esta acción

Estructura de un trámite

Un trámite incluye información de un proceso realizado. Cada vez que se inicia un proceso, se crea un tramite nuevo que almacena la información sobre esa ejecución.

tramite

Se almacena información de un trámite.

Columna Tipo Descripción
id int Identificador del trámite
proceso_id int Identificador del proceso que corresponde a este trámite
pendiente bool Indica si este trámite ya finalizó o sigue pendiente
created_at datetime Fecha y hora de creación de este trámite
updated_at datetime Fecha y hora de última modificación de este trámite
ended_at datetime Fecha y hora del fin de este trámite

etapa

Cada vez que una avanza de una tarea a la siguiente de un proceso, se genera una nueva etapa en el trámite

Columna Tipo Descripción
id int Identificador de la etapa
tarea_id int Tarea correspondiente a esta etapa
usuario_id int Identificador del usuario que esta asignado a esta etapa. Si aun no hay un usuario asignado, el campo queda en NULL
pendiente bool Indica si esta etapa ya finalizó o sigue pendiente
etapa_ancestro_split_id int Identificador de la etapa anterior en el caso se que se haya bifurcado el proceso en varios flujos. Sirve para saber cuando el flujo se debe volver a unir en uno solo
vencimiento_at date Fecha en que esta etapa vence
tramite_id int Identificador del trámite al que pertenece esta etapa
created_at datetime Fecha y hora de creación de esta etapa
updated_at datetime Fecha y hora de última modificación de esta etapa
ended_at datetime Fecha y hora del fin de esta etapa

dato_seguimiento

Aquí se almacenan las variables Simple y su contenidos

Columna Tipo Descripción
id int Identificador de la etapa
nombre varchar(128) Nombre de la variable
valor text JSON con el contenido de la variable
etapa_id int Identificador de la etapa donde se modificó la variable