この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

AppointmentBookingService クラス

フィールドサービスの予定予約のスケジュール処理を表します。予定の予約は、スケジュール設定ポリシー、作業ルール、サービス内容を考慮して、サービス予定に使用可能な時間枠を返します。たとえば、明日の午前 9 時~ 11 時、または次の月曜日の午後 4 時~ 6 時に予定をスケジュールできます。

名前空間

FSL

使用方法

AppointmentBookingService クラスをコールする前に、親作業指示とサービス予定がすでに存在することを確認してください。

サービス予定をスケジュールする際、予定をスケジュールするユーザには、Field Service Admin、Field Service Dispatcher、Field Service Agent、Self-Service の 4 つの管理パッケージ権限セットのうちのいずれかが与えられている必要があります。プラットフォームイベントを使用して予定をスケジュールする場合は、ユーザに正しい権限が与えられるように明示的に設定する必要があります。適切に設定しないと、プラットフォームイベントが自動化プロセスのシステムユーザとして実行され、予定をスケジュールするための適切な権限が与えられません。詳細は、「プラットフォームイベントトリガのユーザおよびバッチサイズの設定」を参照してください。

メモ

タイムゾーンは通常、サービスを依頼する顧客のロケーションに基づきます。ベストプラクティスとして、サービステリトリーの業務時間で指定されたタイムゾーンを使用してください。

時間枠を評価や日付で並べ替えて返したい場合は、getSlots() メソッドで sort パラメータの sortResultsBy または sortBy を使用してください。

AppointmentBookingService クラスがコールされると、関連付けられた作業種別の ExactAppointment 値は無視されます。正確な予定が必要な場合は、パラメータでこの値を true に設定します。作業種別の ExactAppointment を優先する場合は、作業種別から直接照会します。

時間枠を取得した後、開発者は時間枠の表示方法または管理方法を決めることができます。通常、時間枠は顧客に表示され、顧客が時間枠を選択します。時間枠が選択されたら、サービス予定の ArrivalWindowStartTime 項目と ArrivalWindowEndTime 項目が時間枠の開始時刻と終了時刻で更新されます。例:

サービス予定が選択された時間枠内に正しくスケジュールされるように、FSL.ScheduleService メソッドがコールされます。

AppointmentBookingService のメソッド

AppointmentBookingService には、次の静的メソッドが含まれます。

getSlots(serviceID, policyId, operatingHoursId, tz, exactAppointment)

FSL.AppointmentBookingSlot レコードのリストを返します。

署名

public static List<FSL.AppointmentBookingSlot> getSlots(Id serviceID, Id policyId, Id operatingHoursId, System.TimeZone tz, Boolean exactAppointment)

パラメータ

serviceID
型: Id
必須。スケジュールされるサービス予定の ID。
policyId
型: Id
必須。使用されるスケジュール設定ポリシーの ID。
operatingHoursId
型: Id

必須。時間枠の間隔を決定するために使用される業務時間レコードの ID。

業務時間レコードの TimeZone は無視されます。

メモ

tz
型: System.TimeZone
必須。時間枠が返されるタイムゾーン。このタイムゾーンは通常、サービス予定が行われるサービステリトリー、つまり顧客のロケーションのタイムゾーンです。予定の予約枠は、顧客のロケーションのタイムゾーンで表示する必要があります。
exactAppointment
型: Boolean
必須。結果で正確な予定または到着期間を使用するかを指定します。getSlots() メソッドがコールされると、作業種別の exactAppointment 値は無視されます。

使用方法

このメソッドは指定されたサービス予定を予約可能な時間枠のリストを返します。結果は元の要求で送信されたタイムゾーンで返されます。

予定の時間枠は、コールで提供された operatingHoursId 値によって異なります。operatingHoursId は、予定の予約時に顧客に提示されたさまざまな時間枠を表します (月曜日の午前 9 時~ 11 時、午前 11 時~午後 1 時、午後 1 時~ 3 時、火曜日の午前 9 時~ 11 時、正午~午後 4 時など)。

このメソッドは空き時間枠を返すだけで、サービス予定のスケジュールは行いません。エンドユーザが希望する時間枠を選択したら、サービス予定の ArrivalWindowStartTime 項目と ArrivalWindowEndTime 項目を更新し、FSL.ScheduleService メソッドをコールします。

データベースで日時が更新される前に、タイムゾーン変換を実行して dateTime 値を UTC に変換します。

