Saltar a contenido

Tareas de Proyectos

Tareas de Proyectos gestiona las unidades de trabajo ejecutables dentro de los proyectos de la organización. Permite descomponer proyectos complejos en tareas manejables organizadas jerárquicamente mediante relaciones padre-hijo, facilitando la planificación detallada y el seguimiento del progreso. Almacena información completa de cada tarea incluyendo nombre, descripción, tipo (tarea/grupo/hito/historia de usuario/epic/bug), jerarquía mediante tarea padre para crear subtareas multinivel, planificación temporal con fechas de inicio y fin (planificadas, confirmadas y computadas), duración estimada, porcentaje de completado y progreso, asignación de empleado responsable y supervisor, estado dentro del flujo de trabajo, prioridad, dependencias con otras tareas (predecesoras, sucesoras, bloqueos), estimación en story points, y cálculo de desviaciones entre tiempo planificado y real. Se integra con los módulos de Proyectos, Actividad en tareas para registro detallado de tiempo, Empleados, Sprints para metodologías ágiles, y Bonos de horas para facturación. Soporta visualizaciones en diagrama de Gantt para gestión temporal, tableros Kanban por estados, y seguimiento de dependencias para identificar cuellos de botella y rutas críticas.

Información General

Propiedad Valor
ID a14bf5fd-12ae-494f-8aaf-f6537c951c1e
Tabla PostgreSQL tpr_40010431842
Etiqueta Plural Tareas
Texto principal automatico No
Sección Base Base - Tareas de Proyectos (b03cd564-212e-461b-af4f-2b4f23866eb9)

Campos

Total de campos: 84 (10 del sistema, 74 personalizados)

Campos del Sistema

Campo Tipo Rol Columna PostgreSQL Relación Atributos
ID Relación - id Tareas de Proyectos -
Título Texto - nombre - -
Fecha Alta Dato Fecha Y Hora - fecha - -
Editado Fecha Y Hora - fecham - -
Eliminado Sí/No - eliminado - -
Usuario Creador del dato Relación - usuarioid Base - Entidades -
Sección (Relación Sistema) Relación - plantillapid - 🔴 Obligatorio
Posición (Orden) Decimal - posicion - -
Modificado Sí/No - modificado - -
Fecha Indice Actividad Fecha Y Hora - fechaia - -

Campos Personalizados

