Ayuda sobre productos BOLD:
Biblioteca de funciones BoldGT
ATENCIÓN: El siguiente contenido es de uso avanzado y su utilización puede ocasionar daños irreparables en la configuración del sistema
Lista de funciones en GT
A continuación se detallan funciones cuyo ámbito de aplicación se ajusta a los informes de contadores, informe de variables de nómina e informes de contadores de planificación.
TramosEmpleado
Nombre: TramosEmpleado
Parámetros: 0
Descripción: Función intermedia que retorna todos los tramos de ausencia o presencia (los que cuentan y los que no) del empleado en el intervalo de tiempo correspondiente al informe solicitado.
Ejemplo:
TramosEmpleado()
TramosPresencia
Nombre: TramosPresencia
Parámetros: 0
Descripción: Función intermedia que retorna los tramos que identifican presencia de la persona empleada en el intervalo de tiempo correspondiente al informe solicitado.
Ejemplo:
TramosPresencia()
TramosCuentan
Nombre: TramosCuentan
Parámetros: 0
Descripción: Función intermedia que retorna los tramos que cuentan como hora trabajada (tanto los tramos de presencia que cuentan como hora trabajada como los tramos de ausencia vinculados a incidencias que cuentan como hora trabajada) del empleado en el intervalo de tiempo correspondiente al informe solicitado.
Ejemplo:
TramosCuentan()
TramosSemana
Nombre: TramosSemana
Parámetros: 1. Lista de periodos que se desean filtrar. Parámetros: 2. Alfanumérico escrito entre comillas que indica que días de la semana se desean filtrar.
Descripción: Función intermedia que retorna los tramos que cuentan como hora trabajada de la persona empleada en el intervalo de tiempo correspondiente al informe solicitado que solapan con los días de la semana que indicamos en el parámetro 2 de la función. Los días de la semana se identifican bajo las siglas LMXJVSD.
Ejemplo:
TramosSemana(TramosPresencia(),"SD")
Obtiene los tramos de presencia asociados al sábado y domingo.
TramosFranja
Nombre: TramosFranja
Parámetros: 2. (1) Tipos de horas (2) Alfanumérico escrito entre comillas que indica qué franja del día se desea filtrar.
Descripción: Función intermedia que retorna los tramos del tipo de hora pasado como primer parámetro en el intervalo de tiempo correspondiente al informe solicitado que solapan con la franja que indicamos en el 2 parámetro de la función.
Ejemplo:
TramosFranja(TramosPresencia(),"18-24")
Obtiene los tramos de presencia que intersectan con la franja 18-24.
TramosFestivos
Nombre: TramosFestivos
Parámetros: 0
Descripción: Función intermedia que retorna los tramos que cuentan como hora trabajada de la persona empleada en el intervalo de tiempo correspondiente al informe solicitado que solapan con los días festivos asociados al calendario del empleado o empleada.
Ejemplo:
TramosFestivos()
TramosFestivosEsp
Nombre: TramosFestivosEsp
Parámetros: 0
Descripción: Función intermedia que retorna los tramos que cuentan como hora trabajada de la persona empleada en el intervalo de tiempo correspondiente al informe solicitado que solapan con los días festivos especiales asociados al calendario de la persona empleada.
Ejemplo:
TramosFestivosEsp()
TramosIncidencia
Nombre: TramosIncidencia
Parámetros: 1. Alfanumérico entre comillas asociada al código de la incidencia/permiso/ausencia
Descripción: Función intermedia que retorna los tramos de la persona empleada en el intervalo de tiempo correspondiente al informe solicitado que solapan con la incidencia identificada con el nombre en el parámetro de la función.
Ejemplo:
TramosIncidencia("VM")
Retorna los tramos de la persona empleada asociadas a la incidencia cuyo código es «VM» (Visita médica), Si el código no existiera, retorna un tramo vacío.
FiltraTramoDuracion
Nombre: FiltraTramoDuracion
Parametros: 2. El primero Tramos, y el segundo un valor numérico que define el número de minutos mínimos para filtrar.
Descripción: Función que retorna el número de jornadas para los que la duración en la jornada supere un umbral definido en minutos.
Ejemplo:
FiltraTramoDuracion(TramosPresencia(), 540)
Obtiene cuantas jornadas ha estado presente una persona empleada en un periodo que superen las 9 h.
IntersectaTramos
Nombre: IntersectaTramos
Parámetros: 2. Tramos1, Tramos2
Descripción: Función intermedia que retorna los tramos fruto de la intersección de los 2 tramos pasados como parámetros
Ejemplo:
IntersectaTramos(TramosIncidencia("VM"),TramosSemana("X"))
Retorna los tramos de la persona empleada asociadas a la incidencia cuyo código es «VM», que ocurren los miércoles .
HorasTramo
Nombre: HorasTramo
Parámetros: 1. Tramos1
Descripción: Función que retorna las horas equivalentes de los tramos pasados como parámetro.
Ejemplo:
HorasTramo(TramosIncidencia("VM")+TramosIncidencia("HS"))
Retorna la suma de las duraciones en horas de las incidencias con códigos «VM» o «VS».
FormatoHoras
Nombre: FormatoHoras Parámetros: 1. Decimal que indica horas. Ej. 12.0 Descripción: Función que retorna las horas equivalentes de los tramos pasados como parámetro. Ejemplo:
FormatoHoras(HorasTramo(TramosIncidencia("VM")))
Retorna en formato HH:MM las horas de las incidencias con código «VM». El resultado sería: 12:20
GeoLocalizacion marcajes
Nombre: GetClockGeoLocalizationData Parámetros: 1. identificador de la persona empleada Parámetros: 2. instante de marcaje Descripción: Función que la url con la geolocalización del marcaje.
Ejemplo:
GetClockGeoLocalizationData(IdCW.Worker.ID, DtTimeStamp)
Retorna, si la persona empleada en la fecha indicada tiene informado un marcaje geolocalizable, la url con la geolocalización. Esta función sería específica para el informe de marcajes.
Ejemplos
Para ir viendo el resultado de modificar las expresiones (aritméticos) de un report se recomienda seguir el siguiente procedimiento:
- Duplicar el informe del que se va a partir.
- Definir las nuevas columnas columnas que se quieren mostrar con expresiones muy sencillas
- Ir a la pantalla del nuevo informe y duplicar la pestaña del navegador –> Pestaña del informe
- En la nueva pestaña ir al editor de expresiones de ese report y modificar las expresiones –> Pestaña del editor de expresiones
- Seleccionar la Pestaña del informe y refrescar el resultado.
- Repetir los pasos 4 y 5 hasta obtener los resultados esperados.
Definir un contador que por cada hora trabajada en sábado genere un contador de 1.25 horas
La expresión resultante sería la siguiente:
1.25*HorasTramo(TramosSemana("S"))
Definir un contador que calcule la diferencia entre las horas a compensar y las horas ya compensadas
- Horas a compensar: esta variable ya existe en el sistema y su nombre interno es HorasExceso.
- Horas ya compensadas: esta variable no existe y hay que crearla. La nombramos como HCOMP, son las horas de compensación por incidencia, y calcula las horas que se piden como compensación mediante una incidencia en el Gantt. La fórmula es:
HorasTramo(IntersectaTramos(TramosEmpleado(), TramosIncidencia("COMP")))
Creamos el contador que calcula la diferencia entre las variables anteriores, por ejemplo lo llamamos SaldoCOMP y su expresión es la siguiente:
HorasExceso - HCOMP
Definir un contador que calcule los tramos (en horas) del horario teórico que no tengan presencia asociada
Suponemos que se trata de un caso en el que no hay flexibilidad y queremos que, por ejemplo, si un trabajador o trabajadora ficha la entrada 1h más tarde de su horario, esta hora se vaya a un contador de «absentismos injustificados». Es decir, que cualquier tramo que no tenga presencia y que según el horario teórico sí tendría que tener presencia se contabilice en este contador.
La expresión resultante sería la siguiente:
HorasTramo(TramosEmpleado()) - HorasTramo(IntersectaTramos(TramosEmpleado(), TramosPresencia()))
Definir una variable que muestre los turnos propios que tiene un empleado
Los turnos propios se quedan guardados a nivel de contrato, así que para poder consultarlos en un informe, tenemos que usar el informe predefinido «Contratos». Lo duplicamos y lo editamos para añadir una variable de tipo string con la siguiente expresión:
IfElse(!IsInvalid(IdCW.SchedulesList),
IfElse(IdCW.SchedulesList.ID == 532,
"Todos los turnos del sistema",
IdsToNames(ReplaceStr(UnderNodeClassifiedObjectList(32,IdCW.SchedulesList.ID),",",";"),"Schedule")
),
"No tiene")
El ID 532 es el nodo base de los turnos propios, si hay un contrato con ese nodo de turnos significa que son todos los del sistema y en este caso, mostramos el texto «Todos los turnos del sistema» (no es viable mostrar cada unos de los turnos). En caso de que tenga turnos propios los mostramos separados por punto y coma, y si no tiene, mostramos el texto «No tiene».