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

ServiceResourceScheduleHandler インターフェース

実装クラスで外部カレンダー行動をチェックし、要求されたサービスリソースの予約済みの時間枠を見つけられるようにします。このインターフェースは、Salesforce Scheduler の一部です。

名前空間

LxScheduler

使用方法

lxscheduler.ServiceResourceScheduleHandler インターフェースは Salesforce Scheduler API によってコールされます。

このインターフェースを実装するには、最初に implements キーワードでクラスを次のように宣言する必要があります。

1public class ServiceResourceScheduleHandlerImpl implements LxScheduler.ServiceResourceScheduleHandler{}

次に、クラスで次のメソッドの実装を提供する必要があります。

1public static List<LxScheduler.ServiceResourceSchedule> getUnavailableTimeslots(LxScheduler.ServiceAppointmentRequestInfo requestInfo){
2      //Your code here
3}

実装されたメソッドは global または public として宣言する必要があります。

ServiceResourceScheduleHandler のメソッド

ServiceResourceScheduleHandler のメソッドは次のとおりです。

getUnavailableTimeslots(var1)

外部システムから対応不可の時間枠を取得するための必須情報を渡します。このメソッドの実装では、lxscheduler.ServiceResourceSchedule クラスを返します。

署名

public List<lxscheduler.ServiceResourceSchedule> getUnavailableTimeslots(lxscheduler.ServiceAppointmentRequestInfo var1)

パラメーター

var1
型: lxscheduler.ServiceAppointmentRequestInfo
ServiceResourceScheduleHandler インターフェースに渡されるパラメーターのリストを表します。

戻り値

型: List<lxscheduler.ServiceResourceSchedule>

ServiceResourceScheduleHandler の実装例

これは、lxscheduler.ServiceResourceScheduleHandler インターフェースの実装例です。

1/**
2 * Implement interface lxscheduler.ServiceResourceScheduleHandler
3 * This class is called when fetching service resources and time slots through Salesforce Scheduler API.*/
4   Public class ServiceResourceScheduleHandlerImpl implements lxscheduler.ServiceResourceScheduleHandler{
5    
6    // The main interface method.
7    public static List<lxscheduler.ServiceResourceSchedule> getUnavailableTimeslots(lxscheduler.ServiceAppointmentRequestInfo requestInfo){
8        //Request info values.
9        List<lxscheduler.ServiceResourceInfo> serviceResources=requestInfo.getServiceResources();
10        DateTime startDate=requestInfo.getStartDate();
11        DateTime endDate=requestInfo.getEndDate();
12      
13       
14        List<lxscheduler.ServiceResourceSchedule> resourceUnavailability = new List<lxscheduler.ServiceResourceSchedule>();
15        Set<lxscheduler.UnavailableTimeslot> unavailabilityIntervals = new Set<lxscheduler.UnavailableTimeslot>();
16        
17        //This is a dummy response. Implement your own business logic to connect to your internal or external systems.
18        for (Integer i = 0; i < 5; i++) {
19             //Set the unavailability intervals of a service resource.
20            unavailabilityIntervals.add(new lxscheduler.UnavailableTimeslot(startDate.addMinutes(15*i),startDate.addMinutes(15*(i+1))));
21        }
22       
23       for (lxscheduler.ServiceResourceInfo ServiceResource:serviceResources) {
24            //Set the unavailability of Service resource.
25        resourceUnavailability.add(new lxscheduler.ServiceResourceSchedule(serviceResource.getServiceResourceId(),unavailabilityIntervals));
26
27       }
28        
29        return resourceUnavailability;
30    }
31}

この例では、lxscheduler.ServiceResourceScheduleHandler インターフェースを使用してサンプルテストモックを設定する方法を示しています。

1@isTest
2private class ServiceResourceScheduleHandlerImplTest {
3   static testMethod void getUnavailableTimeslotsTest() {
4   
5      //Initializing the test execution with mock values. Change it according to the implementation.
6      //In case of non-test execution, the lxscheduler.ServiceAppointmentRequestInfo instance will automatically initialize.
7      
8      //Mock values for lxscheduler.ServiceResourceInfo
9      String userId = '005D2000000I1N6IAK';
10      String userName = 'someuser@example.com';
11      String email = 'someuser@example.com';
12      String serviceResourceId = '0HnD20000004C9bKAE';
13      List<String> territoryIds = new List<String>();
14      String resourceType = 'T';
15      lxscheduler.ServiceResourceInfo serviceResInfo = new lxscheduler.ServiceResourceInfo(userId, userName, email, 
16                                                       serviceResourceId, territoryIds, resourceType);
17      
18      //Mock values for lxscheduler.ServiceAppointmentRequestInfo 
19      DateTime startDate = System.now();
20      DateTime endDate = System.now();
21      List<lxscheduler.ServiceResourceInfo> serviceResources = new List<lxscheduler.ServiceResourceInfo>();
22      serviceResources.add(serviceResInfo);
23      String schedulingPolicyId = '0VrD20000004C9S';
24      String workTypeGroupId = '0VSD20000004C93OAE';
25      String accountId = '001D2000002pkXwIAI';
26      String primaryResourceId = '0HnD20000004C9bKAE';
27      String workTypeId = '08qD20000004C9XIAU';
28      String correlationId = 'SOME_ID';
29      
30      lxscheduler.ServiceAppointmentRequestInfo mockRequestInfo = new lxscheduler.ServiceAppointmentRequestInfo(startDate, endDate, serviceResources, 
31                                                                  schedulingPolicyId, workTypeGroupId, accountId, 
32                                                                  primaryResourceId, workTypeId, correlationId);
33      
34      ServiceResourceScheduleHandlerImpl.getUnavailableTimeslots(mockRequestInfo);
35   }
36}