Campo Tipo Pestaña Columna Atributos Notas
Prioridad Entero General pr_20010432161 📊 Cualquier valor numérico Autorrellenado (Siempre): Número entero: 3
Coste RRHH (Computado) Decimal PMO Costes y Tiempos pr_40010434402 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico -
Conclusión Texto Conclusiones pr_40010432095 - -
Cantidad de horas de trabajo (Computado) Decimal Registro pr_40010432312 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico -
Gastos no RRHH (Planificado) Decimal Registro pr_20010432078 📊 Positivos o 0 -
Plantilla de tarea Relación General pr_20010434423 👁 Oculto -
Nivel Entero PMO pr_40010432151 👁 Oculto, 📊 Cualquier valor numérico -
Story Points / Tiempo de actividad (Planificadas) Decimal General pr_200104320712 📊 Positivos o 0 -
Vencimiento Fecha General pr_200104320711 - Fecha fin (Planificada)
Fecha inicio (Computado) Fecha Registro pr_40010432315 🔒 Bloqueado, 👁 Oculto -
Fecha fin (Computado) Fecha Registro pr_40010432314 🔒 Bloqueado, 👁 Oculto -
Coste RRHH (Confirmado) Decimal Registro pr_200104320717 📊 Positivos o 0 -
Gastos no RRHH (Confirmados) Decimal Registro pr_200104320716 📊 Positivos o 0 -
Destinador Relación General pr_400104318436 🔒 Bloqueado, 👁 Oculto -
Hora local Hora Registro pr_400104318433 🔒 Bloqueado, 👁 Oculto -
En proceso Sí/No General pr_50010434272 👁 Oculto -
Cantidad de días (Computado) Entero Registro pr_10010433372 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico -
Asignada a Relación General pr_50010433753 - -
Total costes y gastos (Computado) Decimal PMO Costes y Tiempos pr_60010439971 🔒 Bloqueado, 👁 Oculto, 📊 Positivos o 0 -
Gastos no RRHH (Computado) Decimal PMO Costes y Tiempos pr_60010441922 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico -
Naturaleza Entero PMO pr_10040521463 👁 Oculto, 📊 Mayores que 0 Autorrellenado (Siempre): Número entero: 1
Título legible tabulado Texto General pr_60040553793 👁 Oculto -
Resumen Texto General pr_60040553794 - -
Clave Texto General pr_500405537945 🔒 Bloqueado -
Dependencias Texto Registro pr_400405996013 👁 Oculto -
Tiempo adicional de Actividades no registradas Decimal Actividad pr_60040606607 📊 Cualquier valor numérico -
Cantidad de Predecesoras Pendientes Entero General pr_50631861 👁 Oculto, 📊 Cualquier valor numérico -
Cantidad de Bloqueos Pendientes Entero General pr_50631862 👁 Oculto, 📊 Cualquier valor numérico -
Cantidad de Relacionadas Entero General pr_50631864 👁 Oculto, 📊 Cualquier valor numérico -
Cantidad de Bloqueando Entero General pr_50631863 👁 Oculto, 📊 Cualquier valor numérico -
Cantidad de Inicios Simultáneos Entero General pr_50631869 👁 Oculto, 📊 Cualquier valor numérico -
Cantidad de Finalizaciones Simultáneas Entero General pr_50631868 👁 Oculto, 📊 Cualquier valor numérico -
Cantidad de Duplicadas Entero General pr_50631867 👁 Oculto, 📊 Cualquier valor numérico -
Cantidad de Causantes Entero General pr_50631866 👁 Oculto, 📊 Cualquier valor numérico -
Cantidad de Sucesoras Entero General pr_506318610 👁 Oculto, 📊 Cualquier valor numérico -
Cantidad de Bloqueos Entero General pr_506318611 👁 Oculto, 📊 Cualquier valor numérico -
Cantidad de Causando Entero General pr_50631865 👁 Oculto, 📊 Cualquier valor numérico -
Cantidad de Predecesoras Entero General pr_506318612 👁 Oculto, 📊 Cualquier valor numérico -
Sprint Relación General pr_50647371 - -
Estado (Flujo) Relación General pr_30657004 🔴 Obligatorio -
Tipo Relación General pr_50010432071 🔴 Obligatorio -
Proyecto Relación General pr_20010432075 🔴 Obligatorio, 🔒 Bloqueado -
Ubicación Relación Registro pr_20010432074 👁 Oculto Autorrellenado (Siempre): Campo (Sesión): Ubicación Principal
Fecha fin (Confirmado) Fecha Timing pr_200104320719 - -
Bono coste de tarea a cliente Decimal Registro pr_10703994 🔒 Bloqueado, ⚙️ Auto-Calculado, 📊 Cualquier valor numérico -
Bono Precio hora (sin impuestos) Decimal Registro pr_50703981 📊 Cualquier valor numérico -
Bono Relación Registro pr_30703982 - -
Tiempo mínimo (Bono) Decimal Registro pr_50703982 📊 Cualquier valor numérico -
Jerarquia Claves Texto Registro pr_50634121001 🔒 Bloqueado -
Estado Relación Registro pr_40010432073 🔴 Obligatorio, 🔒 Bloqueado Autorrellenado (Siempre): Campo : Estado (Flujo) / Estado
Fecha Alta del registro Fecha Y Hora Registro pr_400104318435 🔴 Obligatorio Autorrellenado (Siempre): Fecha y Hora actual
Progreso Decimal Registro pr_40040518231 📊 Positivos o 0 -
Autor del alta Relación Registro pr_400104318431 🔴 Obligatorio Autorrellenado (Siempre): Campo (Sesión): La Entidad ( ID* )
Flujo Relación Registro pr_50657002 🔴 Obligatorio -
Tarea padre Relación General pr_20040599214 - -
Supervisor Relación General pr_20010432071 - -
Cerrada Sí/No Registro pr_60010464725 - -
Tiempo de actividad (Desviación) Decimal Registro pr_20630632 🔒 Bloqueado, ⚙️ Auto-Calculado, 📊 Cualquier valor numérico -
Departamento Relación Registro pr_60010432071 - Autorrellenado (Siempre): Campo : Asignada a / Departamento
Tiempo de actividad (Planificado + Desviación) Decimal Registro pr_20630631 🔒 Bloqueado, ⚙️ Auto-Calculado, 📊 Cualquier valor numérico -
Subdepartamento Relación Registro pr_50010432076 - Autorrellenado (Siempre): Campo : Asignada a / Subdepartamento
Color Texto Registro pr_10628031005 - -
Total costes y gastos (Planificado) Decimal Registro pr_40010433841 🔒 Bloqueado, 📊 Cualquier valor numérico -
Tiempo de actividad restante Decimal Registro pr_30630631 🔒 Bloqueado, ⚙️ Auto-Calculado, 📊 Cualquier valor numérico -
Total costes y gastos (Confirmado) Decimal Registro pr_200104320715 🔒 Bloqueado, 📊 Positivos o 0 -
Coste RRHH (Planificado) Decimal Registro pr_20010432079 📊 Positivos o 0 -
Desviación % Decimal Registro pr_60630621 🔒 Bloqueado, ⚙️ Auto-Calculado, 📊 Cualquier valor numérico -
Fecha inicio (Planificada) Fecha Timing pr_200104320710 - Autorrellenado (Siempre): Fecha y Hora actual
Fecha Inicio (Confirmado) Fecha Timing pr_200104320718 - -
Anotaciones Timing Texto Timing pr_60040553811 - -
Tiempo de actividad (Bono) Decimal Registro pr_60704202 🔒 Bloqueado, ⚙️ Auto-Calculado, 📊 Positivos o 0 -
Cantidad de Actividades Entero Actividad pr_30010434286 🔒 Bloqueado, ⚙️ Auto-Calculado, 📊 Cualquier valor numérico -
Instrucciones Texto General pr_40010432091 - -
Tiempo de actividad Decimal Actividad pr_50010439975 🔒 Bloqueado, ⚙️ Auto-Calculado, 📊 Positivos o 0 -

