予定表テーブルには、ビジネスに加えて、顧客サービスの予定表と休日のスケジュールのデータが格納されます。 各カレンダーは、特定のタイム ゾーンに対して設定されます。
カレンダーは、サービスまたはリソースの可用性を表します。 予定表は calendarrule 行に関連しています。これには、カレンダーに含まれるイベントの期間、開始時刻と終了時刻、および定期的なパターンに関する詳細が含まれます。
Microsoft Dataverse には、次の 2 種類の予定表ルールがあります。
ルート: 内部カレンダーを含むカレンダー ルール、または入れ子になった (リーフ) ルールを持つカレンダー ルール。 ルートカレンダールールの内部カレンダーは、
CalendarRule.InnerCalendarId列を使用して指定できます。 ルート ルールのCalendarRule.InnerCalendarIdの列値は、リーフ ルールのCalendarRule.CalendarIdの列値と同じです。リーフ: 内部カレンダーを含まないカレンダー ルール。したがって、"分岐" の末尾です。
カレンダー ルールは優先順位を示すために順序付けまたはランク付けされ、ルールは重複する可能性があります。 入れ子になったルールの展開では、ルールの期間 (エクステント) が定義されます。
CalendarRule.ExtentCode属性を使用して、ルール拡張の重複の処理方法を定義できます。たとえば、ルールの期間または範囲の両方を表示するか、1 つだけ含めるかを定義できます。 これらの機能は、1 つのサービス カレンダーの冬と夏の月の異なるシフト スケジュールなど、繰り返しパターンを提供します。
カレンダーは、作業スケジュールの高度な抽象化を表すルールと入れ子になったカレンダーの複雑なツリーにすることができます。 予定表テーブルは、単純なビューに変換する ExpandCalendarRequest メッセージをサポートしています。これは、特定の範囲での可用性を決定する時間ブロックの配列です。