Skip to content
DataMiner DoJo

More results...

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Search in posts
Search in pages
Search in posts
Search in pages
Log in
Menu
  • Updates & Insights
  • Questions
  • Learning
    • E-learning Courses
    • Empower Replay: Limited Edition
    • Tutorials
    • Open Classroom Training
    • Certification
      • DataMiner Fundamentals
      • DataMiner Configurator
      • DataMiner Automation
      • Scripts & Connectors Developer: HTTP Basics
      • Scripts & Connectors Developer: SNMP Basics
      • Visual Overview – Level 1
      • Verify a certificate
    • Video Library
    • Books We Like
    • >> Go to DataMiner Docs
  • Expert Center
    • Solutions & Use Cases
      • Solutions
      • Use Case Library
    • Markets & Industries
      • Media production
      • Government & defense
      • Content distribution
      • Service providers
      • Partners
      • OSS/BSS
    • Agile
      • Agile Webspace
      • Everything Agile
        • The Agile Manifesto
        • Best Practices
        • Retro Recipes
      • Methodologies
        • The Scrum Framework
        • Kanban
        • Extreme Programming
      • Roles
        • The Product Owner
        • The Agile Coach
        • The Quality & UX Coach (QX)
    • DataMiner DevOps Professional Program
      • About the DevOps Program
      • DataMiner DevOps Support
  • Downloads
  • More
    • DataMiner Releases & Updates
    • Feature Suggestions
    • Climb the leaderboard!
    • Swag Shop
    • Contact
    • Global Feedback Survey
  • PARTNERS
    • All Partners
    • Technology Partners
    • Strategic Partner Program
    • Deal Registration
  • >> Go to dataminer.services

[SRM] – How to add capabilities to generated contributing resource

Solved1.96K views17th July 2023development SRM SRM resources
2
Mieke Dryepondt [SLC] [DevOps Advocate]3.60K 21st February 2022 0 Comments

We would like to search specific contributing resources. To do this we like to use the same mechanism as to search (eligible) normal resources by mapping capabilities.

This means we need to add capabilities + set the value to the contributing resource.

How can this be done?

Marieke Goethals [SLC] [DevOps Catalyst] Selected answer as best 17th July 2023

4 Answers

  • Active
  • Voted
  • Newest
  • Oldest
1
Mieke Dryepondt [SLC] [DevOps Advocate]3.60K Posted 28th February 2022 0 Comments

I was able to make it work using the “Contributing Config” property on the Service definition (used for the contributing) itself.
This property value (Json format) can contain a Script indication.
For example:

{“Script”:”Script:SRM-UpdateContributingRxResource||Reservation ID=[RESERVATIONID]”,”LifeCycle”:”Locked”,”ParentSystemFunction”:”4a0277fc-cd2a-4828-b16e-d1831b5f3e1c”,”ReservationAppendixName”:”RX_Reuse”,”ResourcePool”:”Reusable RX”,”ConvertToContributing”:”True”, “Concurrency”: 5}

Within this script I retrieve the Contributing booking reservation from which I can get the contributing resource and the FunctionData.

 var reservationID = engine.GetScriptParam(“Reservation ID”)?.Value;
if (!(SrmManagers.ResourceManager.GetReservationInstance(new Guid(reservationID)) is ServiceReservationInstance reservation))
{
engine.GenerateInformation(string.Format(“ERROR|Reservation not found for Reservation ID {0} “, reservationID));
return;
}

