...
Select the dimension object
Select if you want to create a dimension junction (multiple of the selected object in one reservation) or a single object per reservation.
‼️ Note that any junctions created by the wizard still need a trigger hookReview the settings the system is going to create
Succes!
...
Dimensions are a powerful way of letting GoMeddo know about records on any standard or custom object that are related to Reservations in, either through a lookup or via a junction object:
Through a lookup | The Reservation object has a lookup to the other object. An example of this is the Resource object, to which Reservation has a lookup. |
---|---|
Via a junction object | The Reservation object is linked to the other object through a third object, which has lookups to both Reservation and the other object. This Salesforce knowledge article explains what a junction object is. An example of this is the Contact object, which is linked to Reservation through the ReservationContact junction object. ReservationContact has a lookup to Reservation and to Contact. |
Dimensions & Dimension Fields
...
Go to the GoMeddo app
Click on the Dimensions tab
Click New
Fill in the following fields
Field | Type | Required | Description |
---|---|---|---|
Dimension Object Name | Text | Yes | The API name of an object to which reservations are related. Following the example, this would be Car__c |
Availability Lookup | Text | No | The API name of a lookup from the B25__Availability__c object to the dimension object. Filling out this field allows you to define availabilities for the records belonging to this dimension. If this field is left blank, GoMeddo assumes your dimension is always available. |
Sync Field | Text | No | Required for Google and Outlook synchronization. Please see the relevant articles here and here. |
The fields below are only necessary if you have Conflict Rules enabled and want to use Resource Grouping :
Field | Type | Required | Description |
---|---|---|---|
Dimension Grouping SObject Name | Text | No | API name of the object containing the grouping data. |
Dimension Grouping Lookup One | Text | No | API name of a lookup on the grouping object to the dimension. |
Dimension Grouping Lookup Two | Text | No | API name of a lookup on the grouping object to the dimension. |
Dimension Grouping Active Checkbox | Text | No | (Optional) API name of a checkbox on the grouping object to indicate it is active. |
The fields below are only necessary if you do not have Conflict Rules enabled:
Field | Type | Required | Description |
---|---|---|---|
Use Shared Conflict Checking | Checkbox | Yes | Should be enabled for most use cases. When disabled, fields and junctions within this dimension don’t conflict with each other. More info here. |
Double Booking Checking | Picklist | Yes | Defines how strictly GoMeddo should treat detected double bookings in this dimension. Required unless ‘Use Shared Conflict Checking’ is disabled. More info here. |
Double Booking Matching Condition | Text | No | Should be blank for most use cases. Allows you to selectively apply double booking detection only to reservations matching this condition. More info here. |
Define Dimension Fields
Next, we configure a way to link bookable items to reservations
...
The following tables goes into more detail regarding the function of the other fields:
Field | Type | Required | Description |
---|---|---|---|
Dimension | Lookup | Yes | The Dimension record that is the parent of this Dimension Field. |
Dimension Field Name | Text | Yes | The API name of a lookup field on Reservation. |
Enable Advanced Lookup Filtering | Checkbox | No | Enables the advanced lookup filter on the reservation form for this dimension field. The advanced lookup filter allows you to use autocomplete to search through valid related records. It will only show records in which the current reservation will be valid. So for example meeting rooms in closed buildings or staff that are unavailable because of holiday or sick leave will not be shown. Or if you have added a service to the reservation, it will only show records in which that service is actually available during the time of the reservation. A known limitation of the advanced lookup filter is that it doesn't support custom lookup filters. |
Auto Populate on Calendar | Picklist | Yes | Controls if this dimension field gets populated with the related record id when creating a new reservation on the calendar. Options:
|
Availability Checking | Picklist | Yes | Defines the behavior when Reservations are saved outside of the available times for the related dimension record.
For more information, see this article about Conflict Checking, and this article about Availabilities |
Double Booking Checking | Picklist | Yes | Defines the behavior when double bookings are detected for Reservations in this Dimension.
For more information, see this article about Conflict Checking. |
Dimension Allow Double Booking Field | Text | No | The API name of a checkbox field1 on the related dimension object. When Enforce Double Booking Check is enabled, but this field on the related record equals true, the double booking is allowed. |
Reservation Allow Double Booking Field | Text | No | The API name of a checkbox field1 on reservation. When Enforce Double Booking Check is enabled, but this field on the reservation equals true, the double booking is allowed. |
Capacity Checking | Picklist | Yes | Defines the behavior when a Reservation's quantity exceeds the Dimension's capacity.
For more information, see this article about Conflict Checking. |
Dimension Capacity Field | Text | No2 | The API name of a number field3 on the related object, which holds the capacity of the related record. This capacity can't be exceeded if Enforce Capacity Check is enabled. |
Reservation Quantity Field | Text | No2 | The API name of a number field3 on the reservation, which holds the quantity of the reservation. This quantity is checked to not exceed the related record's capacity if Enforce Capacity Check is enabled. |
Reservation Skip Capacity Check Field | Text | No | The API name of a checkbox field1 on reservation. When Capacity Checking is set to 'Soft' or 'Hard', but this field on the related record equals true, the reservation will be saved normally. |
1: Can also be a cross-object reference or a checkbox formula on Reservation. However the latter will not be set yet when working from the Reservation Form UI.
2: Required when Enforce Capacity Check is enabled.
3: Can also be a number formula, and can also be a cross-object reference.
...
Create a junction object with two lookups (or Master-Details): one to Reservation and one to the object that holds the bookable items.That object is Car__c in our example. (We won't go into too much detail on this one, as it's basic Salesforce admin knowledge)
Go back to the Dimension you created in the previous section
Go to the Related tab
Click New in the Dimension Junction section
Fill in the fields from the following table:
Field | Type | Required | Description |
---|---|---|---|
Dimension | Lookup | Yes | The Dimension record that is the parent of this Dimension Junction. |
Dimension Junction Name | Text | Yes | The API name of the junction object you just created |
Reservation Lookup API Name | Text | Yes | The API name of the lookup (or master-detail) to Reservation. Make sure the actual field on the Junction object has the 'Allow reparenting: Child records can be reparented to other parent records after they are created' / 'Reparentable Master Detail' checkbox set to TRUE |
Dimension Lookup API Name | Text | Yes | The API name of the lookup (or master-detail) to the Dimension object |
Create trigger hook
For every Dimension Junction you create, make sure you also create a Trigger for its object, which calls the following method: B25.DimensionJunctionTriggerHook.execute()
...
Display your Dimension Junctions on the Reservation Form
Displaying Dimension Junctions on the Reservation Form
Tip |
---|
Done!Good job! You should now be able to add multiple bookable items to your reservations from the reservation form on the calendar! The sections below provide some additional information. |
...
Warning |
---|
There is an edge case where you can get an error like this: SObject row was retrieved via SOQL without querying the requested field: B25__Reservation__c.<junctions>__r (where <junctions> is your relationship name). This error happens when you have both a field and a junction under the same dimension, both with Availability Checking: None. A workaround for this error is to give either the field or the junction Availability Checking: Soft or Availability Checking: Hard. |
Field | Type | Required | Description |
---|---|---|---|
Dimension | Lookup | Yes | The Dimension record that is the parent of this Dimension Junction. |
Dimension Junction Name | Text | Yes | The API name of an object. This object should be a junction between reservation and the dimension. |
Reservation Lookup API Name | Text | Yes | The API name of a field on the object. This field should be a lookup (or master-detail) to Reservation. Make sure the actual field on the Junction object has the 'Allow reparenting: Child records can be reparented to other parent records after they are created' / 'Reparentable Master Detail' checkbox set to TRUE |
Dimension Lookup API Name | Text | Yes | The API name of a field on the object. This field should be a lookup (or master-detail) to the dimension. |
Availability Checking | Picklist | Yes | Defines the behavior when Reservations are saved outside of the available times for the related dimension record.
For more information, see this article about Conflict Checking, and this article about Availabilities |
Double Booking Checking | Picklist | Yes | Defines the behavior when double bookings are detected for Reservations in this Dimension.
For more information, see this article about Conflict Checking. |
Dimension Allow Double Booking Field | Text | No | The API name of a checkbox field1 on the dimension. When Enforce Double Booking Check is enabled, but this field on the related record equals true, the double booking is allowed. |
Reservation Allow Double Booking Field | Text | No | The API name of a checkbox field1 on reservation. When Enforce Double Booking Check is enabled, but this field on the reservation equals true, the double booking is allowed. |
Junction Allow Double Booking Field | Text | No | The API name of a checkbox field1 on the object itself. When Enforce Double Booking Check is enabled, but this field equals true, the double booking is allowed. |
1: Can also be a cross-object reference or a checkbox formula on Reservation. However the latter will not be set yet when working from the Reservation Form UI.
...