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

DOM – read information from specific section definition only

Solved1.34K views28th September 2023DOM
1
Leander Druwel [SLC] [DevOps Member]2.02K 19th September 2023 0 Comments

Hi,

I'm extracting data with an ad-hoc data source from a DOM definition that consists of three section definitions.

Currently, I'm using the Read method to retrieve all the data. However, in this scenario, I'm solely concerned with the data into a particular section definition.

var records = GoldenBatchManager.DomHelper.DomInstances.Read(fullFilter);

Is there a way to exclusively retrieve information from just one specific section definition? I understand that a GetFieldValue operation could be performed for the various fields within that specific section definition.

Thanks

Leander Druwel [SLC] [DevOps Member] Selected answer as best 28th September 2023

3 Answers

  • Active
  • Voted
  • Newest
  • Oldest
2
Mieke Dryepondt [SLC] [DevOps Advocate]3.58K Posted 20th September 2023 1 Comment

Leander,
Thanks for the call. as you mentioned the problem lays in the loading time of reading the DomInstances because your architecture has a DomDefinition where 1 of it's section has multiple records you don't need at that point of your flow. And you would like to read out the instance without the impact of this section.

I do not think it is possible today to exclude a section from the Read since you are asking to read the full Instance (and not just a specific section or sections)

There are a few things I can advise to improve the speed:

  1. Change the architecture of your DOM Module. I personally always make a new Dom Definition as soon as there is a 1-to-many relation. I like to view things as basic Database architecture and see a Dom Definition as a Table. So, when I have multiple rows that should link to 1 other row I will create 2 tables. => 2 Dom Definitions.
    I believe this will make the most impact and provide you with more control what and how to do things.
  2. Use a helper to process big data chunks:
    Example: (Tools is part of Skyline.DataMiner.Net)
    public static List<DomInstance> GetDomInstances(this DomHelper domHelper, List<Guid> instanceIds)
    {
    var instances = Tools.RetrieveBigOrFilter(
    instanceIds,
    id => DomInstanceExposers.Id.Equal(id),
    filter => domHelper.DomInstances.Read(filter));

    return instances;
    }

  3. Use paging. This is useful when processing is needed based on the result. I think it is not applicable to your use case as you want to always show all the DomInstances (based on your filter) in the low code app table.
    Example: (this will get all instances based on a field descriptor, kind of the select * where field = "hello" )

    public static List<DomInstance> GetAllDomInstanceByFieldValueByPages(this DomHelper domHelper, FieldDescriptor fieldDescriptor, string value)
    {
    var filter = DomInstanceExposers.FieldValues.Field(fieldDescriptor.ID.Id.ToString()).Equal(value);
    var allDomInstances = new List<DomInstance>();
    var pagingHelper = domHelper.DomInstances.PreparePaging(filter);
    while (pagingHelper.MoveToNextPage())
    {
    var currentPage = pagingHelper.GetCurrentPage();
    allDomInstances.AddRange(currentPage);
    }

    return allDomInstances;
    }
    Don't just copy this last example as it has no value it this form. It's simply an example how to use it. Instead of adding it to a list, one should add logic to process the currentPage before moving to the next.

Leander Druwel [SLC] [DevOps Member] Selected answer as best 28th September 2023
Leander Druwel [SLC] [DevOps Member] commented 28th September 2023

Hey Mieke, thanks for the excellent advice on how to efficiently load the data.

By reworking the database structure, I managed to improve speed with a factor of 10. In my specific case, it was important to understand that most of the data that was linked with a many to one relation would only be requested with a user click. By separating this specific data into a different DomDefinition, i.e. not only a different SectionDefinition as it used to be, the data can be much easier consulted.

1
Sebastiaan Dumoulein [SLC] [DevOps Enabler]12.71K Posted 20th September 2023 0 Comments

Hi Leander,

The current API (10.3.10) will always return the entire DOM instance including all sections. There's a roadmap item coming up, to only return specific fields from the API, although the specifics of this plan are still under development.

Sebastiaan Dumoulein [SLC] [DevOps Enabler] Answered question 20th September 2023
0
Mieke Dryepondt [SLC] [DevOps Advocate]3.58K Posted 20th September 2023 2 Comments

Leander,

I have not tested this, but perhaps this filter does what you need:

var filter = DomInstanceExposers.SectionDefinitionIds.Contains(sectionIdGuid)

Please note that the same Sectiondefinition can be used by different DomDefinitions. So your result might provide Instances of different DomDefinitions. This is something you might need to take into account when parsing.

For completeness: DomInstanceExposers requires
using Skyline.DataMiner.Net.Apps.DataMinerObjectModel;

Mieke Dryepondt [SLC] [DevOps Advocate] Posted new comment 20th September 2023
Leander Druwel [SLC] [DevOps Member] commented 20th September 2023

Thanks for your response, Mieke.
I’ve implemented the extra filter, but the outcome remains unchanged. It appears that the filter is designed to exclude records that entirely lack that section definition. However, if the section is present, the information retrieved from the record still includes all sections.

Mieke Dryepondt [SLC] [DevOps Advocate] commented 20th September 2023

Leander,
Seems like you want a completely new method to ReadSection instead of reading Instances.
It is normal that domHelper.DomInstances.Read will return the full instance reference since you ask to read the Instance.
The filter will make sure that the result is limited to instances that contain the section definition in their Dom definition.
I personally don’t really see a problem in this as you can just get the fields from the section you want.
I do a similar thing in a datasource I created.

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

Alarm Dashboard PDF/CSV Export 0 Answers | 0 Votes
Is the Microsoft SharePoint Connector Still Usable 0 Answers | 0 Votes
Is the Microsoft SharePoint Connector Still Usable 0 Answers | 0 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 (108) Correlation (68) Cube (150) Dashboard (194) Dashboards (188) database (83) DataMiner Cube (57) DIS (81) DMS (71) DOM (139) driver (65) DVE (55) Elastic (83) Elasticsearch (115) elements (80) Failover (104) GQI (159) HTTP (76) IDP (74) LCA (151) low code app (166) low code apps (93) lowcodeapps (75) MySQL (53) protocol (203) QAction (83) security (88) services (51) 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