この例は、[顧客優先] スケジュール設定ポリシーと [ゴールド予定カレンダー] 業務時間を、希望する予定時間枠として使用して AppointmentBookingService クラスをコールします。

getSlots(serviceID, policyId, calendar, tz, exactAppointment)

FSL.AppointmentBookingSlot レコードのリストを返します。

署名

public static List<FSL.AppointmentBookingSlot> getSlots(Id serviceID, Id policyId, OperatingHours calendar, System.TimeZone tz, Boolean exactAppointment)

パラメータ

serviceID
型: Id
必須。スケジュールされるサービス予定の ID。
policyId
型: Id
必須。使用されるスケジュール設定ポリシーの ID。
calendar
型: OperatingHours オブジェクト

必須。calendar は、時間枠の間隔を決定するために使用されます。

業務時間レコードの TimeZone は無視されます。

メモ

tz
型: System.TimeZone
必須。時間枠が返されるタイムゾーン。このタイムゾーンは通常、サービス予定が行われるサービステリトリー、つまり顧客のロケーションのタイムゾーンです。予定の予約枠は、顧客のロケーションのタイムゾーンで表示する必要があります。
exactAppointment
型: Boolean
必須。結果で正確な予定または到着期間を使用するかを指定します。getSlots() メソッドがコールされると、作業種別の exactAppointment 値は無視されます。

使用方法

このメソッドは指定されたサービス予定を予約可能な時間枠のリストを返します。結果は元の要求で送信されたタイムゾーンで返されます。予定の時間枠 (9 時~ 11 時、11 時~ 1 時、1 時~ 3 時など) は、OperatingHours オブジェクトのサブクエリで返された時間枠によって異なります。

このメソッドは空き時間枠を返すだけで、サービス予定のスケジュールは行いません。サービス予定の ArrivalWindowStartTime 項目と ArrivalWindowEndTime 項目を更新し、FSL.ScheduleService メソッドをコールします。

データベースで日時が更新される前に、タイムゾーン変換を実行して dateTime 値を UTC に変換します。

次の例では、サブクエリを使用して OperatingHours オブジェクトである calendar から時間枠を取得しています。

getSlots(serviceID, policyId, calendar, tz, sortResults, exactAppointment)

並べ替えられた FSL.AppointmentBookingSlot レコードのリストを返します。

署名

public static List<FSL.AppointmentBookingSlot> getSlots(Id serviceID, Id policyId, OperatingHours calendar, System.TimeZone tz, FSL.AppointmentBookingService.SortResultsBy sortResults, Boolean exactAppointment)

パラメータ

serviceID
型: Id
必須。スケジュールされるサービス予定の ID。
policyId
型: Id
必須。使用されるスケジュール設定ポリシーの ID。
calendar
型: OperatingHours オブジェクト

必須。calendar は、時間枠の間隔を決定するために使用されます。

業務時間レコードの TimeZone は無視されます。

メモ

tz
型: System.TimeZone
必須。時間枠が返されるタイムゾーン。このタイムゾーンは通常、サービス予定が行われるサービステリトリー、つまり顧客のロケーションのタイムゾーンです。予定の予約枠は、顧客のロケーションのタイムゾーンで表示する必要があります。
sortResults
型: FSL.AppointmentBookingService.SortResultsBy 列挙
必須。返される AppointmentBookingSlot の結果を並べ替えるために使用します。使用できる sort 値は、Grade、NoSort、SlotDateTime です。
exactAppointment
型: Boolean
必須。結果で正確な予定または到着期間を使用するかを指定します。getSlots() メソッドがコールされると、作業種別の exactAppointment 値は無視されます。

使用方法

このメソッドは指定されたサービス予定を予約可能な時間枠のリストを並べ替えて返します。結果は元の要求で送信されたタイムゾーンで返されます。予定の時間枠 (9 時~ 11 時、11 時~ 1 時、1 時~ 3 時など) は、OperatingHours オブジェクトである calendar のサブクエリで返された時間枠によって異なります。

このメソッドは空き時間枠を返すだけで、サービス予定のスケジュールは行いません。サービス予定の ArrivalWindowStartTime 項目と ArrivalWindowEndTime 項目を更新し、FSL.ScheduleService メソッドをコールします。

データベースで日時が更新される前に、タイムゾーン変換を実行して dateTime 値を UTC に変換します。

次の例では、返された時間枠を評価によって並べ替えています。calendar パラメータを含��署名を使用する場合は、OperatingHours オブジェクトで時間枠のサブクエリを使用してください。

