AvailableDimensionIds
This class of the Apex API allows you to find Dimension records that are available for a certain Reservation.
Methods
findAvailableDimensionIds
Declaration
global static Set<Id> findAvailableDimensionIds(B25.AvailableDimensionIds.Context context)
Parameters
context
(B25.AvailableDimensionIds.Context
)
Returns
Set<Id>:
The dimension IDs that would not result in any conflicts, if used for the given Reservation and Dimension Field.
findSingleAvailableDimensionIds
This method checks, in compliance with the conflict detection engine, which dimensions are available for a given reservation, and then returns a single ID of one of the dimensions.
This is an invokable method and can be accessed from flows.
Declaration
global static List<AvailableDimensionIds.Result> findSingleAvailableDimensionId(List<AvailableDimensionIds.Context> contextList)
Parameters
contextList
(List<B25.AvailableDimensionIds.Context>
) : Only a single context needs to be passes. This property is a list in order to support bulkification.
Returns
List<AvailableDimensionIds.Result>:
A result object that contains a single dimension ID and a list of dimension IDs that would not result in any conflicts, if used for the given Reservation and Dimension Field. Only a single result object will be returned, this property is a list in order to support bulkification.
Inner Classes
Context Properties
reservation
(B25__Reservation__c,
Invocable Variable):Reservation you want to insert.B25__StartLocal__c
andB25__EndLocal__c
need to be set.- Make sure that any fields that influence conflict checking are set (i.e. the quantity of the reservation, or
B25__Status__r.B25__AllowDoubleBooking__c
if your Dimension Field is configured to skip conflict checking when this field equals true), or the result might not contain all available dimensions.
dimensionFieldName
(String
, Invocable Variable): The name of the dimension field you want to search an available ID for. I.e. 'B25__Resource__
c'.dimensionIds
(Set<Id>
): Scope of dimension IDs to limit the search to. These have to be of the same type as the dimension field that you are searching in.dimensionRecordIds
(List<Id>
, Invocable Variable): Scope of dimension IDs that the invocable method searches through. This is a duplicate of the dimensionIds Set and is only used forB25.AvailableDimensionIds.findSingleAvailableDimensionId
.excludedReservationIds
(Set<Id>
): Reservation IDs to ignore in conflict checking. This allows you to exclude reservations you are in the process of moving.dimensionIds
The dimensionIds and dimensionRecordIds properties narrow down the search scope. This greatly improves performance for dimensions with many records. It is recommended to fill this parameter when searching in dimensions with a large amount of records.
Return Properties
A list of available dimension IDsavailableDimensionIds (List<Id>):
availableDimensionId
(Id
) - A single ID of the first dimension inavailableDimensionIds
list.
Example
The following example shows how you can use B25.AvailableDimensionIds.findAvailableDimensionIds
method:
public static Set<Id> getDimensions(B25__Reservation__c reservationIn, String dimensionFieldNameIn, Set<ID> dimensionIdsIn) {
B25.AvailableDimensionIds.Context context = new B25.AvailableDimensionIds.Context();
context.reservation = reservationIn;
context.dimensionFieldName = dimensionFieldNameIn;
context.dimensionIds = dimensionIdsIn;
return B25.AvailableDimensionIds.findAvailableDimensionIds(context);
}
Related articles