Scripts

Total de scripts: 27

Código de Scripts

Lógica de negocio ejecutada en los formularios automáticamente

Campo_Click

F.Guardar

F.OpenReport(S.Reports.Funcionalidad.GrupoDeTareasKanban.ID,C.ID)

Campos utilizados: - Botón

Campo_Click

F.Guardar


F.AgregarElemento_Iniciar(S.Sections.AsignacionesDeTareasATareas.ID)
F.AgregarElemento_Valor(S.Fields.AsignacionesDeTareasATareas.ReferenciaTarea1.ID,C.ID)
F.AgregarElemento_Valor(S.Fields.AsignacionesDeTareasATareas.ReferenciaProyecto.ID,C.ReferenciaProyecto)
F.AgregarElemento_Finalizar()

Campos utilizados: - Botón

Campo_Cambiado

if C.ReferenciaTipo.Naturaleza <> C.Naturaleza 
    C.ReferenciaTipo =''
end if

Campos utilizados: - Tareas de Proyectos > Naturaleza

Campo_Cambiado

C.Naturaleza = C.ReferenciaTipo.Naturaleza
F.CampoDesplegableAutoSeleccionarPrimerElemento(S.Fields.TareasDeProyectos.ReferenciaEstadoFlujo.ID)

Campos utilizados: - Tareas de Proyectos > Tipo

Campo_Click

F.Guardar


if C.ReferenciaTipo.SeLePuedeImputarTiempo = 0 


    F.MsgBox('No se le puede imputar tiempo al tipo ' + C.ReferenciaTipo.TextoPrincipal,1)

