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.35K 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.

You are viewing 1 out of 3 answers, click here to view all answers.
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

Correlation Engine: “Test rule” doesn’t result in a hit, despite functional rule 1 Answer | 3 Votes
When using the Setter = true attribute, will the copy action always be executed first? 1 Answer | 3 Votes
Multiple Set on Table parameters for DVE’s 1 Answer | 2 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 (150) 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