tuain-bpm-lib
Version:
Servicio de gestión de manejo de procesos de la plataforma Tuain
266 lines (228 loc) • 9.19 kB
JavaScript
/* eslint-disable no-unused-vars */
/**
* Interfaz para facilitar desarrollo en la clase Controller
*/
class ProcessControllerBase {
/**
* Método Virtual para que las subclases definan como parametrizar el flujo del proceso
*/
customizeBehaviour() {
//
this.logger.log({
level: 'error',
message: 'Clase de gestión de proceso sin personalización de comportamiento',
});
}
/**
* Operaciones básicas de las instancias de proceso
*/
/**
* Crea una nueva instancia del proceso
* @param {*} inputVars Variables de entrada para el evento start del proceso
* @param {*} users Usuarios iniciales relacionados con roles de usuarios
* @param {*} groups Grupos iniciales relacionados con roles de grupo
*/
async newInstance(inputVars, users, groups) {}
/**
* Localiza una instancia del proceso que contenga ciertas variables de entrada
* @param {*} inputVars Variables de entrada
*/
async findInstance(inputVars) {}
/**
* Asinación de valor a una variable del proceso
* @param {*} procId Código de la instancia del proceso
* @param {*} name Nombre de la variable
* @param {*} value Valor de la variable a asignar
*/
async setVar(procId, name, value) {}
/**
* Obtención del valor de una variable del proceso
* @param {*} procId Código de la instancia del proceso
* @param {*} name Nombre de la variable
*/
async getVar(procId, name) {}
/**
* Asignación de un usuario a un rol del proceso
* @param {*} procId Código de la instancia del proceso
* @param {*} roleName Nombre del rol de usuario a asignar
* @param {*} user Usuario que se quiere asignar al rol
*/
async assignUser(procId, roleName, user) {}
/**
* Obtiene el usuario asignado a un rol en el proceso
* @param {*} procId Código de la instancia del proceso
* @param {*} roleName Nombre del rol de usuario
*/
async getUser(procId, roleName) {}
/**
* Asignación de un grupo a un rol del proceso
* @param {*} procId Código de la instancia del proceso
* @param {*} roleName Nombre del rol de grupo a asignar
* @param {*} group Grupo que se quiere asignar al rol
*/
async assignGroup(procId, roleName, group) {}
/**
* Obtiene el grupo asignado a un rol en el proceso
* @param {*} procId Código de la instancia del proceso
* @param {*} roleName Nombre del rol de grupo
*/
async getGroup(procId, roleName) {}
/**
* Registra un evento de tipo timer tal que dispare el evento en wakeupDate
* @param {*} procId Código de la instancia del proceso
* @param {*} name Nombre del evento
* @param {*} eventVars Variables de entrada para ejecutar el evento
*/
registerTimerEvent(procId, name, eventVars) {}
/**
* Inicia la ejecución de una nueva instancia de un evento
* @param {*} procId Código de la instancia del proceso
* @param {*} name Nombre del evento
* @param {*} eventVars Variables de entrada frente al evento
*/
async triggerEvent(procId, name, eventVars) {}
/**
* Permite definir una función a ejecutar al momento de dispararse un evento
* @param {*} name Nombre del evento del proceso
* @param {*} callback Función a ejecutar cuando se dispare un evento específico
*/
onEventComplete(name, callback) {}
/**
* Permite definir la función que cierra un evento actualizando el proceso
* @param {*} name Nombre del evento del proceso
* @param {*} callback Función a ejecutar cuando se cierre cada instancia del evento
*/
onEventClose(name, callback) {}
/**
* Obtiene todo el historial de eventos ejecutados en un proceso
* @param {*} procId
*/
async getProcessEventsHistory(procId) {}
/**
* Métodos relativos al manejo de las tareas de los procesos
*/
/**
* Inicia una nueva tarea en una instancia de proceso
* @param {*} procId Código de la instancia del proceso
* @param {*} name nombre de la tarea a iniciar una instancia
* @param {*} origin Nodo anterior de donde proviene la ejecución de la tarea
* @param {*} userRole Role de usuario asignado a la tarea
* @param {*} groupRole Role de usuario asignado a la tarea
* @param {*} userId Usuario asignado directamente a la tarea
* @param {*} groupId Grupo de usuarios asignado directamente a la tarea
*/
async startNewTask(procId, name, origin, userRole, groupRole, userId, groupId) {}
/**
* Asignación de un usuario a un rol del proceso
* @param {*} taskId Código de la instancia de la tarea
* @param {*} procId Código de la instancia del proceso
* @param {*} name Nombre del rol de usuario a asignar
* @param {*} userId Usuario al que se quiere asignar la tarea
*/
async assignTaskToUser(taskId, procId, name, userId) {}
/**
* Asignación de un usuario a un rol del proceso
* @param {*} procId Código de la instancia del proceso
* @param {*} roleName Nombre del rol de grupo a asignar
* @param {*} groupId Grupo al que se quiere asignar la tarea
*/
async assignTaskToGroup(procId, roleName, groupId) {}
/**
* Obtiene la instancia de una tarea de una instancia específica de un proceso
* @param {*} taskId Identificador único de la instancia (en su ausencia se toma la primera)
* @param {*} procId Código de la instancia del proceso
* @param {*} name Nombre de la tarea (si no hay taskId se localiza la primera por nombre)
* @param {*} status Estado de la tarea que se quiere encontrar
*/
async getTaskInstance(taskId, procId, name, status) {}
/**
* Confirma la finalización de una tarea específica de un proceso
* @param {*} inputTaskId Identificador único de la tarea
* @param {*} procId Código de la instancia del proceso
* @param {*} name Nombre de la tarea (si no hay taskId se localiza la primera por nombre)
*/
async stopTask(inputTaskId, procId, name) {}
/**
* Confirma la finalización de una tarea específica de un proceso
* @param {*} taskId Identificador único de la tarea
* @param {*} inputVars Variables de entrada para la tarea
*/
async completeTask(taskId, inputVars) {}
/**
* Permite definir una función a ejecutar al momento de iniciar una tarea
* @param {*} name Nombre de la tarea
* @param {*} callback Función a ejecutar cuando se inicie una instancia de la tarea
*/
onTaskStart(name, callback) {}
/**
* Permite definir una función a ejecutar al momento de terminarse una tarea
* @param {*} name Nombre de la tarea
* @param {*} callback Función a ejecutar cuando se finalice cada instancia de la tarea
*/
onTaskComplete(name, callback) {}
/**
* Permite definir la función que cierra una tarea actualizando el proceso
* @param {*} name Nombre de la tarea
* @param {*} callback Función a ejecutar cuando se cierre cada instancia de la tarea
*/
onTaskClose(name, callback) {}
/**
* Obtiene todas las tareas de cierto tipo en un estado específico
* @param {*} name Nombre de la tarea
* @param {*} status Estado de la tarea
* @param {*} pageNumber Número de página
* @param {*} pageSize Tamaño de página
*/
async getActiveTasks(name, pageNumber, pageSize, status) {}
/**
* Obtiene todas las tareas en cabeza de un usuario
* @param {*} userId Usuario del que se quiere obtener las tareas
*/
async getUserTasks(userId) {}
/**
* Obtiene todas las tareas asignadas a cualquiera de los grupos en un arreglo de ids
* @param {*} groupIdArray Arreglo de grupos sobre los que se quiere obtener las tareas
*/
async getGroupsTasks(groupIdArray) {}
/**
* Obtiene todo el historial de tareas ejecutadas en un proceso
* @param {*} procId Código de la instancia del proceso
*/
async getProcessTaskHistory(procId) {}
/**
* Obtiene las actividades actualmente activas en el proceso
* @param {*} procId Código de la instancia del proceso
*/
async getTasksInProgress(procId) {}
/**
* Métodos relativos al manejo de los gateways del proceso
*/
/**
* Inicia una nueva instancia de ejecución de un gateway del proceso
* @param {*} procId Código de la instancia del proceso
* @param {*} name Nombre del gateway a ejecutar
* @param {*} origin Nodo que solicitió o de donde proviene la ejecución del gateway
*/
async startNewGateway(procId, name, origin) {}
/**
* Obtiene todo el historial de gateways ejecutados en un proceso
* @param {*} procId Código de la instancia del proceso
*/
async getProcessGatewaysHistory(procId) {}
/**
* Registra una función callback para evaluar si un destino de un gateway se debe ejecutar
* @param {*} name Nombre del gateway
* @param {*} desination Nombre del destino
* @param {*} callback Función de evaluación
*/
defineGatewayDestinationCallback(name, desination, callback) {}
/**
* Métodos relativos a consultas y estadísticas de un proceso
*/
/**
* Obtiene todo el historial de actividades, eventos y gateway ejecutados en un proceso
* @param {*} procId Código de la instancia del proceso
*/
async getProcessHistory(procId) {}
}
module.exports = ProcessControllerBase;