索引
Break
(メッセージ)BreakRule
(メッセージ)BudgetRequirement
(メッセージ)CoverageRequirement
(メッセージ)CoverageRequirement.RoleRequirement
(メッセージ)CoverageRequirement.SkillRequirement
(メッセージ)DemandCoverageViolation
(メッセージ)Employee
(メッセージ)EmployeeDemand
(メッセージ)EmployeeSchedule
(メッセージ)EmployeeSchedule.ShiftWithEvents
(メッセージ)EmployeeSchedule.ShiftWithEvents.Event
(メッセージ)EventTemplate
(メッセージ)HourlyContract
(メッセージ)HourlyContract.OvertimePeriod
(メッセージ)Priority
(列挙型)ResourceConstraint
(メッセージ)SchedulingConstraint
(メッセージ)Shift
(メッセージ)ShiftAssignment
(メッセージ)ShiftGenerationSolutionStatus
(列挙型)ShiftPreference
(メッセージ)ShiftRequest
(メッセージ)ShiftTemplate
(メッセージ)SolutionStatus
(列挙型)SolveParameters
(メッセージ)SolverConfig
(メッセージ)WorkStatus
(列挙型)
休憩
従業員がシフト中に業務を中断する期間。
フィールド | |
---|---|
start_date_time |
休憩の開始時間。 |
duration_minutes |
休憩時間(分)。 |
BreakRule
シフト内で休憩を開始できるタイミングとその時間を決定するルール。対象となるすべての挿入点のリストは、rule_increment_minutes
単位で決定されます。たとえば、休憩ルールが 10:00 から 11:00 の間に開始できる 30 分の休憩をモデル化していて、ルールの増分が 20 分の場合、考慮される休憩のリストは [10:00, 10:30], [10:20, 10:50], [10:40] [10:10] [10:10] [11:1]
フィールド | |
---|---|
earliest_start_time |
休憩の最も早い開始時間(指定した時間を含む)。 |
latest_start_time |
ブレークの最も遅い開始時刻(この値を含む)。 |
duration_minutes |
休憩時間(分)。 |
rule_increment_minutes |
[省略可] このブレークルールで考慮できるすべてのブレークの増分時間(分)。設定しない場合、 |
BudgetRequirement
特定の期間の予算要件。
フィールド | |
---|---|
total_budget |
特定の期間の合計予算。優先度が
|
start_date_time |
この予算を適用する開始時間です。開始時間が指定されていない場合は、指定されたすべてのシフトの最も早い開始時間に設定されます。 |
end_date_time |
この予算が適用される期間の終了時間。終了時間が指定されていない場合、指定されたすべてのシフトの最も遅い終了時間に設定されます。 |
priority |
指定された時間枠内で予算要件を満たすことの優先度。デフォルトの優先度は この優先度が他の制約の優先度よりも高く、 |
CoverageRequirement
適用範囲の要件では、特定の期間や勤務地において、一連の役割やスキルに必要な従業員数を指定します。特定の場所の日時の間隔を重複させることはできません。または、時間枠と場所の代わりに、シフト ID のリストを指定することもできます。この要件を満たすことができるのは、特定の役割を割り当てることができる(または特定のスキルを持つ)従業員のみです。
特定の役割やスキルについて、時間枠内のあらゆる時点(または shift_ids
のシフトごと)に少なくとも target_employee_count
名の従業員が勤務すると、保障要件が満たされます。一方、時間枠(または shift_ids
のシフトのいずれか)で、時間枠の任意の時点で従業員数が target_employee_count
人未満の場合は、保障要件の違反となります。target_employee_count
よりも多くの従業員が勤務していても要件を満たしますが、人員の過剰な配置はソルバーによって最小限に抑えられます。
フィールド | |
---|---|
start_date_time |
保証範囲の要件の開始時間(両端を含む)。設定する場合は、 |
end_date_time |
保証範囲の要件の終了時間(この時間を含まない)。設定する場合は、 |
location_id |
従業員が必要な場所。 |
shift_ids[] |
設定した場合、ロールとスキル要件はこのリスト内のすべてのシフト ID に個別に適用されます。Shift_ids が空でない場合は、 |
role_requirements[] |
期間中に指定されたロールに割り当てる必要がある従業員数。ロール ID ごとに最大で 1 つの |
skill_requirements[] |
時間枠の中でシフトに割り当てる必要がある、指定されたスキルを持つ従業員数。各スキル ID に指定できる |
RoleRequirement
期間中に指定されたロールに割り当てる必要がある従業員数。
フィールド | |
---|---|
role_id |
要件のロール ID。 |
target_employee_count |
期間中にロールに割り当てる必要のある従業員数。 |
priority |
この要件制約の優先度。すべてのリソース制約のデフォルトの優先度は |
SkillRequirement
指定のスキルを持つ従業員のうち、期間中に業務を行う必要がある人数。
フィールド | |
---|---|
skill_id |
要件のスキル ID。 |
target_employee_count |
所定のスキルを持つ、期間中に業務を遂行する従業員の目標数。 |
priority |
この要件制約の優先度。すべてのリソース制約のデフォルトの優先度は |
DemandCoverageViolation
指定した間隔のデマンド カバレッジ違反を指定します。従業員の需要は、指定された期間全体を通じて同じです。
フィールド | |
---|---|
start_date_time |
デマンド期間の開始日時(両端を含む)。この値は分単位で指定されます。 |
end_date_time |
デマンド期間の終了日時(この日時は含まない)。この値は分単位で指定されます。 |
coverage_violation |
指定した間隔でのカバレッジ違反。正の値は需要が過大であることを示し、負の値は需要が過小に含まれていることを示します。 |
従業員
スケジュールを設定する従業員内の従業員。
フィールド | |
---|---|
id |
この従業員に割り当てられた一意の ID。 |
role_ids[] |
この従業員が実行できるロール ID。少なくとも 1 つのロールを指定する必要があります。従業員がシフトに割り当てられると、このリストから 1 つのロールにも割り当てられます。この従業員は、スケジュール期間中にさまざまなロールに割り当てられることがあります。 |
skill_ids[] |
この従業員が所有しているスキル ID。このリストは空でもかまいません。シフトに割り当てられた従業員は、ここにリストされているスキルのサブセットを使用して、割り当てられたシフト期間全体を通じてスキル要件に対応します。 |
shift_preferences[] |
この従業員の設定を変更します。ここで指定するシフトは、スケジューリング期間中に従業員に割り当てることを希望するシフトを表します。 |
scheduling_constraints[] |
この従業員のスケジュールの制約のリスト。これらの各制約のデフォルトの優先度は |
resource_constraints[] |
|
shift_requests[] |
従業員のシフト リクエストのリスト。特定のシフトに従業員の割り当てをリクエストすることも、割り当てないリクエストを指定することもできます。従業員の固定スケジュール割り当ては、優先度 |
hourly_contract |
従業員の通常勤務と残業時間給を定めた契約。 |
EmployeeDemand
指定した DateTime 間隔の需要に対応するために必要な従業員数を指定します。
フィールド | |
---|---|
start_date_time |
指定されたデマンド期間の開始時点(この値を含む)。これらの値は分単位で読み上げられます。秒とそれより小さい単位はすべて無視されます。 |
end_date_time |
特定のデマンド期間の終了時間(この値を含まない)。これらの値は分単位で読み上げられます。秒とそれより小さい単位はすべて無視されます。 |
employee_count |
この間隔の需要をカバーするために必要な従業員数。 |
EmployeeSchedule
複数の従業員に割り当てる 1 つの ShiftTemplate
に対応するシフトの順序付きリスト。
フィールド | |
---|---|
shift_template_id |
この一連のシフトを生成するために使用されたテンプレートの ID。 |
shifts[] |
|
employee_count |
需要に対応するために、この一連のシフトに割り当てる必要がある従業員数。 |
ShiftWithEvents
開始日と終了日、およびソルバーによって生成されたシフトの固定イベントのリストを指定します。
フィールド | |
---|---|
start_date_time |
シフトの開始日時。この値は分まで指定されます。秒以下の単位は指定されません。 |
end_date_time |
シフトの終了日時。この値は分まで指定されます。秒以下の単位は指定されません。 |
events[] |
このシフトに含まれるイベントのリスト。 |
イベント
ソルバーによって生成されたシフト内の特定のイベントの開始 DateTime と終了 DateTime を指定します。
フィールド | |
---|---|
event_template_id |
このイベントの生成に使用されたテンプレートの ID。 |
start_date_time |
イベントの開始日時。この値は分まで指定されます。秒以下の単位は指定されません。 |
end_date_time |
予定の終了日時。この値は分まで指定されます。秒以下の単位は指定されません。 |
EventTemplate
シフト中に発生する単一のイベントを生成するためのルールを指定するテンプレート。イベントは、会議、休憩、昼食などを表します。
フィールド | |
---|---|
id |
このテンプレートの一意の ID。 |
minimum_minutes_after_shift_start |
シフトを開始してからこのイベントを開始できる最短時間(分)。 |
maximum_minutes_after_shift_start |
シフトを開始してからこのイベントを開始できる最大時間(分)。 |
duration_minutes |
このイベントの固定期間(分単位)。 |
start_time_increment_minutes |
一連のイベント開始時間( |
HourlyContract
従業員の報酬を決定するため、基本時給、料金差、残業の乗数を指定します。勤務地の規制により、残業報酬の計算方法が異なる場合があります。ソルバーは、総費用の近似値を最小化するか予算を満たすように、残業報酬の概算を出します(BudgetRequirement
を参照)。これは、給与の計算ツールを目的としたものではありません。
フィールド | |
---|---|
base_hourly_rate |
残業以外の勤務時間に対する報酬。従業員に複数のレートが適用される場合は、この基本時間単価を基準にした料金の差が適用されます。また、複数の料金がある場合は、1 時間あたりの基本料金がこれらの料金の最小値である必要があります。 |
hourly_rate_shift_differentials |
時間あたりの料金の差分。 |
overtime_periods[] |
残業を計算する必要があるすべての期間のリスト。重複する期間は指定できません。 |
OvertimePeriod
残業報酬の金額を決定するために使用される、固定で定期的に繰り返される期間(通常は 168 時間、または連続する 24 時間 7 回)。各期間には延長戦の乗数(例:1.5)と、base_hourly_rate
の通常の勤務時間(残業以外)とみなされる時間数の制限を考慮します。start_date_time
(この値を含む)および end_date_time
(含まれない)の時間枠と重なるシフトは、その期間の総労働時間数にカウントされます。重複が部分的な場合は、重複する時間のみがカウントされます。
フィールド | |
---|---|
overtime_multiplier |
残業の時給を計算するための乗数(1.0 以上の値)。通常、残業時間あたりの料金は |
start_date_time |
超過期間の開始時間。この時間帯にシフトが重なる場合、そのシフトの時間は |
end_date_time |
残業期間の終了時間。この時間帯にシフトが重複している場合は、その時間帯が |
maximum_regular_hours |
通常の(残業以外の)料金で支払われる業務時間の上限。この数量は正の数で指定してください。 |
優先度
従業員のスケジュールまたは補償要件に対する制約の優先度。たとえば、SchedulingConstraint
、ResourceConstraint
、ShiftRequest
、CoverageRequirement
などです。競合する制約が存在する可能性があるため、すべての制約を必ずしも満たすとは限りません。そのため、各タイプの制約には優先度(ユーザーまたはデフォルトによる指定)があり、完全なスケジュールに適用されるすべての制約の相対的な重要度をソルバーに伝えます。
列挙型 | |
---|---|
PRIORITY_UNSPECIFIED |
不明な優先度。 |
PRIORITY_LOW |
最も低い優先度。この優先度の制約は、他の制約ほど重要ではありません。適切な解決策が見つからなかった場合、最初に違反と見なされる。 |
PRIORITY_MEDIUM |
優先度: 中。この優先度の制約は、優先度が PRIORITY_LOW の制約よりも重要ですが、PRIORITY_HIGH 優先度の制約よりも重要度は低くなります。優先度 PRIORITY_LOW の制約をすべて緩和しても実現可能な解が見つからなかった場合は、優先度 PRIORITY_MEDIUM の制約が次に違反とみなされます。 |
PRIORITY_HIGH |
最も高い優先度。この優先度の制約が最も重要です。これは、優先度の低い制約を緩和した後、実現可能な解決策が見つからなかった場合に、最後に違反とみなされるものです。 |
PRIORITY_MANDATORY |
ソルバーが違反できないものを表す優先度。ソルバーが SolutionStatus.INFEASIBLE を返す場合は、PRIORITY_MANDATORY 制約が多すぎる可能性があります。 |
ResourceConstraint
従業員が使用する特定の「リソース」の量を制限する一般的な制約。これは、より具体的な SchedulingConstraint
の抽象バージョンで、ユーザーにとってより柔軟です。SchedulingConstraint.type
で指定できない多くのスケジューリング制約は、代わりにこのメッセージを使用して指定できます。
フィールド | |
---|---|
priority |
このリソース制約の優先度。すべてのリソース制約のデフォルトの優先度は |
resource_usages |
シフトで使用されるリソースの量。たとえば、この制約が特定の週の従業員の最小労働時間と最長労働時間に適用される場合、このマップには、その週に発生したシフトと各シフトの長さが時間単位で示されます。 |
minimum_resource_usage |
リソース制約を満たすための最小リソース使用量。 |
maximum_resource_usage |
リソース制約を満たすための最大リソース使用量。 |
SchedulingConstraint
特定の従業員に対する特定のスケジュール制約。指定された制約は、指定された間隔 [start_date_time,
end_date_time)
にのみ適用されます。
フィールド | |
---|---|
priority |
このスケジューリング制約の優先度。すべてのスケジュール制約のデフォルトの優先度は |
start_date_time |
このスケジュール制約が適用される開始時間(両端を含む)。 |
end_date_time |
このスケジュール制約が適用される終了時間(この時間を含まない)。 |
共用体フィールド type 。指定する制約のタイプ。各制約は、上で指定した時間枠内でのみ適用されます。type は次のいずれかになります。 |
|
minimum_minutes |
従業員が勤務できる最短時間(分)。従業員が時間枠に(全体的または部分的に)重なるシフトに割り当てられる場合、そのシフトが時間枠と重複する時間(分)もこの数に含まれます。 |
maximum_minutes |
時間枠内で従業員が勤務できる最長時間(分)。従業員が時間枠に(全体的または部分的に)重なるシフトに割り当てられる場合、そのシフトが時間枠と重複する時間(分)もこの数に含まれます。 |
minimum_consecutive_work_days |
従業員が勤務できる最短連続日数。従業員は、特定の日に開始されるシフトに割り当てられている場合、その日に勤務します。その従業員に割り当てられたシフトが、その時間枠に始まるものはすべて、この数に含まれます。 |
maximum_consecutive_work_days |
従業員が勤務できる最長連続日数。従業員は、特定の日に開始されるシフトに割り当てられている場合、その日に勤務します。その従業員に割り当てられたシフトが、その時間枠に始まるものはすべて、この数に含まれます。 |
minimum_shift_count |
従業員が勤務できる最低シフト数。その従業員に割り当てられたシフトが時間枠と完全に重複している場合は、この数に含まれます。 |
maximum_shift_count |
従業員が勤務できるシフトの最大数。その従業員に割り当てられたシフトが時間枠と完全に重複している場合は、この数に含まれます。 |
minimum_rest_minutes |
あるシフトの終了後、従業員が別のシフトに割り当てられるまでの休憩時間の最小分数。この制約は、[ |
Shift
シフトでは、従業員が勤務できる固定の時間枠を指定します。
フィールド | |
---|---|
id |
このシフトに割り当てられた一意の ID。 |
location_id |
このシフトが行われる勤務地の ID。空欄でもかまいません。 |
start_date_time |
シフトの開始時間(両端を含む)。 |
end_date_time |
シフトの終了時間(この時間を含まない)。現在、ソルバーでは 24 時間未満のシフトのみが許可されます。 |
break_rules[] |
シフト中に発生したブレークルールのリスト。このシフトを行う従業員には、 |
ShiftAssignment
シフトロールを割り当てる従業員。
フィールド | |
---|---|
employee_id |
割り当てる従業員 ID。 |
shift_id |
従業員に割り当てられたシフト ID。 |
role_id |
シフトで従業員が割り当てられたロール ID。 |
breaks[] |
このシフト割り当ての休憩のリスト。 |
ShiftGenerationSolutionStatus
解法のレスポンスで提供されるソリューション ステータス。
列挙型 | |
---|---|
SHIFT_GENERATION_SOLUTION_STATUS_UNSPECIFIED |
レスポンスの未指定のステータス。 |
SHIFT_GENERATION_SOLVED |
ソルバーが、指定された制限時間内に解を見つけた。 |
SHIFT_GENERATION_NOT_SOLVED |
ある問題により、ソルバーがシフトを生成できませんでした。 |
SHIFT_GENERATION_NOT_SOLVED_DEADLINE_EXCEEDED |
指定された制限時間内に需要に対応できる調整を行うことができませんでした。 |
ShiftPreference
特定のシフト ID の数値設定。
フィールド | |
---|---|
shift_id |
設定が指定されているシフト ID。 |
preference |
優先値が大きいほど、望ましいシフトを示します。 |
ShiftRequest
従業員の特定のシフトへの割り当てまたは割り当て解除のリクエスト。
フィールド | |
---|---|
priority |
このスケジュール リクエストの優先度。すべてのスケジューリング リクエストのデフォルトの優先度は |
shift_ids[] |
スケジューリング リクエストのシフト ID。 |
type |
リクエストの種類(リクエストが一連のシフトに割り当てられているかどうかなど)。 |
ShiftTemplate
シフトを生成するためのルールを指定するテンプレート。シフトとは、開始時間と終了時間を指定する作業単位であり、イベント(昼食、休憩など)が含まれる場合があります。シフトは回答の特定の日付に割り当てられます。
フィールド | |
---|---|
id |
このテンプレートの一意の ID。 |
earliest_start_time |
シフトを開始する最も早い時間。この値は時間と分で指定します。秒と nano は無視されます。 |
latest_start_time |
シフトを開始する最後の時刻。この値は時間と分で指定します。秒と nano は無視されます。この値が |
duration_minutes |
このテンプレートによって生成されたシフトの固定期間。 |
start_time_increment_minutes |
|
days_off_count_per_week |
1 週間の休日日数は固定されています。従業員がその日に始まるシフトに割り当てられていない場合、その日は休みになります。1 週間は 7 日間で、日曜日から始まります。 |
event_templates[] |
シフトごとにイベントを生成するためのルール。指定した各イベントのシフトごとに、1 つのイベントのみが含まれます。 |
minimum_interevent_gap_minutes |
イベントの終了から次のイベントの開始までの時間の最小値(分)。 |
maximum_employee_count |
このテンプレートで生成されたすべてのシフトに割り当てることができる従業員の最大数。 |
SolutionStatus
ソルバーの応答で提供されるソリューション(スケジュール)のステータス。
列挙型 | |
---|---|
SOLUTION_STATUS_UNSPECIFIED |
レスポンスの未指定のステータス。 |
FEASIBLE |
返されるスケジュールは可能ですが、最適ではない可能性があります。 |
OPTIMAL |
返されるスケジュールは最適な状態です。 |
INFEASIBLE |
指定された制約には実行可能なスケジュールが存在しません。優先順位が PRIORITY_MANDATORY の制約のサブセットを満たせない場合、ソルバーはこの値を返します。 |
NOT_SOLVED |
スケジュールが見つかりませんでした。 |
NOT_SOLVED_DEADLINE_EXCEEDED |
指定された制限時間内にスケジュールが見つかりませんでした。 |
SolveParameters
シフト スケジューリング問題の 1 つの解き方を制御するパラメータ。
フィールド | |
---|---|
time_limit |
解法が問題に費やす最大時間。設定しない場合、デフォルトは 1 分です。 この値はハードリミットではなく、通信のオーバーヘッドを考慮していません。問題を解決するために予想されるレイテンシは、この値をわずかに超えることがあります。 |
SolverConfig
シフト生成の問題を解決するための追加のパラメータを指定します。
フィールド | |
---|---|
time_limit |
解法が問題に費やす最大時間。設定しない場合、デフォルトは 1 分です。制限時間は、問題の規模に応じて選択する必要があります。たとえば、2 つの この値はハードリミットではなく、通信のオーバーヘッドを考慮していません。問題を解決するために予想されるレイテンシは、この値をわずかに超えることがあります。 |
multi_day_schedule |
true の場合、ソルバーは複数のシフトを含む |
shift_events_can_change |
true の場合、複数日にわたる |
WorkStatus
従業員が勤務中かどうか。
列挙型 | |
---|---|
WORK_STATUS_UNSPECIFIED |
作業ステータスが不明です。 |
STATUS_WORK |
働いている従業員を表すステータス。 |
STATUS_NOT_WORK |
非勤務従業員を表すステータス。 |