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

OAAS クラス

グローバルまたは全日最適化、入れ替え操作、リソーススケジュールの最適化など、使用可能な最適化サービスで使用されるすべてのメソッドが含まれます。

名前空間

FSL

OAAS のメソッド

OAAS には次のメソッドが含まれます。

optimize(request)

トリガされたグローバル最適化プロセスの最適化リクエスト ID を返します。スケジュールポリシーで全日最適化 Boolean が True に設定されている場合は、要求によって全日最適化がトリガされます。

署名

public static Id optimize(FSL.OAASRequest request)

パラメータ

request
型: FSL.OAASRequest
最適化リクエスト。

戻り値

型: Id

最適化リクエストのレコード ID。

この例は、開始される最適化コールのすべての詳細を保持する OAASRequest クラスのインスタンスを作成した後、optimize メソッドをコールし、要求に渡します。

1DateTime start=Datetime.now();
2DateTime finish=Datetime.now().addDays(3);
3
4LIST<Id> lstServiceTerritories = new List<Id>();
5lstServiceTerritories.add('0Hh0b000000cIwsCAE');
6
7FSL.OAASRequest oaasRequest = new FSL.OAASRequest();
8oaasRequest.allTasksMode = true;
9oaasRequest.filterFieldAPIName = null;
10oaasRequest.start = start;
11oaasRequest.finish = finish;
12oaasRequest.includeServicesWithEmptyLocation = false;
13oaasRequest.locations = lstServiceTerritories;
14oaasRequest.schedulingPolicyID = 'a0N4E0000031HKkUAM';
15
16FSL.OAAS oaas = new FSL.OAAS();
17id optRequest = oaas.optimize(oaasRequest);

reshuffle(serviceId, policyId)

指定されたサービス予定で開始された入れ替え操作の最適化リクエスト ID を返します。

署名

public static Id reshuffle(Id serviceId, Id policyId)

パラメータ

serviceId
型: Id

スケジュールする必要があるサービス予定のレコード ID。

policyId
型: Id

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

戻り値

型: Id

最適化リクエストのレコード ID。

使用方法

入れ替えアクションは、優先度の高いサービス予定を過密なスケジュール内でスケジュールする必要がある場合に使用されます。予定に対応するためにスケジュールの入れ替えを試みる「ミニ最適化」が実行されます。

入れ替えアクションについての詳細は、「サービス予定の再スケジュール」を参照してください。

1FSL.OAAS oaas = new FSL.OAAS();
2id optRequest = oaas.reshuffle('08p4E000000M21CQAS', 'a0N4E0000031HKkUAM');

resourceDayOptimization(resourceId, policyId, horizon, includeAllTasks, includeOnlyResourceFutureSA, radius, candidateSasFields, unschedulableServicesField, maxOptRuntime)

最適化リクエスト ID と最適化コールの詳細を返します。このメソッドは、提供されたパラメータを使用して、リソーススケジュールの最適化 (1 つのサービスリソースのスケジュールの最適化) を実行します。

署名

public static Id resourceDayOptimization(Id resourceId, Id policyId, FSL.TimeInterval horizon, Boolean includeAllTasks, Boolean includeOnlyResourceFutureSA, Decimal radius, String candidateSasFields, String unschedulableServicesField, Decimal maxOptRuntime)

パラメータ

resourceId
型: Id
最適化されるスケジュールのサービスリソースのレコード ID。
policyId
型: Id
サービス予定をスケジュールするために使用されるスケジュール設定ポリシーのレコード ID。
horizon
型: FSL.TimeInterval
リソーススケジュールの最適化を実行するために使用される期間。
includeAllTasks
型: Boolean
true の場合、期間内のすべての関連サービス予定が最適化時に考慮されます。false の場合、スケジュールされていないサービス予定のみが考慮され、スケジュール済みのサービス予定はすべて固定されます (移動不可)。
includeOnlyResourceFutureSA
型: Boolean
true の場合、サービスリソースにすでに割り当て済みのサービス予定のみが最適化時に考慮されます。false の場合、他のサービスリソースに割り当てられているサービス予定も考慮されます。
radius
型: Decimal
必須のサービス予定と隣接する予定の間の推奨距離。必須の予定は、unschedulableServicesField パラメータで定義されます。リソーススケジュールの最適化では、必須の予定からの距離がこの半径未満となるように、サービス予定がグループされます。必須の予定からより離れた場所の予定をスケジュールすることはできますが、優先度は低くなります。null の場合、データは radius (半径) に基づいては絞り込まれません。
candidateSasFields
型: String
スケジュールする候補である予定を示すサービス予定の Boolean 項目。
unschedulableServicesField
型: String
サービス予定が必須 (固定)、つまりリソーススケジュールの最適化時にスケジュールに残しておく必要があるかどうかを示すサービス予定の Boolean 項目。
maxOptRuntime
型: Decimal
この合計時間 (秒) 内に最適化の結果が返される必要があります。このパラメータは最適化時間を適用するだけで、最適化キュー時間または Apex ジョブキュー時間は含まれません。null の場合、デフォルト値の 30 秒が使用されます。

