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
  • Blog
  • Questions
  • Learning
    • E-learning Courses
    • 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
    • Tutorials
    • 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
    • DataMiner Insights
      • Security
      • Integration Studio
      • System Architecture
      • DataMiner Releases & Updates
      • DataMiner Apps
    • 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
  • Downloads
  • More
    • Feature Suggestions
    • Climb the leaderboard!
    • Swag Shop
    • Contact
      • General Inquiries
      • DataMiner DevOps Support
      • Commercial Requests
    • Global Feedback Survey
  • PARTNERS
    • All Partners
    • Technology Partners
    • Strategic Partner Program
    • Deal Registration
  • >> Go to dataminer.services

Automation script for DOM instances: retrieving instances by guid

Solved970 views5th July 2023DOM
4
Jeroen Geldhof [SLC] [DevOps Enabler]5.04K 5th July 2023 0 Comments

I looked into the documentation, but it's not clear how to retrieve an instance using a guid as an input.
Next I'd also like to retrieve a field value from that instance object.

I already have a DomHelper object.  So far so good.
Any ideas on how to go about the rest?

Jeroen Geldhof [SLC] [DevOps Enabler] Selected answer as best 5th July 2023

2 Answers

  • Active
  • Voted
  • Newest
  • Oldest
6
Matthias Declerck [SLC] [DevOps Advocate]2.75K Posted 5th July 2023 0 Comments

Hi Jeroen,

Let me quickly give you few pseudo code snippets (C# blocks):

GET DOM INSTANCE

// Retrieve the DomInstance
var helper = new DomHelper(engine.SendSLNetMessages, "MODULE ID");
var filter = DomInstanceExposers.Id.Equal(<DOM INSTANCE ID>);
var domInstance = helper.DomInstances.Read(filter).FirstOrDefault();

GET FIELD OF DOM INSTANCE (follow up on code block above)

 
var instanceField = domInstance.Sections?.FirstOrDefault().GetFieldValueById(< DOM DESCRIPTOR ID >);
object instanceValue = instanceField?.Value.Value;

Note: I assume it is better to for-loop the sections list.

Documentation: Altering values of a DomInstance - examples | DataMiner Docs

Hope this helps you further

Jeroen Geldhof [SLC] [DevOps Enabler] Selected answer as best 5th July 2023
4
Ive Herreman [SLC] [DevOps Enabler]13.52K Posted 5th July 2023 0 Comments

Hi Jeroen,

You can find some sample code below.
Note that I've hard-coded the section definition id and field descriptor id.

Ideally you store the ids in a separate class to make the code more readable.

public void Run(IEngine engine)
{
try
{
Guid domInstanceId = new Guid(engine.GetScriptParam("Dom Instance ID").Value);

DomInstance domInstance = GetDomInstance(engine, domInstanceId);

string myValue = GetSectionField<string>(domInstance, new SectionDefinitionID(new Guid("7a1fb82e-44be-4c27-a7ab-60b83417bf7a")), new FieldDescriptorID(new Guid("5506da8b-9af0-43df-9c81-4a0bb2bed851")));
engine.GenerateInformation($"Value: {myValue}");

}
catch (Exception ex)
{
engine.GenerateInformation($"Error: {ex}");
engine.ExitFail(ex.ToString());
}
}

public static DomInstance GetDomInstance(IEngine engine, Guid domInstanceId)
{
var domHelper = new DomHelper(engine.SendSLNetMessages, "lab_hq");

FilterElement<DomInstance> domFilter = DomInstanceExposers.Id.Equal(domInstanceId);
return domHelper.DomInstances.Read(domFilter).SingleOrDefault();
}

public static T GetSectionField<T>(DomInstance domInstance, SectionDefinitionID sectionDefinitionId, FieldDescriptorID fieldDescriptorId)
{
var section = domInstance.Sections.SingleOrDefault(x => x.SectionDefinitionID.Id == sectionDefinitionId.Id);

if (section == null)
{
return default(T);
}

var flowsField = section.FieldValues.SingleOrDefault(x => x.FieldDescriptorID.Id == fieldDescriptorId.Id);

if (flowsField == null)
{
return default(T);
}

return (T)flowsField.Value.Value;
}

Ive Herreman [SLC] [DevOps Enabler] Answered question 5th July 2023
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

Recent questions

Web Applications exception in Cube due to invalid certificate 0 Answers | 0 Votes
Redundancy Groups and Alarming – Duplicate Alarms 0 Answers | 0 Votes
Correlation Engine: “Test rule” doesn’t result in a hit, despite functional rule 1 Answer | 3 Votes

Question Tags

adl2099 (115) alarm (62) Alarm Console (82) alarms (100) alarm template (83) Automation (223) automation scipt (111) Automation script (167) backup (71) Cassandra (180) Connector (109) Correlation (69) Correlation rule (52) Cube (151) Dashboard (194) Dashboards (188) database (83) DataMiner Cube (57) DIS (81) DMS (71) DOM (140) driver (65) DVE (56) Elastic (83) Elasticsearch (115) elements (80) Failover (104) GQI (159) HTTP (76) IDP (74) LCA (152) low code app (166) low code apps (93) lowcodeapps (75) MySQL (53) protocol (203) QAction (83) security (88) SNMP (86) SRM (337) table (54) trending (87) upgrade (62) Visio (539) Visual Overview (345)
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

[ Placeholder content for popup link ] WordPress Download Manager - Best Download Management Plugin