/*
***************************************************************************************************************************
Example
1
: Displays an error details response when an invalid End Date (i.e End Date earlier than Start Date) is sent to
the scheduleHoursForWeeks method.
***************************************************************************************************************************
/*
Date currentDate = Date.today();
Id scheduleID =
'a1vHo0000022jT4IAI'
;
pse.ScheduleResourceService.ScheduleResourceServiceRequest request =
new
pse.ScheduleResourceService.ScheduleResourceServiceRequest();
request.ScheduleIds =
new
Set<Id>{ scheduleID };
request.WeekStartDay = pse.CalendarUtil.DayOfWeek.TUESDAY;
request.StartDate = currentDate;
request.EndDate = currentDate.addDays(-
10
);
pse.ScheduleResourceService.ScheduleResourceServiceResponse response = pse.ScheduleResourceService.getScheduledHoursForWeeks(request);
List<pse.ScheduleResourceService.ScheduleWeeklyData> scheduleWeeklyData = response.WeeklySchedules;
Set<Id> remainingScheduleIds = response.RemainingScheduleIds;
List<pse.ScheduleResourceService.ErrorDetail> errorDetails = response.ErrorDetails;
System.debug(
'RemainingScheduleIds: '
+ remainingScheduleIds);
System.debug(
'Schedule Weekly Data: '
+ scheduleWeeklyData);
System.debug(
'Error Details: '
+ errorDetails);
/*
***************************************************************************************************************************
Example
2
: Displays error details response when an invalid scheduleID is sent to the scheduleHoursForWeeks method.
***************************************************************************************************************************
/*
Date startDateOfValidScheduleID = Date.newInstance(
2022
,
08
,
08
);\
Id validScheduleID =
'a1vHo0000022jT4IAI'
;
Id invalidScheduleID =
'a23530000018xkoAXB'
;
pse.ScheduleResourceService.ScheduleResourceServiceRequest request =
new
pse.ScheduleResourceService.ScheduleResourceServiceRequest();
request.ScheduleIds =
new
Set<Id>{ validScheduleID, invalidScheduleID };
request.WeekStartDay = pse.CalendarUtil.DayOfWeek.TUESDAY;
request.StartDate = startDateOfValidScheduleID.addDays(
5
);
request.EndDate = startDateOfValidScheduleID.addDays(
10
);
pse.ScheduleResourceService.ScheduleResourceServiceResponse response = pse.ScheduleResourceService.getScheduledHoursForWeeks(request);
List<pse.ScheduleResourceService.ScheduleWeeklyData> scheduleWeeklyData = response.WeeklySchedules;
Set<Id> remainingScheduleIds = response.RemainingScheduleIds;
List<pse.ScheduleResourceService.ErrorDetail> errorDetails = response.ErrorDetails;
System.debug(
'RemainingScheduleIds: '
+ remainingScheduleIds);
System.debug(
'Schedule Weekly Data: '
+ scheduleWeeklyData);
System.debug(
'Error Details: '
+ errorDetails);
/*
***************************************************************************************************************************
Example
3
: Displays error details when an invalid date range is sent to the scheduleHoursForWeeks method.
***************************************************************************************************************************
/*
Date startDateOfValidScheduleID = Date.newInstance(
2022
,
08
,
08
);
Id validScheduleID =
'a1vHo0000022jT4IAI'
;
pse.ScheduleResourceService.ScheduleResourceServiceRequest request =
new
pse.ScheduleResourceService.ScheduleResourceServiceRequest();
request.ScheduleIds =
new
Set<Id>{ validScheduleID };
request.WeekStartDay = pse.CalendarUtil.DayOfWeek.TUESDAY;
request.StartDate = startDateOfValidScheduleID.addDays(-
50
);
request.EndDate = startDateOfValidScheduleID.addDays(-
10
);
request.BatchSize =
5
;
request.TransactionTimeLimit =
5000
;
pse.ScheduleResourceService.ScheduleResourceServiceResponse response = pse.ScheduleResourceService.getScheduledHoursForWeeks(request);
List<pse.ScheduleResourceService.ScheduleWeeklyData> scheduleWeeklyData = response.WeeklySchedules;
Set<Id> remainingScheduleIds = response.RemainingScheduleIds;
List<pse.ScheduleResourceService.ErrorDetail> errorDetails = response.ErrorDetails;
System.debug(
'RemainingScheduleIds: '
+ remainingScheduleIds);
System.debug(
'Schedule Weekly Data: '
+ scheduleWeeklyData);
System.debug(
'Error Details: '
+ errorDetails);
/*
***************************************************************************************************************************
Example
4
: Sends a valid response when a valid request is sent to the scheduleHoursForWeeks method.
***************************************************************************************************************************
/*
Date startDate = Date.newInstance(
2023
,
06
,
06
);
Set<Id> validScheduleIDs =
new
Set<Id>{
'a1vHo0000022jT4IAI'
,
'a1vHo0000022jT5IAI'
,
'a1vHo0000022jT8IAI'
};
pse.ScheduleResourceService.ScheduleResourceServiceRequest request =
new
pse.ScheduleResourceService.ScheduleResourceServiceRequest();
request.ScheduleIds = validScheduleIDs;
request.WeekStartDay = pse.CalendarUtil.DayOfWeek.TUESDAY;
request.StartDate = startDate;
request.EndDate = startDate.addDays(
10
);
request.BatchSize =
2
;
request.TransactionTimeLimit =
5000
;
pse.ScheduleResourceService.ScheduleResourceServiceResponse response = pse.ScheduleResourceService.getScheduledHoursForWeeks(request);
List<pse.ScheduleResourceService.ScheduleWeeklyData> scheduleWeeklyData = response.WeeklySchedules;
Set<Id> remainingScheduleIds = response.RemainingScheduleIds;
List<pse.ScheduleResourceService.ErrorDetail> errorDetails = response.ErrorDetails;
System.debug(
'RemainingScheduleIds: '
+ remainingScheduleIds);
System.debug(
'Schedule Weekly Data Size: '
+ scheduleWeeklyData.size());
System.debug(
'Schedule Weekly Data for schedule ID - '
+ scheduleWeeklyData[
0
].ScheduleId +
': '
+ scheduleWeeklyData[
0
]);
System.debug(
'Schedule Weekly Data for schedule ID - '
+ scheduleWeeklyData[
1
].ScheduleId +
': '
+ scheduleWeeklyData[
1
]);
System.debug(
'Error Details: '
+ errorDetails);