使用方法

リソーススケジュールの最適化についての詳細は、「単一リソースの最適化の実行」を参照してください。

戻り値

型: Id

最適化リクエストのレコード ID。

resourceDayOptimization(resourceId, policyId, horizon, includeAllTasks, includeOnlyResourceFutureSA, radius, candidateSasFields, unschedulableServicesField, maxOptRuntime, nowTimeOnSchedule)

最適化リクエスト ID と最適化コールの詳細を返します。このメソッドは、提供されたパラメータを使用して、リソーススケジュールの最適化 (1 つのサービスリソースのスケジュールの最適化) を実行します。

署名

public static Id resourceDayOptimization(Id resourceId, Id policyId, FSL.TimeInterval horizon, Boolean includeAllTasks, Boolean includeOnlyResourceFutureSA, Decimal radius, String candidateSasFields, String unschedulableServicesField, Decimal maxOptRuntime, Datetime nowTimeOnSchedule)

パラメータ

resourceId
型: Id
最適化されるスケジュールのサービスリソースのレコード ID。
policyId
型: Id
サービス予定をスケジュールするために使用されるスケジュール設定ポリシーのレコード ID。
horizon
型: FSL.TimeInterval
リソーススケジュールの最適化を実行するために使用される期間。
includeAllTasks
型: Boolean
true の場合、期間内のすべての関連サービス予定が最適化時に考慮されます。false の場合、スケジュールされていないサービス予定のみが考慮され、スケジュール済みのサービス予定はすべて固定されます (移動不可)。
includeOnlyResourceFutureSA
型: Boolean
true の場合、サービスリソースにすでに割り当て済みのサービス予定のみが最適化時に考慮されます。false の場合、他のサービスリソースに割り当てられているサービス予定も考慮されます。
radius
型: Decimal
必須のサービス予定と隣接する予定の間の推奨距離。必須の予定は、unschedulableServicesField パラメータと nowTimeOnSchedule パラメータで定義されます。リソーススケジュールの最適化では、必須の予定からの距離がこの半径未満となるように、サービス予定がグループされます。必須の予定からより離れた場所の予定をスケジュールすることはできますが、優先度は低くなります。null の場合、データは radius (半径) に基づいては絞り込まれません。
candidateSasFields
型: String
スケジュールする候補である予定を示すサービス予定の Boolean 項目。
unschedulableServicesField
型: String
サービス予定が必須 (固定)、つまりリソーススケジュールの最適化時にスケジュールに残しておく必要があるかどうかを示すサービス予定の Boolean 項目。
maxOptRuntime
型: Decimal
この合計時間 (秒) 内に最適化の結果が返される必要があります。このパラメータは最適化時間を適用するだけで、最適化キュー時間または Apex ジョブキュー時間は含まれません。null の場合、デフォルト値の 30 秒が使用されます。
nowTimeOnSchedule
型: Datetime
スケジュールされた開始時刻がこの時刻より早い予定は必須とみなされ、リソーススケジュールの最適化時には更新されません。リソーススケジュールの最適化は非同期なので、このパラメータは最適化がいつ開始されたのかを示します。たとえば、nowTimeOnSchedule が 2018 年 4 月 17 日の 10 時 30 分に設定されている場合、スケジュールされた開始日時がそれよりも早い予定は必須とみなされ、リソーススケジュールの最適化から除外されます。

戻り値

型: Id

最適化リクエストのレコード ID。

使用方法

リソーススケジュールの最適化についての詳細は、「単一リソースの最適化の実行」を参照してください。

このコードサンプルを使用するには、ID プレースホルダ (例: Service Appointment ID) を組織のレコード ID に置き換えます。ID は '08p4E00000017Gq' のように単一引用符で囲みます。