else


    F.AgregarElemento_Iniciar(S.Sections.ActividadEnTareasDeProyectos.ID)
    F.AgregarElemento_Valor(S.Fields.ActividadEnTareasDeProyectos.ReferenciaTarea.ID,C.ID)
    F.AgregarElemento_Valor(S.Fields.ActividadEnTareasDeProyectos.ReferenciaProyecto.ID,C.ReferenciaProyecto)
    F.AgregarElemento_Finalizar()

end if

Campos utilizados: - Botón

Campo_ComboAplicarFiltro

F.CampoDesplegableAplicarAlgoritmoCM(S.Algorithms.AlgoritmoBusquedaMiembrosDeProyectos.ID,C.ReferenciaProyecto)

Campos utilizados: - Tareas de Proyectos > Supervisor

Campo_ComboAplicarFiltro

F.CampoDesplegableAplicarAlgoritmoCM(S.Algorithms.AlgoritmoBusquedaMiembrosDeProyectos.ID,C.ReferenciaProyecto)

Campos utilizados: - Tareas de Proyectos > Asignada a

Campo_Cambiado

C.ReferenciaAsignadaA = F.GetRowById(S.Sections.Empleados.ID,C.ReferenciaProyecto.ReferenciaEmpleadoPorDefecto)
C.ReferenciaSupervisor = F.GetRowById(S.Sections.Empleados.ID,C.ReferenciaProyecto.ReferenciaEmpleadoPrincipal)

Campos utilizados: - Tareas de Proyectos > Proyecto

Campo_ComboAplicarFiltro

F.CampoDesplegableAplicarFiltro(S.Fields.TareasDeProyectosBase.ReferenciaProyecto.ID,'=',C.ReferenciaProyecto)

Campos utilizados: - Tareas de Proyectos > Tarea padre

Campo_Click

C.Clave = 'DRAFT'

Campos utilizados: - Botón

Campo_PreAgregarRelacion

if C.ReferenciaProyecto = ''
    F.MsgBox('Debe seleccionar un proyecto.',1)
    F.CancelarEvento()
    salir
end if

F.CopiarAgregarRelacion(S.Fields.SprintsBase.ReferenciaProyecto.ID,C.ReferenciaProyecto)

Campos utilizados: - Tareas de Proyectos > Sprint

Campo_ComboAplicarFiltro

F.CampoDesplegableAplicarFiltro(S.Fields.SprintsBase.ReferenciaProyecto.ID,'=',C.ReferenciaProyecto)
 F.CampoDesplegableActivarQuitarFiltros('Únicamente de proyecto actual.')

Campos utilizados: - Tareas de Proyectos > Sprint

Campo_ComboAplicarFiltro

txt flujoID = C.ReferenciaProyecto.ReferenciaFlujo


F.CampoDesplegableAplicarFiltro(S.Fields.FlujosDeProyectosLista.ReferenciaTipo.ID,'=',C.ReferenciaTipo)
F.CampoDesplegableAplicarFiltro(S.Fields.FlujosDeProyectosLista.RelacionElementoContenedorListador.ID,'=',v.flujoID)

Campos utilizados: - Tareas de Proyectos > Estado (Flujo)

Campo_Click

F.Guardar

if C.ReferenciaTipo.PuedeTenerHijos 




    F.AgregarElemento_Iniciar(S.Sections.TareasDeProyectos.ID)
    F.AgregarElemento_Valor(S.Fields.TareasDeProyectos.ReferenciaProyecto.ID,C.ReferenciaProyecto)
    F.AgregarElemento_Valor(S.Fields.TareasDeProyectos.ReferenciaTareaPadre.ID,C.ID)
    F.AgregarElemento_Finalizar()


else

    F.MsgBox('Únicamente los grupos pueden tener tareas.',1)
end if

Campos utilizados: - Botón

Campo_ComboAplicarFiltro

if C.ReferenciaFlujo = ''
    C.ReferenciaFlujo = F.GetRowById(S.Sections.FlujosDeProyectos.ID,C.ReferenciaProyecto.ReferenciaFlujo)
end if

