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

GradeSlotsService クラス

[候補者] クイックアクションで表示される結果を表します。GradeSlotsService を使用して、指定されたサービス予定をスケジュールできるすべての時間枠を評価します。

名前空間

FSL

使用方法

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

メモ

GradeSlotsService のコンストラクター

GradeSlotsService のコンストラクターは次のとおりです。

GradeSlotsService(schedulingPolicyId, serviceAppointmentId)

指定されたスケジュール設定ポリシー ID とサービス予定 ID を使用して、GradeSlotsService クラスの新しいインスタンスを作成します。

署名

public GradeSlotsService(Id schedulingPolicyId, Id serviceAppointmentId)

パラメーター

schedulingPolicyId
型: Id
サービス予定をスケジュールするために使用されるスケジュール設定ポリシーのレコード ID。
serviceAppointmentId
型: Id
スケジュールされるサービス予定のレコード ID。

GradeSlotsService のメソッド

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

getGradedMatrix(i_ResultsInUserTimeZone)

リソース ID と評価済み時間枠のマトリックスを返します。この情報は [候補者] クイックアクションで表示される情報と類似しています。

署名

public FSL.AdvancedGapMatrix getGradedMatrix(Boolean i_ResultsInUserTimeZone)

パラメーター

i_ResultsInUserTimeZone
型: Boolean

true の場合、すべての日時がユーザーのタイムゾーンで返されます。false の場合、すべての日時が UTC で返されます。

戻り値

型: FSL.AdvancedGapMatrix

使用方法

拡張されたスケジュール設定および最適化 (ESO) が有効な場合、このメソッドは同期して実行されます。ESO が有効ではない場合、このメソッドのコールでは、一度に 1 つのサービス予定しか使用できず、非同期的に実行されます。この非同期メソッドが返す結果を調べるために、ストリーミング API を使用して、Field Service 管理パッケージのチャネルである MstCompletedChannel に登録できます。

この例は、サービスリソース ID、開始時刻と終了時刻、各時間枠の評価を抽出するために FSL.AdvancedGapMatrix の結果を解析する方法を示しています。

1// FSL.GradeSlotsService class
2// The getGradedMatrix method returns a matrix of resource id's AND graded time slots
3
4Id serviceAppointmentId = '08p1N000000qN4sQAE';
5Id schedulingPolicyId=[SELECT Id FROM FSL__Scheduling_Policy__c WHERE Name='Customer First' LIMIT 1].Id;
6
7// GENERATE the graded time slots for the service appointment
8FSL.GradeSlotsService mySlotService = new FSL.GradeSlotsService(schedulingPolicyId,serviceAppointmentId);
9
10// STORE the matrix of service resource id's and graded time slots
11FSL.AdvancedGapMatrix myResultMatrix = mySlotService.getGradedMatrix(true);
12
13Map<Id,FSL.ResourceScheduleData> mySRGradedTimeSlotMap = myResultMatrix.ResourceIDToScheduleData;
14for (Id thisresourceid : mySRGradedTimeSlotMap.keySet()){
15    for (FSL.SchedulingOption thisso : mySRGradedTimeSlotMap.get(thisresourceid).SchedulingOptions ) {
16        system.debug('***** Resource Id' + thisresourceid);
17        system.debug('***** Start - ' + thisso.Interval.Start);
18        system.debug('***** Finish - ' + thisso.Interval.Finish);
19        system.debug('****** Grade - ' + thisso.Grade);
20    }
21}