getSlots(serviceID, policyId, calendar, tz, sortBy, exactAppointment)

並べ替えられた FSL.AppointmentBookingSlot レコードのリストを返します。

署名

public static List<FSL.AppointmentBookingSlot> getSlots(Id serviceID, Id policyId, OperatingHours calendar, System.TimeZone tz, String sortBy, Boolean exactAppointment)

パラメータ

serviceID
型: Id
必須。スケジュールされるサービス予定の ID。
policyId
型: Id
必須。使用されるスケジュール設定ポリシーの ID。
calendar
型: OperatingHours オブジェクト

必須。calendar は、時間枠の間隔を決定するために使用されます。

業務時間レコードの TimeZone は無視されます。

メモ

tz
型: System.TimeZone
必須。時間枠が返されるタイムゾーン。このタイムゾーンは通常、サービス予定が行われるサービステリトリー、つまり顧客のロケーションのタイムゾーンです。予定の予約枠は、顧客のロケーションのタイムゾーンで表示する必要があります。
sortBy
型: String
必須。AppointmentBookingSlot の結果を並べ替えるために使用します。使用できる値は、SORT_BY_GRADE、SORT_BY_DATE、SORT_BY_NO_SORT です。
exactAppointment
型: Boolean
必須。結果で正確な予定または到着期間を使用するかを指定します。getSlots() メソッドがコールされると、作業種別の exactAppointment 値は無視されます。

使用方法

このメソッドは指定されたサービス予定を予約可能な時間枠のリストを並べ替えて返します。結果は元の要求で送信されたタイムゾーンで返されます。予定の時間枠 (9 時~ 11 時、11 時~ 1 時、1 時~ 3 時など) は、OperatingHours オブジェクトである calendar のサブクエリで返された時間枠によって異なります。

このメソッドは空き時間枠を返すだけで、サービス予定のスケジュールは行いません。サービス予定の ArrivalWindowStartTime 項目と ArrivalWindowEndTime 項目を更新し、FSL.ScheduleService メソッドをコールします。

データベースで日時が更新される前に、タイムゾーン変換を実行して dateTime 値を UTC に変換します。

getABSlots(serviceID, policyId, calendar, tz, sortBy, exactAppointment)

2 つのサービス予定のチェーンの複雑な作業連動関係を反映した FSL.AppointmentBookingSlot レコードのリストを返します。

署名

public static FSL.ABSlotsResponse getABSlots(Id serviceID, Id policyId, OperatingHours calendar, System.TimeZone tz, String sortBy, Boolean exactAppointment)

パラメータ

serviceID
型: Id
必須。スケジュールされるサービス予定の ID。
policyId
型: Id
必須。使用されるスケジュール設定ポリシーの ID。
calendar
型: OperatingHours オブジェクト

必須。calendar は、時間枠の間隔を決定するために使用されます。

業務時間レコードの TimeZone は無視されます。

メモ

tz
型: System.TimeZone
必須。時間枠が返されるタイムゾーン。このタイムゾーンは通常、サービス予定が行われるサービステリトリー、つまり顧客のロケーションのタイムゾーンです。予定の予約枠は、顧客のロケーションのタイムゾーンで表示する必要があります。
sortBy
型: String
必須。結果を並べ替えるために使用します。使用できる値は、SORT_BY_GRADE、SORT_BY_DATE、SORT_BY_NO_SORT です。
exactAppointment
型: Boolean
必須。結果で正確な予定または到着期間を使用するかを指定します。このメソッドがコールされると、作業種別の exactAppointment 値は無視されます。

戻り値

型: FSL.ABSlotsResponse

使用方法

このメソッドは、2 つのサービス予定の複雑な作業チェーンの予定の予約枠を取得します。このメソッドは、複雑な作業設定の [Use all-or-none scheduling for related appointments (関連する予定のスケジュールはすべてスケジュールするかまったくスケジュールしない)] を反映します。

このメソッドは非同期です。このメソッドが返す結果を調べるために、ストリーミング API を使用して、Field Service 管理パッケージのチャネルである MstCompletedChannel に登録できます。

このメソッドは空き時間枠を返すだけで、サービス予定のスケジュールは行いません。サービス予定の ArrivalWindowStartTime 項目と ArrivalWindowEndTime 項目を更新し、FSLScheduleService クラスの scheduleExtended メソッドをコールします。

データベースで日時が更新される前に、タイムゾーン変換を実行して dateTime 値を UTC に変換します。