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

GetRows from a table does not provide current data

Solved332 views2nd April 2025
1
David Crome269 10th March 2025 1 Comment

Hi Dojo,

I have a column with a read parameter which is controlled by a toggle button from a write parameter. When I click the toggle button the column value is switching (Enabled / Disabled). For the write parameter I have a QAction row trigger. When I click the button the trigger logs correctly the new value.

But when new data is pushed in the system and I want to sync the new/updated data to the table, I do not get the current data which is shown in the table, so I set it back to the old values. Is it not synced directly in the system or what could lead to this problem? It is not always a problem, sometimes some values are not switching back.

I am fetching the rows like this:

protocol.GetDms().GetElement(protocol.ElementName).GetTable(Parameter.TableName.tablePid).GetRows()

Thanks,
David

David Crome Selected answer as best 2nd April 2025
David Crome commented 11th March 2025

When I fetch the rows from the table in the row triggered QAction, the value in this cell is also set to the old value. But the row I get directly from the protocol by

protocol.GetRow(Parameter.TableName.tablePid, rowKey)

is already set to the new value of the parameter which was updated by the toggle button.

So maybe the data is not synced to the table already? Is it possible to trigger the sync manually or fetch the current instead of the cached data?

2 Answers

  • Active
  • Voted
  • Newest
  • Oldest
3
Laurens Moutton [SLC] [DevOps Enabler]8.68K Posted 31st March 2025 3 Comments

Hi,

There are two places where parameter values are stored in memory: SLProtocol and SLElement. SLProtocol is the main entry point for data and contains all parameter values (displayed and not displayed). From SLProtocol, the parameter values to be displayed are pushed to SLElement as SLElement is the process that is responsible to generate trending, alarming, and also display the parameter values.

-When calling protocol.GetDms().GetElement()... then this gets the parameter value from SLElement, so it is possible when a value is set in SLProtocol that this was not forwarded/processed yet to SLElement and the old value is still returned.

-When calling protocol.GetRow then this gets the parameter value from SLProtocol, so this gets the parameter value at the 'root' source.

If a QAction is executed to get parameter data of the same element then the advice would be to use the protocol.GetRow call as that call directly goes from SLScripting (QAction) to SLProtocol to get the parameter value. When Using protocol.GetDms().GetElement() then this needs to follow a larger detour to get to the parameter value as it also first needs to look up the element: SLScripting->SLNet->SLElement, with the risk of the parameter value not being updated yet.

Regards,

Laurens Moutton [SLC] [DevOps Enabler] Posted new comment 3rd April 2025
David Crome commented 2nd April 2025

Hi Laurens,

thanks for the detailed explanation.

1 week ago I moved the new and old data sync to the last possible place and used the following line to get all rows:

var currentRows = protocol.MyTable.Keys.Select(protocol.MyTable.GetRow);

That helped to solve my issue. So i thought it would be both, later data sync and getting the rows from the protocol. But with your explanation it makes more sense, so now I will always retrieve the data from the protocol instead of the element.

David Crome commented 2nd April 2025

Hi Laurens,

I have another but I think related question:
I described above that the user can toggle a value in a table. Sometimes it takes some time (10-40 seconds) until the value switched the value. Is that also because it needs to be synced into the system or why is that? I guess sometimes this leads also to the sync problem and that table cell values are set back to the old value…

Laurens Moutton [SLC] [DevOps Enabler] commented 3rd April 2025

That can have various root causes. E.g. if some other QAction is busy, then this needs to finish first before handling the next set value that is waiting on the queue to be executed, or there could be items pending on the queue that need to be processed first. If this is something that is send to a device then it could be that the device needs some time to process the value and polling it will still return the old value

0
David Rid [DevOps Enabler]588 Posted 10th March 2025 1 Comment

Hi,

I had a similar topic about updating a table in automation scripts:

https://community.dataminer.services/question/make-element-update-in-automation-script/

Maybe this helps?

David Crome Posted new comment 10th March 2025
David Crome commented 10th March 2025

Thanks David.
But this problem is in a protocol. But maybe something similar is available in a protocol.

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