Obtener asociaciones a servicio por empleado
Este endpoint permite consultar las asociaciones a servicio de un empleado.
GET /api/v1/business/{businessId}/person/{personId}/service-associations
Si los datos incluidos en la petición son correctos —tanto el businessId como el personId—, la respuesta será un 200 OK con todas las asociaciones a servicio del empleado pasado por parámetro.
Ejemplo de respuesta
A continuación, se muestra un ejemplo de respuesta:
[
{
"ownerProduct": "0001-G",
"product": "0001-G",
"from": "2021-06-19",
"splitPresence": true,
"unplannable": false,
"roles": [],
"disponibility": [
{
"from": "2021-06-19",
"ranges": [
{
"dayType": "ALL",
"startMinuteDay": 600,
"duration": 600,
"available": true
},
{
"dayType": "TUESDAY",
"startMinuteDay": 0,
"duration": 1440,
"available": false
}
],
"type": "DAY_TYPE"
}
],
"regularCessions": [
{
"product": "0003-G",
"minutes": 240,
"days": [
"TUESDAY"
]
}
],
"service": "0001",
"person": {
"name": "Olivia",
"surname": "García",
"group": "",
"email": "",
"employeeId": "1006350",
"virtual": false
}
},
{
"ownerProduct": "0001-G",
"product": "0002-G",
"from": "2025-01-21",
"to": "2025-01-28",
"splitPresence": false,
"unplannable": false,
"roles": [],
"disponibility": [
{
"from": "2025-01-21",
"to": "2025-01-28",
"ranges": [
{
"dayType": "ALL",
"startMinuteDay": 600,
"duration": 600,
"available": true
}
],
"type": "DAY_TYPE"
}
],
"service": "0002",
"person": {
"name": "Olivia",
"surname": "García",
"group": "",
"email": "",
"employeeId": "1006350",
"virtual": false
}
}
]
Detalles
-
ownerProduct*: identificador externo del producto o sección al que pertenece el empleado.
-
product*: identificador externo del producto o sección donde va a trabajar el empleado. Puede ser igual al
ownerProduct; si es distinto, se trata de una cesión. -
from*: fecha de inicio de la asociación a servicio en formato
yyyy-MM-dd. -
to: fecha de finalización de la asociación a servicio en formato
yyyy-MM-dd. Puede sernull, indicando que no hay fecha de fin establecida. -
splitPresence: determina si se trata de un turno partido. El valor por defecto es
true. -
unplannable: determina si el empleado será ignorado por el planificador, por lo que deberá planificarse a mano. El valor por defecto es
false. -
card: identificador de la tarjeta del empleado en sistemas de fichajes.
-
roles: lista de identificadores de roles que se atribuirán al empleado en esta asociación a servicio.
-
disponibility: disponibilidad del empleado durante un intervalo concreto.
-
from*: fecha de inicio del periodo de la disponibilidad en formato
yyyy-MM-dd. -
to: fecha de finalización del periodo de la disponibilidad en formato
yyyy-MM-dd. Puede sernullsiempre que la asociación a servicio también lo sea. -
ranges: lista de disponibilidades por tipo de día. Para cada tipo, incluye la siguiente información:
-
dayType*: tipo de día al que se aplica la disponibilidad. Puede ser un tipo de día del sistema (
ALL,WEEKENDS,MONDAY,TUESDAY,WEDNESDAY, etc.) o uno definido a nivel de negocio. -
startMinuteDay*: inicio de la disponibilidad en minutos a partir de las 00:00 en hora local. Por ejemplo, 600 para las 10:00.
-
duration*: duración del rango en minutos.
-
available: determina si el empleado está disponible (
true) o no disponible (false) en el rango y tipo de día indicados. El valor por defecto estrue.
-
-
type: tipo de disponibilidad efectiva:
DAY_TYPE,SHIFT_PATTERNoCALENDAR. -
timeFramePatternId: identificador interno del patrón de turno o disponibilidad aplicado. Solo para disponibilidad de tipo
SHIFT_PATTERN. -
weekStart: semana de inicio. Solo para disponibilidad de tipo
SHIFT_PATTERN. -
blockedType: tipo de bloqueo aplicado al patrón (
NONE, EXTENSIBLE_WORK, NON_EXTENSIBLE_WORK, EXTENSIBLE_TIME, NON_EXTENSIBLE_TIME, DAILY_WORKED, FREE, WORKING_HOURS). Solo para disponibilidad de tipoSHIFT_PATTERN.
-
-
regularCessions: determina si el empleado trabaja algunos días a la semana en otro producto o sección de manera sistemática. En caso de que existan cesiones regulares, se definen a través de los siguientes campos:
-
product: identificador externo del producto o sección de destino donde el empleado va a trabajar.
-
minutes: número de minutos que el empleado trabajará en el producto o sección de destino.
-
days: lista de tipos de día que el empleado trabajará cedido. Posibles valores:
MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY.
-
-
metadata: cualquier dato adicional relativo a la asociación a servicio. La estructura de estos metadatos debe ser configurada previamente por el equipo de Orquest.
-
id: identificador externo de la asociación a servicio.
-
service: identificador externo del servicio.
-
person: datos básicos del empleado:
-
name: nombre del empleado.
-
surname: apellido(s) del empleado.
-
group: si se han definido grupos dentro del negocio, el grupo al que pertenece el empleado.
-
email: el email de empleado, si se ha establecido uno.
-
birthday: la fecha de nacimiento con formato
yyyy-MM-dd. -
employeeId*: identificador externo del empleado.
-
metadata: datos adicionales sobre el empleado. La estructura de este campo debe ser previamente configurada por el equipo de Orquest.
-
seniority: antigüedad del empleado en formato
yyyy-MM-dd. -
virtual: determina si se trata de un empleado real o uno virtual utilizado, por ejemplo, para realizar simulaciones.
-
Como se puede ver en el ejemplo, los datos de la respuesta dependen de la información que se haya definido para el empleado.
En este caso, hay una asociación a servicio al producto 0001-G desde el 2021-06-19, con una cesión regular de cuatro horas los martes en 0003-G y una cesión desde el 2025-01-21 al 2025-01-28 al producto 0002-G.
Consideraciones
La petición devolverá todas las asociaciones a servicio y cesiones del empleado. Si hay cesiones regulares definidas dentro de alguna de las asociaciones, también aparecerán en la respuesta.
Si no hay asociaciones a servicio para el empleado (ni activas ni finalizadas), la petición devolverá un array vacío [].
Disponibilidad efectiva
Dentro de cada intervalo de disponibilidad, es posible la convivencia entre rangos de disponibilidad por tipo de día y disponibilidad efectiva por patrón de turnos o calendario de asignaciones. El tipo (type) indicará cuál es la disponibilidad efectiva en cada caso: DAY_TYPE, SHIFT_PATTERN o CALENDAR.
Ver ejemplo
[
{
"ownerProduct": "0001-G",
"product": "0001-G",
"from": "2021-06-25",
"splitPresence": true,
"unplannable": false,
"roles": [],
"disponibility": [
{
"from": "2025-11-02",
"ranges": [
{
"dayType": "ALL",
"startMinuteDay": 0,
"duration": 1440
}
],
"type": "SHIFT_PATTERN",
"timeFramePatternId": "f314b8b2-2011-43af",
"weekStart": 1,
"blockedType": "NON_EXTENSIBLE_TIME"
}
],
"service": "0001",
"person": {
"name": "Sam",
"surname": "Cole",
"employeeId": "0002",
"virtual": false
}
}
]
En este ejemplo, aunque el empleado tenga disponibilidad por defecto todos los días (ALL) de 00:00 a 00:00, su disponibilidad efectiva está definida por patrón de turnos (SHIFT_PATTERN), lo que hace que también se devuelvan los demás campos relacionados con este tipo de disponibilidad: timeFramePatternId, weekStart y blockedType.
Para consultar los detalles de la disponibilidad efectiva, se recomienda utilizar las siguientes peticiones:
Códigos de error
Este endpoint no devuelve códigos de error propios que no se encuentren descritos en errores comunes.
Enlaces de interés
¿Qué es una asociación a servicio? ¿Y una cesión?
¿Qué es la disponibilidad de un empleado?