1FSL.OAAS a = new FSL.OAAS();
2
3//SET the horizon interval
4DateTime start = DateTime.newInstanceGmt(DateTime.Now().dateGmt(), Time.newInstance(0,0,0,0));
5DateTime finish = start.addDays(3);
6FSL.TimeInterval horizon = new FSL.TimeInterval(start,finish);
7
8//SELECT the candidatesServices
9List<ServiceAppointment> services = [SELECT Id FROM ServiceAppointment WHERE Id IN 
10    (Service Appointment ID,Service Appointment ID) ];
11SET<Id> candidatesIds = new SET<Id>();
12FOR(ServiceAppointment service : services) {
13    candidatesIds.add(service.Id);
14}
15
16//SET the RSO required appointment services
17Set<Id> requiredSaIds = new Set<Id>();
18List<ServiceAppointment> services2 = [SELECT Id FROM ServiceAppointment WHERE Id=Service Appointment ID];
19FOR(ServiceAppointment service : services2) {
20    requiredSaIds.add(service.Id);
21}
22
23//START the RSO process
24Id requestId = a.resourceDayOptimization(Service Resource ID,Scheduling Policy ID,
25horizon,false,true,50,candidatesIds,requiredSaIds,60,DateTime.newInstance(2018,1,0,0,0,0));

resourceDayOptimization(resourceId, policyId, horizon, includeAllTasks, includeOnlyResourceFutureSA, radius, candidateSas, unschedulableServices, maxOptRuntime)

最適化リクエスト ID と最適化コールの詳細を返します。このメソッドは、提供されたパラメータを使用して、リソーススケジュールの最適化 (1 つのサービスリソースのスケジュールの最適化) を実行します。

署名

public static Id resourceDayOptimization(Id resourceId, Id policyId, FSL.TimeInterval horizon, Boolean includeAllTasks, Boolean includeOnlyResourceFutureSA, Decimal radius, Set<String> candidateSas, Set<String> unschedulableServices, Decimal maxOptRuntime)

パラメータ

resourceId
型: Id
最適化されるスケジュールのサービスリソースのレコード ID。
policyId
型: Id
サービス予定をスケジュールするために使用されるスケジュール設定ポリシーのレコード ID。
horizon
型: FSL.TimeInterval
リソーススケジュールの最適化を実行するために使用される期間。
includeAllTasks
型: Boolean
true の場合、期間内のすべての関連サービス予定が最適化時に考慮されます。false の場合、スケジュールされていないサービス予定のみが考慮され、スケジュール済みのサービス予定はすべて固定されます (移動不可)。
includeOnlyResourceFutureSA
型: Boolean
true の場合、サービスリソースにすでに割り当て済みのサービス予定のみが最適化時に考慮されます。false の場合、他のサービスリソースに割り当てられているサービス予定も考慮されます。
radius
型: Decimal
必須のサービス予定と隣接する予定の間の推奨距離。必須の予定は、unschedulableServices パラメータで定義されます。リソーススケジュールの最適化では、必須の予定からの距離がこの半径未満となるように、サービス予定がグループされます。必須の予定からより離れた場所の予定をスケジュールすることはできますが、優先度は低くなります。null の場合、データは radius (半径) に基づいては絞り込まれません。
candidateSas
型: Set<Id>
スケジュールする候補となるサービス予定の ID のセット。
unschedulableServices
型: Set<Id>
リソーススケジュールの最適化時にスケジュールに残しておく必要がある、必須 (固定) のサービス予定の ID のセット。
maxOptRuntime
型: Decimal
この合計時間 (秒) 内に最適化の結果が返される必要があります。このパラメータは最適化時間を適用するだけで、最適化キュー時間または Apex ジョブキュー時間は含まれません。null の場合、デフォルト値の 30 秒が使用されます。

使用方法

リソーススケジュールの最適化についての詳細は、「単一リソースの最適化の実行」を参照してください。

戻り値

型: Id

最適化リクエストのレコード ID。

resourceDayOptimization(resourceId, policyId, horizon, includeAllTasks, includeOnlyResourceFutureSA, radius, candidateSas, unschedulableServices, maxOptRuntime, nowTimeOnSchedule)

最適化リクエスト ID と最適化コールの詳細を返します。このメソッドは、提供されたパラメータを使用して、リソーススケジュールの最適化 (1 つのサービスリソースのスケジュールの最適化) を実行します。

