Hi Dojo
The DataMiner documentation mentions that time-dependent capabilities are filled in by a script when necessary (Configuring pools of resources | DataMiner Docs). To be honest I don't fully understand this. I am trying to create my own wizard to plan reservations. The wizard should show the eligible resources in a dropdown. Some resources have time-dependent capabilities in order to not be able to select them when they are already included in an overlapping booking.
The wizard works as follows:
- Executes the Skyline.DataMiner.Library.Solutions.SRM.SrmManagers.ResourceManager.GetEligibleResources method (only passing the timeslot, no extra filter)
- Creates a Skyline.DataMiner.Net.SRM.Capabilities.ResourceCapability object
- Selects the corresponding resources by comparing the capabilities of all eligible resources with the capability created in step 2
Since time-dependent capabilities are (always?) of type text I don't think I can make use of the following ResourceCapability object:
return new ResourceCapability
{
CapabilityProfileID = guid,
Value = new Skyline.DataMiner.Net.Profiles.CapabilityParameterValue
{
Discreets = new List<string>
{
profileInstanceParameterValue,
},
},
};
Would you like to explain a bit more in detail how I should use time-dependent capabilities when planning a reservation using a script please?
Thank you in advance!
Kind regards
Time-dependent capability is used when a resource needs to expose a specific capability only when the booking is active. Then , other overlapping bookings can make use of that same resource, only if they need the same capability value
If we take the example of a steerable antenna resource it can expose a 'Satellite' capability. Then, you will be able to create other overlapping bookings with that same resource, only if you request for the same 'Satellite' capability value.
There is nothing to configure here. Typically, you will use a profile instance defining the 'Satellite' capability it requires and SRM will manage everything for you (checking which resources can be used during the requested time slot ).
Based on the information you gave, I have the feeling you don't need Time-dependent capability here. You only need to define a concurrency value of 1 on the resource, so that only 1! booking can make use of it.
Hi Michiel,
Yes, each time the user selects a different satellite, you’ll have to call GetEligibleResource to get the updated list of antennas capable of receiving that newly selected satellite.
Hi Emmanuel. Okay good. Thank you very much!
Hi Emmanuel. Thanks a lot for your answer! It’s indeed my intention to use a time-dependent capability called “Satellite Name” on a steerable antenna resource.
In case the user changes the satellite a couple of times in the wizard, does this mean that the script should execute the Skyline.DataMiner.Library.Solutions.SRM.SrmManagers.ResourceManager.GetEligibleResources(DateTime startTime, DateTime endTime, List requiredCapacities, List requiredCapabilities) method each time in order to present the available antenna resources correctly?