Newer Version Available
GetAppointmentSlotsInput クラス
予定の時間枠は、Salesforce Scheduler のデータモデル設定に基づいて決定されます。以下に、データ設定時に検討できる要件をいくつか示します。
- 要求を作成する前に、Salesforce Scheduler を設定します。設定には、サービスリソース、サービステリトリーメンバー、作業種別グループ、作業種別、作業種別グループメンバー、およびサービステリトリー作業種別の作成または設定が含まれます。詳細は、「Salesforce Scheduler のビジネス情報の管理」を参照してください。
- サービステリトリー作業種別を使用して、リクエストボディ内の各テリトリーにマップされる作業種別を設定します。作業種別グループメンバーを使用して、作業種別グループに同一の作業種別をマップします。
以下の要素は、時間枠が計算され、返される方法に影響します。
- 営業時間全体で異なるタイムゾーンが処理され、結果は常に UTC で返されます。
- リソースは、割り当てられたリソースオブジェクトの必須リソースとしてマークする必要があります。
- サービス予定に割り当てられたリソースの状況カテゴリが、[キャンセル済み]、[完了不可]、および [完了] 以外の場合、リソースは利用不可と見なされます。
- すべての種別の [リソース不在] は、開始から終了まで利用不可と見なされます。
- 以下の作業種別レコードの項目 (設定されている場合) は、時間枠要件の調整に使用されます。詳細は、「Salesforce Scheduler での作業種別の作成」を参照してください。
パラメーター 説明 時間枠開始 現在の時刻 + 時間枠開始より早い時間枠は返されません。 時間枠終了 現在の時刻 + 時間枠終了より遅い時間枠は返されません。 予定前のブロックタイム 予定が利用不可と見なされるまでの期間。 予定後のブロックタイム 予定が利用不可と見なされた後の期間。 営業時間 時間枠を決定する際は、取引先、作業種別、サービステリトリー、およびサービステリトリーメンバーのすべての営業時間の重複が考慮されます。詳細は、「Salesforce Scheduler での営業時間の設定」を参照してください。 - 開始日から 31 日の期間内の時間枠のみが返されます。
- Salesforce Scheduler では、項目値、スケジュール済み予定、不在、Scheduler の設定、スケジュールポリシーなどの複数の要素を使用して、最も早い予定と最も遅い予定の時間枠を含む利用可能な時間枠が決定されます。「Salesforce Scheduler による対応可能な時間枠の決定方法」を参照してください。
名前空間
使用方法
このクラスのコンストラクターは、直接コールできません。このクラスのインスタンスを作成するには、GetAppointmentSlotsInputBuilder.build() メソッドを使用します。
次の例は、workTypeGroupId に基づいて利用可能な時間枠のリストを取得する方法を示しています。
1//Build input for GetAppointmentSlots API
2 lxscheduler.GetAppointmentSlotsInput input = new lxscheduler.GetAppointmentSlotsInputBuilder()
3 .setWorkTypeGroupId('0VSxx0000004C92GAE')
4 .setTerritoryIds(new List<String>{'0Hhxx0000004C92CAE'})
5 .setStartTime(System.now().format('yyyy-MM-dd\'T\'HH:mm:ssZ'))
6 .setEndTime(System.now().addDays(1).format('yyyy-MM-dd\'T\'HH:mm:ssZ'))
7 .setAccountId('001xx000003GYK0AAO')
8 .setRequiredResourceIds(new List<String>{'0Hnxx0000004C92CAE'})
9 .setSchedulingPolicyId('0Vrxx0000004CAe')
10 .setApiVersion(Double.valueOf('48.0'))
11 .build();
12
13String response = lxscheduler.SchedulerResources.getAppointmentSlots(input);次の例は、workType に基づいて利用可能な時間枠のリストを取得する方法を示しています。
1//Build WorkType
2 lxscheduler.WorkType workType = new lxscheduler.WorkTypeBuilder()
3 .setId('08qxx0000004C92AAE')
4 .build();
5
6 lxscheduler.GetAppointmentSlotsInput input = new lxscheduler.GetAppointmentSlotsInputBuilder()
7 .setWorkType(workType)
8 .setTerritoryIds(new List<String>{'0Hhxx0000004C92CAE'})
9 .setStartTime(System.now().format('yyyy-MM-dd\'T\'HH:mm:ssZ'))
10 .setEndTime(System.now().addDays(1).format('yyyy-MM-dd\'T\'HH:mm:ssZ'))
11 .setAccountId('001xx000003GYK0AAO')
12 .setRequiredResourceIds(new List<String>{'0Hnxx0000004C92CAE'})
13 .setSchedulingPolicyId('0Vrxx0000004CAe')
14 .setApiVersion(Double.valueOf('48.0'))
15 .build();
16
17String response = lxscheduler.SchedulerResources.getAppointmentSlots(input);次の例は、workTypeGroupId 項目や workType 項目は使用せず、durationInMinutes に基づいて利用可能な時間枠のリストを取得する方法を示しています。
1//Build WorkType
2 lxscheduler.WorkType workType = new lxscheduler.WorkTypeBuilder()
3 .setDurationInMinutes(60)
4 .build();
5
6 lxscheduler.GetAppointmentSlotsInput input = new lxscheduler.GetAppointmentSlotsInputBuilder()
7 .setWorkType(workType)
8 .setTerritoryIds(new List<String>{'0Hhxx0000004C92CAE'})
9 .setRequiredResourceIds(new List<String>{'0Hnxx0000004C92CAE'})
10 .setApiVersion(Double.valueOf('48.0'))
11 .build();
12
13 String response = lxscheduler.SchedulerResources.getAppointmentSlots(input);次の例は、利用可能な時間枠のリストのサンプル応答を示しています。
1[
2 {
3 "territoryId": "0Hhxx0000004C92CAE",
4 "startTime": "2021-02-10T16:00:00.000+0000",
5 "endTime": "2021-02-10T16:15:00.000+0000",
6 "remainingAppointments": 1
7 },
8 {
9 "territoryId": "0Hhxx0000004C92CAE",
10 "startTime": "2021-02-10T16:15:00.000+0000",
11 "endTime": "2021-02-10T16:30:00.000+0000",
12 "remainingAppointments": 1
13 },
14]