if (reservation.TryGetContributingResource(out Resource contributingResource))
{
var reservationFunctions = reservation.GetFunctionData();

…

Via this data I can get all the required info for the capability that is available within the parameters of each Node in the contributing booking.

Adding the capability is done via this code:

public static Resource AddOrUpdateCapabilityOnResource(Resource resource, ResourceCapability resourceCapability)
{
resource.Capabilities = resource.Capabilities ?? new List<ResourceCapability>();
resource.Capabilities.Add(resourceCapability);
return SrmManagers.ResourceManager.AddOrUpdateResources(resource).First();
}

Marieke Goethals [SLC] [DevOps Catalyst] Selected answer as best 17th July 2023
3
André Rodrigues [SLC] [DevOps Member]709 Posted 21st February 2022 1 Comment

For contributing bookings, there’s the possibility to run a script after a booking is converted to contributing.
Just need to define the script to execute in the Contributing Configuration property.
When defining this setting using the placeholder [RESOURCEID] it will be possible to retrieve the resource associated with the contributing booking which can then be adjusted to add the desired capabilities.
E.g. “Script:SRM_DummyScript||DummyParameterName=[RESOURCEID]”

Mieke Dryepondt [SLC] [DevOps Advocate] Posted new comment 22nd February 2022
Mieke Dryepondt [SLC] [DevOps Advocate] commented 22nd February 2022

Hi André,
I’ve tried 2 different approaches but I am still failing to set capabilities on the contributing resources holding data that is calculated in the custom booking wizard.

approach 1:
– custom booking wizard creates contributing booking
– custom booking wizard try-gets the contributing resource
– custom booking wizard add the capability param with a value. (in my case matrix input Id that should be used)
Result: capability is not added to the generated resource. I do see 3 other capabilities of which I do not know where they come from. The info event show that the SRM_ConvertToContributing was run after the booking wizard created both contributing and main booking.

approach 2: using the Created Booking Action property on the contributing node in the main service definition.
– Via this way: how do I pass the dynamic data that is calculated in the booking wizard. So far I see I need to hardcode this in the node property.

1
José Silva [SLC] [DevOps Catalyst]1.42K Posted 26th June 2023 2 Comments

Hi Mieke,
I attempted to implement your solution, but I encountered a problem. The reservation takes a few seconds to be created, and as a result, the script that attempts to retrieve the reservation and set the capability is failing. I’m observing the message “Reservation not found for Reservation ID…” in the information events.

Therefore, this solution is not ideal. Additionally, it introduces complexity as it requires adding another script in the service definition.

I have implemented a better solution. After creating a reservation for my reusable resource (and before creating the reservation of my regular booking), I can retrieve the resource and update it using the following code:

// Generate the reservation.
var rxReusableReservation = srmInteractions.CreateReservation(rxReusable) as ServiceReservationInstance;

// Get the contributing resource.
if (rxReusableReservation.TryGetContributingResource(out Resource contributingResource))
{
AddOrUpdateCapabilityOnResource(contributingResource, resourceCapability);
}

José Silva [SLC] [DevOps Catalyst] Posted new comment 26th June 2023
Mieke Dryepondt [SLC] [DevOps Advocate] commented 26th June 2023

Please add the minimum DMA version + minimum SRM version where these methods are available.

José Silva [SLC] [DevOps Catalyst] commented 26th June 2023

Hi Mieke,
I’m using SRM package version 1.2.28 and my DMA version is 10.3.5

0
Tom Waterbley [SLC] [DevOps Catalyst]8.89K Posted 21st February 2022 0 Comments

Hi Mieke, adding capabilities can be done in the “CreatedBookingAction” script. This script will run before the booking is set to confirmed state. For more information, see the “Created Booking Action” section in the SRM Framework user manual.

Tom Waterbley [SLC] [DevOps Catalyst] Answered question 21st February 2022
Please login to be able to comment or post an answer.

My DevOps rank

DevOps Members get more insights on their profile page.

My user earnings

0 Dojo credits

Spend your credits in our swag shop.

0 Reputation points

Boost your reputation, climb the leaderboard.

Promo banner DataMiner DevOps Professiona Program
DataMiner Integration Studio (DIS)
Empower Katas
Privacy Policy • Terms & Conditions • Contact

© 2025 Skyline Communications. All rights reserved.

DOJO Q&A widget

Can't find what you need?

? Explore the Q&A DataMiner Docs