F.CampoDesplegableAplicarAlgoritmoCM(S.Algorithms.AlgoritmoBuscarTiposDeProyectosPorFlujo.id,C.ReferenciaFlujo)

Campos utilizados: - Tareas de Proyectos > Tipo

Campo_Cambiado

F.EjecutarScript(s.ScriptsSections.TareasDeProyectos.RecalcularFlujo.ID)

Campos utilizados: - Tareas de Proyectos > Flujo (Obsoleto)

Campo_Cambiado

F.EjecutarScript(s.ScriptsSections.TareasDeProyectos.RecalcularFlujo.ID)

Campos utilizados: - Tareas de Proyectos > Tarea padre

Formulario_Macro

IF C.ReferenciaTareaPadre <> ''
    C.ReferenciaFlujo = F.GetRowById(S.Sections.FlujosDeProyectos.ID,C.ReferenciaTareaPadre.ReferenciaFlujo)
else
    C.ReferenciaFlujo = F.GetRowById(S.Sections.FlujosDeProyectos.ID,C.ReferenciaProyecto.ReferenciaFlujo)
end if

Formulario_TickRecalculo

if C.ImporteCosteRRHHConfirmado > 0
    C.ImporteCosteRRHHComputado = C.ImporteCosteRRHHConfirmado
elseif C.ImporteCosteRRHHPlanificado > 0
    C.ImporteCosteRRHHComputado = C.ImporteCosteRRHHPlanificado
else
    C.ImporteCosteRRHHComputado = 0
end if 



if C.ImporteGastosNoRRHHConfirmados > 0
    C.ImporteGastosNoRRHHComputado = C.ImporteGastosNoRRHHConfirmados
elseif C.ImporteGastosNoRRHHPlanificado > 0
    C.ImporteGastosNoRRHHComputado = C.ImporteGastosNoRRHHPlanificado
else
    C.ImporteGastosNoRRHHComputado = 0
end if 



C.ImporteTotalCostesYGastosPlanificado = C.ImporteCosteRRHHPlanificado + C.ImporteGastosNoRRHHPlanificado 
C.ImporteTotalCostesYGastosConfirmado = C.ImporteCosteRRHHConfirmado + C.ImporteGastosNoRRHHConfirmados





if C.ImporteTotalCostesYGastosConfirmado > 0
    C.ImporteTotalCostesYGastosComputado = C.ImporteTotalCostesYGastosConfirmado
elseif C.ImporteTotalCostesYGastosPlanificado > 0
    C.ImporteTotalCostesYGastosComputado = C.ImporteTotalCostesYGastosPlanificado
else
    C.ImporteTotalCostesYGastosComputado = 0
end if



if C.TiempoDeActividad = 0 o C.ImporteBonoPrecioHoraSinImpuestos = 0
    C.ImporteBonoCosteDeTareaACliente = 0
else

    C.ImporteBonoCosteDeTareaACliente = F.Round(C.TiempoDeActividad * (C.ImporteBonoPrecioHoraSinImpuestos / 60),2)
end if

Formulario_TickRecalculo

C.TextoPrincipal = F.Concat(C.Clave,' ',C.Resumen)

F.CampoBloqueadoMotivo(S.Fields.TareasDeProyectos.TextoPrincipal.ID,'',1)

txt tabulaciones 




if C.ProgresoPorciento = 100
    if C.FechaFinConfirmado = ''
        C.FechaFinConfirmado = D.DatosEspeciales.FechaActual 
    end if
else
    if C.FechaFinConfirmado <> ''
        C.FechaFinConfirmado = ''
    end if
end if


if C.FechaFinConfirmado <> ''
    C.FechaFinComputado = C.FechaFinConfirmado 
else
    C.FechaFinComputado = C.Vencimiento 
end if

Campo_ComboAplicarFiltro

if C.ReferenciaProyecto <> ''
    F.CampoDesplegableAplicarFiltro(S.Fields.GruposDeTeareasDeProyectosBase.ReferenciaProyecto.id,'=',C.ReferenciaProyecto)
end if

