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

How to swap a resource in a reservation instance with automation when using resource scheduling

Solved1.42K views21st June 2023Automation DevOps SRM
0
Ive Herreman [SLC] [DevOps Enabler]13.59K 20th June 2023 0 Comments

Hi Community,

Would anyone have any pointers for me on how I could use a custom automation script to swap a (non-function) resource in a resource scheduling environment?

The BookingManager.TrySwapResource(…) method fails because my resource is not a function resource.

Below you can find the error that is thrown by the TrySwapResource method.

Script Failure (SRM_ResourceActions): (Code: 0x80131500) Skyline.DataMiner.Net.Exceptions.DataMinerException: The Service Definition with ID SRT.Default does not contain any nodes.
at CManagedAutomation.RunWrapped(CManagedAutomation* , Int32 iCookie, IUnknown* pIAutomation, tagVARIANT* varParameters, tagVARIANT* pvarReturn, String scriptName)
at CManagedAutomation.Run(CManagedAutomation* , Int32 iCookie, Char* bstrScriptName, IUnknown* pIAutomation, tagVARIANT* varParameters, tagVARIANT* varEntryPoint, tagVARIANT* pvarReturn, tagVARIANT* pvarEntryPointResult) (CSharp; 0x80131500h): (see comment for more details)

Ive Herreman [SLC] [DevOps Enabler] Selected answer as best 21st June 2023

1 Answer

  • Active
  • Voted
  • Newest
  • Oldest
2
Peter Vanpoucke [SLC] [DevOps Advocate]1.01K Posted 20th June 2023 3 Comments

hi Ive

Since resource scheduling doesn’t have any functions in the service definition to assign resources to, TrySwapResource won’t do for this use case indeed.

Booking.AssignResources() can be used here. Support to assign resources has been added since SRM 1.2.19. The resource that needs to be swapped can be unassigned using booking.UnassignResources().

Example AssignResources()

var request = new AssignResourceRequest
{
TargetNodeLabel = “”, // When assigning a resource unmapped the `TargetNodeLabel` needs to be null or empty.
NewResourceId = resourceIdToAssign,
ProfileInstanceId = profileInstanceIdByRef, // ID of the Profile Instance to assign by reference. Use `Guid.Empty` to not set or remove the Profile Instance.
InterfacesProfileIntanceId =
{
{ interfaceId, interfaceProfileInstanceIdByRef }  // ID of the interface and the Profile Instance to assign by reference for that interface. Use `Guid.Empty` as value to not set or remove the Profile Instance.
},
IsContributing = false, // Set to `true` when assigning contributing resource
};
booking = booking.AssignResources(Engine, request);

Example UnassignResources()

To unassign a resource, a new method UnassignResources has been added:
var request = new AssignResourceRequest
{
TargetNodeLabel = “”, // When unassigning a resource unmapped the `TargetNodeLabel` needs to be null or empty.
NewResourceId = resourceIdToUnassign,
};
booking = booking.UnassignResources(Engine, request);

Ive Herreman [SLC] [DevOps Enabler] Selected answer as best 21st June 2023
Ive Herreman [SLC] [DevOps Enabler] commented 21st June 2023

I’m using SRM 1.2.29, but I’m unable to find the AssignResources and UnassignResources methods.

In what namespace are they defined?

Peter Vanpoucke [SLC] [DevOps Advocate] commented 21st June 2023

They’re available as extension methods in Skyline.DataMiner.Library.Solutions.SRM.

Ive Herreman [SLC] [DevOps Enabler] commented 21st June 2023

Turns out that this is not working on the default ReservationInstance object, but you need to cast the reservation instance to ServiceReservationIance to get the above working.

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