署名

public static Id resourceDayOptimization(Id resourceId, Id policyId, FSL.TimeInterval horizon, Boolean includeAllTasks, Boolean includeOnlyResourceFutureSA, Decimal radius, Set<String> candidateSas, Set<String> unschedulableServices, Decimal maxOptRuntime, Datetime nowTimeOnSchedule)

パラメータ

resourceId
型: Id
最適化されるスケジュールのサービスリソースのレコード ID。
policyId
型: Id
サービス予定をスケジュールするために使用されるスケジュール設定ポリシーのレコード ID。
horizon
型: FSL.TimeInterval
リソーススケジュールの最適化を実行するために使用される期間。
includeAllTasks
型: Boolean
true の場合、期間内のすべての関連サービス予定が最適化時に考慮されます。false の場合、スケジュールされていないサービス予定のみが考慮され、スケジュール済みのサービス予定はすべて固定されます (移動不���)。
includeOnlyResourceFutureSA
型: Boolean
true の場合、サービスリソースにすでに割り当て済みのサービス予定のみが最適化時に考慮されます。false の場合、他のサービスリソースに割り当てられているサービス予定も考慮されます。
radius
型: Decimal
必須のサービス予定と隣接する予定の間の推奨距離。必須の予定は、unschedulableServices パラメータと nowTimeOnSchedule パラメータで定義されます。リソーススケジュールの最適化では、必須の予定からの距離がこの半径未満となるように、サービス予定がグループされます。必須の予定からより離れた場所の予定をスケジュールすることはできますが、優先度は低くなります。null の場合、データは radius (半径) に基づいては絞り込まれません。
candidateSas
型: Set<Id>
スケジュールする候補となるサービス予定の ID のセット。
unschedulableServices
型: Set<Id>
リソーススケジュールの最適化時にスケジュールに残しておく必要がある、必須のサービス予定の ID のセット。これらの予定は、別の時間枠に移動できますが、[許容最早開始日] と [期日] の値に引き続き準拠します。
maxOptRuntime
型: Decimal
この合計時間 (秒) 内に最適化の結果が返される必要があります。このパラメータは最適化時間を適用するだけで、最適化キュー時間または Apex ジョブキュー時間は含まれません。null の場合、デフォルト値の 30 秒が使用されます。
nowTimeOnSchedule
型: Datetime
省略可能。スケジュールされた開始時刻がこの時刻より早い予定は必須とみなされ、リソーススケジュールの最適化時には更新されません。リソーススケジュールの最適化は非同期なので、このパラメータは最適化がいつ開始されたのかを示します。たとえば、nowTimeOnSchedule が 2018 年 4 月 17 日の 10 時 30 分に設定されている場合、スケジュールされた開始日時がそれよりも早い予定は必須とみなされ、リソーススケジュールの最適化から除外されます。

戻り値

型: Id

最適化リクエストのレコード ID。

使用方法

リソーススケジュールの最適化についての詳細は、「単一リソースの最適化の実行」を参照してください。

1FSL.OAAS a = new FSL.OAAS();
2
3//SET the horizon interval
4DateTime start = DateTime.newInstanceGmt(DateTime.Now().dateGmt(), Time.newInstance(0,0,0,0));
5DateTime finish = start.addDays(3);
6FSL.TimeInterval horizon = new FSL.TimeInterval(start,finish);
7
8//SELECT the candidatesServices
9List<ServiceAppointment> services = [SELECT Id FROM ServiceAppointment WHERE Id IN ('08p4E00000017Gp','08p4E00000017Go') ];
10SET<Id> candidatesIds = new SET<Id>();
11FOR(ServiceAppointment service : services) {
12    candidatesIds.add(service.Id);
13}
14
15//SET the RSO required appointment services
16Set<Id> requiredSaIds = new Set<Id>();
17List<ServiceAppointment> services2 = [SELECT Id FROM ServiceAppointment WHERE Id='08p4E00000017Gq'];
18FOR(ServiceAppointment service : services2) {
19    requiredSaIds.add(service.Id);
20}
21
22//START the RSO process
23Id requestId = a.resourceDayOptimization('0Hn4E0000004JRS','a1w4E000000Ac6S',horizon,false,true,50,
24candidatesIds,requiredSaIds,60,DateTime.newInstance(2018,1,0,0,0,0));