Campos utilizados: - Tareas de Proyectos > Grupo (x) (Obsoleto)

Campo_Cambiado

if C.ReferenciaEstado.EstadoTarea = S.Enums.tareaestado.enproceso
    C.EnProceso = 1
else
    C.EnProceso = 0
end if

if C.ReferenciaEstado.EstadoTarea = S.Enums.tareaestado.enproceso
    if C.FechaInicioConfirmado = ''
        C.FechaInicioConfirmado = D.DatosEspeciales.FechaActual 
    end if
end if


if C.ReferenciaEstado.EstadoTarea = S.Enums.tareaestado.backlog o C.ReferenciaEstado.EstadoTarea = S.Enums.tareaestado.pendiente 
    C.FechaInicioConfirmado = ''
end if


if C.ReferenciaEstado.EstadoTarea = S.Enums.tareaestado.completado o C.ReferenciaEstado.EstadoTarea = S.Enums.tareaestado.cancelado 
    C.ProgresoPorciento = 100
else
end if

Campos utilizados: - Tareas de Proyectos > Estado

Formulario_PreACeptar

if C.ReferenciaDepartamento <> '' y C.ReferenciaSubdepartamento <> ''

    if C.ReferenciaSubdepartamento.ReferenciaDepartamentoQuePertenece <> C.ReferenciaDepartamento
        F.MsgBox('El subdepartamento seleccionado no pertenece al departamento.',1)
        F.CancelarEvento 
    end if 


end if

Formulario_TickRecalculo

if C.FechaInicioConfirmado <> ''
     C.FechaInicioComputado = C.FechaInicioConfirmado 
 elseif C.FechaInicioPlanificada <> ''
     C.FechaInicioComputado = C.FechaInicioPlanificada 
 end if




 if C.TiempoDeActividad > 0
     C.CantidadDeHorasDeTrabajoComputado = C.TiempoDeActividad 
 elseif C.StoryPointsTiempoDeActividadPlanificadas > 0
     C.CantidadDeHorasDeTrabajoComputado = C.StoryPointsTiempoDeActividadPlanificadas 
 else
     C.CantidadDeHorasDeTrabajoComputado = 0
 end if


 C.DesviacionPorciento = ((C.TiempoDeActividad - (C.StoryPointsTiempoDeActividadPlanificadas * (C.ProgresoPorciento / 100))) / C.StoryPointsTiempoDeActividadPlanificadas) * 100
 C.TiempoDeActividadDesviacion = F.Round(C.TiempoDeActividad - (C.StoryPointsTiempoDeActividadPlanificadas * (C.ProgresoPorciento / 100)),2)
 C.TiempoDeActividadPlanificadoDesviacion = F.Round(C.StoryPointsTiempoDeActividadPlanificadas + (C.TiempoDeActividad - (C.StoryPointsTiempoDeActividadPlanificadas * (C.ProgresoPorciento / 100))),4)
 C.TiempoDeActividadRestante = C.StoryPointsTiempoDeActividadPlanificadas - ( C.StoryPointsTiempoDeActividadPlanificadas * (C.ProgresoPorciento / 100))

Formulario_Iniciado_AgregarNuevo

C.Clave = 'DRAFT'

F.CampoPonerFoco(S.Fields.TareasDeProyectos.Resumen.ID,0)



C.ReferenciaTipo = F.GetRowById(S.Sections.TiposDeTareaV2.ID,C.ReferenciaProyecto.ReferenciaFlujo.ReferenciaTipo)


F.EjecutarScript(s.ScriptsSections.TareasDeProyectos.RecalcularFlujo.ID)

if C.ReferenciaBono = ''
    C.ReferenciaBono = F.GetRowById(S.Sections.BonosHoras.ID,C.ReferenciaProyecto.ReferenciaBono)
    C.TiempoMinimoBono = C.ReferenciaProyecto.TiempoMinimoTareasBono 
    C.ImporteBonoPrecioHoraSinImpuestos  = C.ReferenciaProyecto.ImporteBonoPrecioHoraSinImpuestos 
end if

← Volver al índice