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
      • General Inquiries
    • Global Feedback Survey
  • PARTNERS
    • All Partners
    • Technology Partners
    • Strategic Partner Program
    • Deal Registration
  • >> Go to dataminer.services

What can cause HandleNTPutParameterIndex to be thrown?

Solved1.33K views19th July 2023SLProtocol table
1
Julian Yepe [SLC] [DevOps Advocate]227 9th December 2020 3 Comments

I ran into this issue where some of the table columns in a protocol were not being set. After checking the logs, I realized a "HandleNTPutParameterIndex" was being logged indicating that the key for that row that I wanted to set, does not exist. However, I was able to verify that the key does exist at the time of the set because other columns were actually able to be set, which leads me to believe this event is somewhat random. Any insight on what can cause this type of error and a possible fix would be greatly appreciated. I have added the error log below for reference.

2020/12/09 18:23:51.010|SLProtocol - 21672 - WM_TICKETING_02|16864|CProtocol::HandleNTPutParameterIndex|ERR|-1|[Cell update] Table [diagnostics [3200]]: Key (1927) not found
DEBUG:
	varData = VT_ARRAY|VT_VARIANT (3) ~ 0 VT_I4 : 3200 ~ 1 VT_BSTR : 1927 ~ 2 VT_I4 : 17
	varData2 = VT_BSTR : Completed
Marieke Goethals [SLC] [DevOps Catalyst] Selected answer as best 19th July 2023
Thijs Vanovenacker [SLC] [DevOps Advocate] commented 10th December 2020

Hi Julian, can you share which protocol notify you are using?
You mention about “a row you want to set”. Is this via protocol.SetRow(…)?
My first impression would be that you still have code using the protocol.SetParameterIndex(….), While instead we always advice to use protocol.SetParameterIndexByKey(…). Could it be that your key “1927” is present as a string Primary Key? That could explain why using the SetParmeterIndex with that number will most probably not point to that same rowKey.

Could be something completely else as well, but a snippet of your code used would be helpful to assist you.

Julian Yepe [SLC] [DevOps Advocate] commented 10th December 2020

Hello Thijs, the issue indeed is not setting an entire column, but setting a specific cell in a row. A notify method is not used, however, the table property is indexed using the key (as a string) and the column PID to set the specific cell. Is the notify method preferred over this? I have added the snippet below for reference.

protocol.diagnostics[receivedRow.Key, Parameter.Diagnostics.Idx.diagnosticsoverallstatus_3223] = Enum.GetName(typeof(OverallStatus), OverallStatus.Processing);

Thijs Vanovenacker [SLC] [DevOps Advocate] commented 17th December 2020

Hi Julian,
Your approach should be OK. Two things you can verify are:
1) The object that you are passing for indexing “receivedRow.Key”: the accepted type for indexing is either a String or an Integer. As you are refering that your key is the value itself as a string, we should make sure it’s passed along as a string.

In case you would be indexing on that number as integer, then it would look for row x in the table and not necessarily matching the string key value.

2) Second item to verify is if we are sure that KEY actually exists. If you are trying to modify a cell for an unexisting key, then that could explain the issue as well. In that case you probably want to add the full row where we also initialize the other side columns.

I Hope this helps you to get the job done! If not… please let us know 😉

1 Answer

  • Active
  • Voted
  • Newest
  • Oldest
0
Marlies Vandenberghe [SLC] [DevOps Member]2.98K Posted 25th March 2021 0 Comments

I would like to refer to the comment from Thijs as an answer to this question

Marieke Goethals [SLC] [DevOps Catalyst] Selected answer as best 19th July 2023
You are viewing 1 out of 1 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
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