Index
Break
(message)BreakRule
(message)BudgetRequirement
(message)CoverageRequirement
(message)CoverageRequirement.RoleRequirement
(message)CoverageRequirement.SkillRequirement
(message)DemandCoverageViolation
(message)Employee
(message)EmployeeDemand
(message)EmployeeSchedule
(message)EmployeeSchedule.ShiftWithEvents
(message)EmployeeSchedule.ShiftWithEvents.Event
(message)EventTemplate
(message)HourlyContract
(message)HourlyContract.OvertimePeriod
(message)Priority
(enum)ResourceConstraint
(message)SchedulingConstraint
(message)Shift
(message)ShiftAssignment
(message)ShiftGenerationSolutionStatus
(enum)ShiftPreference
(message)ShiftRequest
(message)ShiftTemplate
(message)SolutionStatus
(enum)SolveParameters
(message)SolverConfig
(message)WorkStatus
(enum)
Pause
Période pendant laquelle un employé interrompt son travail pendant un quart de travail.
Champs | |
---|---|
start_date_time |
Heure de début d'une pause. |
duration_minutes |
Durée de la pause en minutes. |
BreakRule
Règle qui détermine à quel moment une pause peut commencer au sein d'un quart de travail et sa durée. La liste de toutes les coupures possibles prises en compte est déterminée par incréments de rule_increment_minutes
. Par exemple, si une règle de rupture modélise une pause de 30 minutes qui peut commencer entre 10:00 et 11:00, et que l'incrément de la règle est de 20 minutes, la liste des sauts pris en compte est : [10:00, 10:30], [10:20, 10:50], [10:1, 0], 1:1, 1.
Champs | |
---|---|
earliest_start_time |
Heure de début au plus tôt de la coupure (incluse). Vous ne pouvez définir que |
latest_start_time |
Dernière heure de début de la pause (incluse). Vous ne pouvez définir que |
duration_minutes |
Durée de la pause en minutes. |
rule_increment_minutes |
[Facultatif] Incrément de temps en minutes pour tous les sauts pris en compte dans cette règle de rupture. Si ce champ n'est pas défini, la valeur par défaut est |
BudgetRequirement
Exigences budgétaires pour un intervalle donné.
Champs | |
---|---|
total_budget |
Budget total pour l'intervalle donné. Vous devez indiquer un budget total si la priorité est Si |
start_date_time |
Heure de début à laquelle ce budget s'applique. Si aucune heure de début n'est spécifiée, elle est définie comme étant l'heure de début la plus proche pour toutes les périodes de travail données. |
end_date_time |
Heure de fin à laquelle ce budget s'applique. Si aucune heure de fin n'est spécifiée, elle est définie comme étant la dernière heure de fin de toutes les périodes de travail données. |
priority |
Niveau de priorité pour respecter le budget requis au cours de la période spécifiée. La priorité par défaut est Notez que si cette priorité est plus élevée que d'autres priorités de contraintes et que |
CoverageRequirement
Une exigence de couverture spécifie le nombre d'employés requis pour un ensemble de rôles et/ou de compétences pendant une période donnée et dans un lieu donné. Les intervalles DateTime d'un emplacement particulier ne peuvent pas se chevaucher. Vous pouvez également fournir une liste des ID d'équipes au lieu d'une période et d'un lieu. Seuls les employés pouvant être affectés à un rôle spécifique (ou possédant la compétence spécifique) peuvent répondre à cette exigence.
Pour un poste et/ou une compétence donnés, l'exigence de couverture est remplie lorsqu'au moins target_employee_count
employés travaillent à tout moment de la période (ou pour chaque équipe du shift_ids
). En revanche, l'exigence de couverture n'est pas respectée si, à un moment donné de la période (ou pour n'importe quel poste en shift_ids
), le nombre d'employés est inférieur à target_employee_count
pendant cette période. Il y a toujours plus d'employés actifs que target_employee_count
, mais le résolveur limite le nombre d'employés.
Champs | |
---|---|
start_date_time |
Heure de début de la couverture requise (incluse). S'il est défini, |
end_date_time |
Heure de fin de la condition de couverture (exclue). S'il est défini, |
location_id |
Lieu où les employés sont nécessaires. |
shift_ids[] |
S'ils sont définis, les exigences de poste et de compétences sont appliquées individuellement à chaque ID d'équipe de cette liste. Si les champs "shift_ids" ne sont pas vides, les champs |
role_requirements[] |
Nombre requis d'employés à attribuer aux rôles spécifiés pendant la période. Vous ne devez indiquer qu'un seul élément |
skill_requirements[] |
Nombre requis d'employés possédant les compétences spécifiées et affectés à des équipes pendant la période. Vous ne devez indiquer qu'un seul élément |
RoleRequirement
Nombre requis d'employés à attribuer au rôle spécifié pendant la période.
Champs | |
---|---|
role_id |
ID de rôle pour l'exigence. |
target_employee_count |
Nombre souhaité d'employés affectés au rôle pendant la période. |
priority |
Niveau de priorité pour cette contrainte d'exigence. La priorité par défaut pour toutes les contraintes de ressources est |
SkillRequirement
Nombre requis d'employés qui travaillent pendant la période donnée et possèdent les compétences spécifiées.
Champs | |
---|---|
skill_id |
ID de compétence pour la condition. |
target_employee_count |
Nombre souhaité d'employés ayant la compétence donnée et travaillant pendant la fenêtre de temps. |
priority |
Niveau de priorité pour cette contrainte d'exigence. La priorité par défaut pour toutes les contraintes de ressources est |
DemandCoverageViolation
Spécifie le cas de non-respect de la couverture de la demande pour l'intervalle donné. La demande des employés reste la même pendant tout l'intervalle spécifié.
Champs | |
---|---|
start_date_time |
Date et heure de début de l'intervalle de demande (incluses). Cette valeur est spécifiée à la minute près. |
end_date_time |
Date et heure de fin de l'intervalle de demande (exclues). Cette valeur est spécifiée à la minute près. |
coverage_violation |
Non-respect de la couverture pendant la période spécifiée. Une valeur positive indique que la demande est surcouverte, tandis qu'une valeur négative indique que la demande est sous-couverte. |
Employé
Un employé du personnel à planifier un rendez-vous.
Champs | |
---|---|
id |
Identifiant unique attribué à cet employé. |
role_ids[] |
ID de rôle que cet employé peut exécuter. Vous devez spécifier au moins un rôle. Lorsqu'un employé est affecté à un poste, il se voit également attribuer un seul rôle parmi cette liste. Différents rôles peuvent être attribués à l'employé au cours de la période de planification. |
skill_ids[] |
ID de compétence de cet employé. Cette liste peut être vide. Lorsqu'un employé est affecté à un quart de travail, il utilise n'importe quel sous-ensemble des compétences listées ici pour couvrir les exigences en matière de compétences pendant toute la durée du poste assigné. |
shift_preferences[] |
Modifiez les préférences de cet employé. Les quarts spécifiés ici représentent des quarts auxquels l'employé préférerait être affecté pendant la période de planification. Les ID d'horaires spécifiés dans |
scheduling_constraints[] |
Liste des contraintes de planification pour cet employé. Le niveau de priorité par défaut pour chacune de ces contraintes est |
resource_constraints[] |
Toutes les contraintes de planification supplémentaires non spécifiées dans |
shift_requests[] |
Liste des demandes d'équipes de l'employé. Vous pouvez demander à un employé d'être affecté ou non à des périodes de travail spécifiques. Toutes les attributions d'emploi du temps fixes pour l'employé peuvent être représentées par une |
hourly_contract |
Contrat qui spécifie le taux horaire normal et les heures supplémentaires pour l'employé. |
EmployeeDemand
Spécifie le nombre d'employés nécessaires pour couvrir la demande au cours de l'intervalle DateTime donné.
Champs | |
---|---|
start_date_time |
Début de l'intervalle de temps pour la demande donnée (inclus). Ces valeurs sont lues à la minute près. Les secondes et toutes les unités plus petites sont ignorées. |
end_date_time |
Fin de l'intervalle de temps pour la demande donnée (exclue). Ces valeurs sont lues à la minute près. Les secondes et toutes les unités plus petites sont ignorées. |
employee_count |
Nombre d'employés nécessaires pour couvrir la demande pour cet intervalle. |
EmployeeSchedule
Liste ordonnée de quarts de travail correspondant à un seul ShiftTemplate
devant être attribué à un certain nombre d'employés.
Champs | |
---|---|
shift_template_id |
ID du modèle qui a été utilisé pour générer cet ensemble d'ajustements. |
shifts[] |
Liste des horaires auxquels |
employee_count |
Nombre d'employés devant être affectés à cet ensemble d'équipes pour répondre à la demande. |
ShiftWithEvents
Spécifie les dates de début et de fin, ainsi que la liste des événements fixes d'un décalage généré par le résolveur.
Champs | |
---|---|
start_date_time |
Date et heure de début du quart de travail. Cette valeur est spécifiée à la minute près. Les secondes et les unités inférieures ne sont pas fournies. |
end_date_time |
Date et heure de fin du quart de travail. Cette valeur est spécifiée à la minute près. Les secondes et les unités inférieures ne sont pas fournies. |
events[] |
Liste des événements inclus dans ce décalage, mappés exactement aux éléments |
Événement
Spécifie les dates et heures de début et de fin d'un événement spécifique dans un décalage généré par le résolveur.
Champs | |
---|---|
event_template_id |
ID du modèle qui a été utilisé pour générer cet événement. |
start_date_time |
Date et heure de début de l'événement. Cette valeur est spécifiée à la minute près. Les secondes et les unités inférieures ne sont pas fournies. |
end_date_time |
Date et heure de fin de l'événement. Cette valeur est spécifiée à la minute près. Les secondes et les unités inférieures ne sont pas fournies. |
EventTemplate
Modèle spécifiant les règles pour générer un seul événement qui se produit pendant une équipe. Un événement peut représenter une réunion, une pause, un déjeuner, etc.
Champs | |
---|---|
id |
ID unique de ce modèle. |
minimum_minutes_after_shift_start |
Nombre minimal de minutes pendant lesquelles cet événement peut commencer après le début d'une période de travail. |
maximum_minutes_after_shift_start |
Nombre maximal de minutes pendant lesquelles cet événement peut commencer après le début d'une période de travail. |
duration_minutes |
Durée fixe de cet événement, en minutes. |
start_time_increment_minutes |
Incrément de temps (en minutes) utilisé pour générer l'ensemble des heures de début d'événements possibles entre |
HourlyContract
Spécifie un tarif horaire de base, des différentiels de taux et des multiplicateurs d'heures supplémentaires pour déterminer la rémunération d'un employé. Notez que les réglementations en fonction du pays peuvent nécessiter un calcul différent pour la rémunération des heures supplémentaires. Le résolveur évalue la rémunération des heures supplémentaires de façon à minimiser un indicateur du coût total ou à respecter un budget (voir BudgetRequirement
). Il n'est pas destiné à être utilisé pour calculer la masse salariale.
Champs | |
---|---|
base_hourly_rate |
Rémunération pour le travail effectué en dehors des heures supplémentaires. Si plusieurs taux s'appliquent à l'employé, des différentiels de taux sont appliqués par rapport à ce tarif horaire de base. En outre, s'il existe plusieurs tarifs, le tarif horaire de base doit être le plus faible de ces tarifs. |
hourly_rate_shift_differentials |
Différence de tarif horaire, payé en plus de |
overtime_periods[] |
Liste de toutes les périodes pour lesquelles des heures supplémentaires doivent être calculées. Ces périodes ne doivent pas se chevaucher. |
OvertimePeriod
Période fixe et récurrente régulièrement (généralement 168 heures ou sept périodes consécutives de 24 heures) utilisée pour déterminer le montant de la rémunération des heures supplémentaires. Chaque période a un multiplicateur de heures supplémentaires (par exemple, 1,5) par rapport au base_hourly_rate
et une limite du nombre d'heures considérées comme du travail régulier (hors heures supplémentaires). Tout quart de travail qui chevauche la fenêtre de temps start_date_time
(incluse) et end_date_time
(exclue) est comptabilisé dans le nombre total d'heures travaillées dans la période. Si le chevauchement est partiel, seules les heures qui se chevauchent sont comptabilisées.
Champs | |
---|---|
overtime_multiplier |
Multiplicateur pour calculer le taux horaire des heures supplémentaires (il doit être supérieur ou égal à 1,0). Le tarif horaire des heures supplémentaires est généralement calculé comme suit : |
start_date_time |
Heure de début de la période de prolongation. Si un quart de travail chevauche ce créneau horaire, les heures correspondantes sont comptabilisés à partir du |
end_date_time |
Heure de fin de la période de prolongation. Si un quart de travail chevauche cette heure, les heures correspondantes sont comptabilisées jusqu'à |
maximum_regular_hours |
Nombre maximal d'heures de travail payées à un taux normal (hors heures supplémentaires). Cette quantité doit être positive. |
Priorité
Niveau de priorité de toute contrainte liée au planning d'un employé ou aux exigences de couverture. (par exemple, SchedulingConstraint
, ResourceConstraint
, ShiftRequest
et CoverageRequirement
). Comme il peut y avoir des contraintes contradictoires, il n'est pas toujours possible de satisfaire toutes les contraintes. Ainsi, chaque type de contrainte a une priorité (donnée par l'utilisateur ou par défaut) qui informe le résolveur de l'importance relative de toutes les contraintes données pour un calendrier complet.
Enums | |
---|---|
PRIORITY_UNSPECIFIED |
Niveau de priorité inconnu. |
PRIORITY_LOW |
Niveau de priorité le plus bas. Les contraintes avec cette priorité sont moins importantes que les autres. Ils sont les premiers à être considérés comme non conformes si aucune solution plausible n'est trouvée. |
PRIORITY_MEDIUM |
Niveau de priorité moyen. Les contraintes avec cette priorité sont plus importantes que les contraintes de priorité PRIORITY_LOW , mais moins importantes que les contraintes de priorité PRIORITY_HIGH . Si aucune solution réalisable ne peut être trouvée après avoir assoupli toutes les contraintes avec la priorité PRIORITY_LOW , alors les contraintes de priorité PRIORITY_MEDIUM sont considérées comme la prochaine violation. |
PRIORITY_HIGH |
Niveau de priorité le plus élevé. Les contraintes avec ce niveau de priorité sont les plus importantes. Ils sont les derniers à considérer comme non-respect des règles si aucune solution réalisable n'est trouvée après l'assouplissement des contraintes des niveaux de priorité inférieurs. |
PRIORITY_MANDATORY |
Niveau de priorité qui représente un élément que le résolveur ne peut pas violer. Si le résolveur renvoie SolutionStatus.INFEASIBLE , cela peut être dû à un trop grand nombre de contraintes PRIORITY_MANDATORY . |
ResourceConstraint
Contrainte générale qui limite la quantité d'une certaine "ressource" utilisée par un employé. Il s'agit d'une version abstraite de SchedulingConstraint
, plus spécifique, et plus flexible pour l'utilisateur. De nombreuses contraintes de planification qui ne peuvent pas être spécifiées dans SchedulingConstraint.type
peuvent être spécifiées à l'aide de ce message.
Champs | |
---|---|
priority |
Niveau de priorité de cette contrainte de ressource. La priorité par défaut pour toutes les contraintes de ressources est |
resource_usages |
Quantité de ressources utilisée par les équipes. Par exemple, si cette contrainte s'applique aux heures minimum et maximum de travail d'un employé au cours d'une semaine spécifique, cette carte contiendra les quarts de travail qui se produisent au cours de cette semaine et la durée de chaque équipe en heures. |
minimum_resource_usage |
Utilisation minimale des ressources pour respecter une contrainte de ressource. |
maximum_resource_usage |
Utilisation maximale des ressources pour qu'une contrainte de ressource soit respectée. |
SchedulingConstraint
Contrainte de planification spécifique à un employé particulier. La contrainte spécifiée n'est appliquée que pendant l'intervalle [start_date_time,
end_date_time)
donné.
Champs | |
---|---|
priority |
Niveau de priorité pour cette contrainte de planification. La priorité par défaut de toutes les contraintes de planification est |
start_date_time |
Heure de début à laquelle cette contrainte de planification s'applique (incluse). |
end_date_time |
Heure de fin d'application de cette contrainte de planification (exclue). |
Champ d'union type . Type de contrainte spécifiée. Chaque contrainte n'est appliquée que pendant la période spécifiée ci-dessus. type ne peut être qu'un des éléments suivants : |
|
minimum_minutes |
Durée minimale de travail (en minutes) de l'employé. Si l'employé est affecté à un quart de travail qui chevauche (entièrement ou partiellement) la fenêtre horaire, le nombre de minutes de chevauchement de la période de travail est inclus dans ce décompte. |
maximum_minutes |
Durée maximale (en minutes) pendant laquelle l'employé peut travailler dans la fenêtre de temps. Si l'employé est affecté à un quart de travail qui chevauche (entièrement ou partiellement) la fenêtre horaire, le nombre de minutes de chevauchement de la période de travail est inclus dans ce décompte. |
minimum_consecutive_work_days |
Nombre minimal de jours consécutifs pendant lesquels l'employé peut travailler. Un employé travaille un jour précis s'il est affecté à un quart de travail qui commence ce jour-là. Tout quart de travail auquel l'employé est attribué et qui commence dans la fenêtre de temps est inclus dans ce décompte. |
maximum_consecutive_work_days |
Nombre maximal de jours consécutifs pendant lesquels l'employé peut travailler. Un employé travaille un jour précis s'il est affecté à un quart de travail qui commence ce jour-là. Tout quart de travail auquel l'employé est attribué et qui commence dans la fenêtre de temps est inclus dans ce décompte. |
minimum_shift_count |
Nombre minimal d'heures de travail que l'employé peut effectuer. Tous les horaires auxquels l'employé est affecté et qui chevauchent entièrement la période est inclus dans ce décompte. |
maximum_shift_count |
Nombre maximal d'heures de travail autorisées par l'employé. Tous les horaires auxquels l'employé est affecté et qui chevauchent entièrement la période est inclus dans ce décompte. |
minimum_rest_minutes |
Nombre minimal de minutes pendant lesquelles l'employé doit se reposer après la fin d'un quart de travail avant d'être affecté à un autre quart. Cette contrainte s'applique à chaque paire de quarts de travail entièrement incluse dans [ |
Moment de la journée
Un quart de travail spécifie une fenêtre de temps fixe pendant laquelle les employés peuvent travailler.
Champs | |
---|---|
id |
ID unique attribué à ce changement. |
location_id |
ID de la zone géographique où ce travail de changement est effectué. Cette valeur n'est pas obligatoire. |
start_date_time |
Heure de début du quart de travail (incluse). |
end_date_time |
Heure de fin du quart de travail (exclue). Actuellement, le résolveur n'accepte que les équipes de moins de 24 heures. |
break_rules[] |
Liste des règles de non-respect des règles appliquées pendant le quart de travail. Les employés qui effectuent ce quart de travail bénéficient d'une pause par |
ShiftAssignment
Attribuer un rôle à un employé
Champs | |
---|---|
employee_id |
ID de l'employé en cours d'attribution. |
shift_id |
ID d'équipe attribué à l'employé. |
role_id |
ID de rôle attribué à l'employé pour le quart de travail. |
breaks[] |
Liste des pauses pour cette attribution de quarts. |
ShiftGenerationSolutionStatus
État de la solution fourni dans la réponse d'un résolveur.
Enums | |
---|---|
SHIFT_GENERATION_SOLUTION_STATUS_UNSPECIFIED |
État de la réponse non spécifié. |
SHIFT_GENERATION_SOLVED |
Le résolveur a trouvé une solution dans le délai indiqué. |
SHIFT_GENERATION_NOT_SOLVED |
Un problème a empêché le résolveur de générer des changements. |
SHIFT_GENERATION_NOT_SOLVED_DEADLINE_EXCEEDED |
Les équipes n'ont pas pu être générées pour couvrir la demande dans le délai imparti. |
ShiftPreference
Préférence numérique pour un ID d'ajustement particulier.
Champs | |
---|---|
shift_id |
Identifiant Shift pour lequel la préférence est spécifiée. |
preference |
Une valeur de préférence plus élevée indique un changement plus souhaitable. |
ShiftRequest
Demande d'affectation ou de non-affectation à des équipes spécifiques d'un employé.
Champs | |
---|---|
priority |
Niveau de priorité de cette demande de planification. La priorité par défaut de toutes les requêtes de planification est |
shift_ids[] |
ID des équipes de la requête de planification. |
type |
Type de demande, par exemple, si la demande est attribuée ou non à l'ensemble d'équipes. |
ShiftTemplate
Modèle spécifiant les règles pour générer des quarts. Un quart de travail est une unité de travail qui spécifie une heure de début et une heure de fin, et qui peut contenir des événements (par exemple, déjeuner, pauses, etc.). Un changement sera attribué à une date spécifique dans la réponse.
Champs | |
---|---|
id |
ID unique de ce modèle. |
earliest_start_time |
Première heure de la journée à laquelle une équipe peut commencer. Cette valeur est spécifiée en heures et en minutes. Les secondes et les nano-unités sont ignorées. |
latest_start_time |
Dernière heure de la journée à laquelle une équipe peut commencer. Cette valeur est spécifiée en heures et en minutes. Les secondes et les nano-unités sont ignorées. Si cette valeur est inférieure à |
duration_minutes |
Durée fixe d'une période de travail générée par ce modèle. |
start_time_increment_minutes |
Incrément de temps (en minutes) utilisé pour générer l'ensemble des heures de début possibles entre |
days_off_count_per_week |
Nombre fixe de jours de repos par semaine. Un employé bénéficie d'un jour de congé donné s'il n'est pas affecté à un quart de travail qui commence ce jour-là. Une semaine dure sept jours et commence le dimanche. |
event_templates[] |
Règles permettant de générer des événements pour chaque équipe. Un seul événement sera inclus dans chaque quart de travail pour chaque événement spécifié. |
minimum_interevent_gap_minutes |
Nombre minimal de minutes entre la fin d'un événement et le début du suivant. |
maximum_employee_count |
Nombre maximal d'employés pouvant être affectés à toutes les périodes de travail générées par ce modèle. |
SolutionStatus
État de la solution (planification) fourni dans la réponse d'un résolveur.
Enums | |
---|---|
SOLUTION_STATUS_UNSPECIFIED |
État de la réponse non spécifié. |
FEASIBLE |
Le calendrier renvoyé est faisable, mais peut ne pas être optimal. |
OPTIMAL |
Le calendrier renvoyé est optimal. |
INFEASIBLE |
Il n'existe aucun calendrier réalisable pour les contraintes données. Le résolveur peut renvoyer cette valeur si un sous-ensemble des contraintes avec le niveau de priorité PRIORITY_MANDATORY ne peut pas être satisfait. |
NOT_SOLVED |
Aucune programmation n'a été trouvée. |
NOT_SOLVED_DEADLINE_EXCEEDED |
Aucune planification n'a été trouvée dans le délai indiqué. |
SolveParameters
Paramètres qui contrôlent une seule solution du problème de planification des équipes.
Champs | |
---|---|
time_limit |
Temps maximal que le résolveur doit consacrer au problème. Si ce champ n'est pas spécifié, la valeur par défaut est de 1 minute. Cette valeur n'est pas une limite stricte et ne tient pas compte des frais de communication. La latence attendue pour résoudre le problème peut dépasser légèrement cette valeur. |
SolverConfig
Spécifie des paramètres supplémentaires pour résoudre le problème de génération d'équipes.
Champs | |
---|---|
time_limit |
Temps maximal que le résolveur doit consacrer au problème. Si ce champ n'est pas spécifié, la valeur par défaut est de 1 minute. Le choix d'une limite de temps doit dépendre de l'ampleur du problème. Par exemple, lors de la résolution d'une instance de 7 jours avec 2 Cette valeur n'est pas une limite stricte et ne tient pas compte des frais de communication. La latence attendue pour résoudre le problème peut dépasser légèrement cette valeur. |
multi_day_schedule |
Si la valeur est "true", le résolveur génère des |
shift_events_can_change |
Si la valeur est "true", les |
WorkStatus
Indique si un employé travaille ou non.
Enums | |
---|---|
WORK_STATUS_UNSPECIFIED |
État professionnel inconnu. |
STATUS_WORK |
Statut représentant un employé qui travaille. |
STATUS_NOT_WORK |
Statut représentant un employé qui ne travaille pas. |