Help
  • Explore Community
  • Get Started
  • Ask the Community
  • How-To & Best Practices
  • Contact Support
Notifications
Login / Register
Community
Community
Notifications
close
  • Forums
  • Knowledge Center
  • Events & Webinars
  • Ideas
  • Blogs
Help
Help
  • Explore Community
  • Get Started
  • Ask the Community
  • How-To & Best Practices
  • Contact Support
Login / Register
Sustainability
Sustainability

Join our "Ask Me About" community webinar on May 20th at 9 AM CET and 5 PM CET to explore cybersecurity and monitoring for Data Center and edge IT. Learn about market trends, cutting-edge technologies, and best practices from industry experts.
Register and secure your Critical IT infrastructure

Retrieving configuration error information on objects with the .NET API

EcoStruxure Geo SCADA Expert Forum

Schneider Electric support forum about installation, configuration, integration and troubleshooting of EcoStruxure Geo SCADA Expert (ClearSCADA, ViewX, WebX).

cancel
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
Showing results forΒ 
ShowΒ Β onlyΒ  | Search instead forΒ 
Did you mean:Β 
  • Home
  • Schneider Electric Community
  • Remote Operations
  • EcoStruxure Geo SCADA Expert Forum
  • Retrieving configuration error information on objects with the .NET API
Options
  • Subscribe to RSS Feed
  • Mark Topic as New
  • Mark Topic as Read
  • Float this Topic for Current User
  • Bookmark
  • Subscribe
  • Mute
  • Printer Friendly Page
Invite a Co-worker
Send a co-worker an invite to the portal.Just enter their email address and we'll connect them to register. After joining, they will belong to the same company.
You have entered an invalid email address. Please re-enter the email address.
This co-worker has already been invited to the Exchange portal. Please invite another co-worker.
Please enter email address
Send Invite Cancel
Invitation Sent
Your invitation was sent.Thanks for sharing Exchange with your co-worker.
Send New Invite Close
Top Experts
User Count
sbeadle
Kirk sbeadle Kirk
307
AndrewScott
Admiral AndrewScott
95
BevanWeiss
Spock BevanWeiss
89
AdamWoodlandToo
Lt. Commander AdamWoodlandToo
36
View All
Related Products
product field
Schneider Electric
EcoStruxureβ„’ Geo SCADA Expert

Invite a Colleague

Found this content useful? Share it with a Colleague!

Invite a Colleague Invite
Solved Go to Solution
Back to EcoStruxure Geo SCADA Expert Forum
Solved
stevenfaulkner
Crewman stevenfaulkner
Crewman

Posted: β€Ž2020-07-30 12:26 PM . Last Modified: β€Ž2023-05-03 12:12 AM

0 Likes
11
4797
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Subscribe to RSS Feed
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

Link copied. Please paste this link to share this article on your social media post.

Posted: β€Ž2020-07-30 12:26 PM . Last Modified: β€Ž2023-05-03 12:12 AM

Retrieving configuration error information on objects with the .NET API

I'm looking for a way of replicating something that ViewX does through the .NET API. In ViewX when there is a configuration error on an object there will be a red X on the object, and also on all of the groups that are parents of that object so users can follow the tree down to find where the actual error is. When editing the properties on that object the configuration error message is displayed.

 

Is there a method or something that can be called on DBObject to return this configuration error information? In looking through the API nothing is jumping out at me but I might just be missing it. It seems in ViewX to work similarly to the GetAlarms() method but I'm not seeing an equivalent "GetErrors()" method or something similar. Any way to retrieve this information would be fantastic.

 

Thank you for any help.

Labels
  • Labels:
  • Scripting
  • Tags:
  • english
Reply

Link copied. Please paste this link to share this article on your social media post.

  • All forum topics
  • Previous Topic
  • Next Topic

Accepted Solutions
BevanWeiss
Spock BevanWeiss
Spock

Posted: β€Ž2020-08-01 05:30 PM

In response to stevenfaulkner
0 Likes
2
4727
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Subscribe to RSS Feed
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

Link copied. Please paste this link to share this article on your social media post.

Posted: β€Ž2020-08-01 05:30 PM

From what @AndrewScott has said, there is an easier way to get this information for now.

From the .NET API, if you have an object, then you can call the ValidateConfiguration Method on it, which will return an array of strings containing the errors

Not quite as much 'full' information as the Warning class would provided (since you wouldn't get a property name etc), but it should be good enough for most porpoises πŸ™‚


Lead Control Systems Engineer for Alliance Automation (VIC).
All opinions are my own and do not represent the opinions or policies of my employer, or of my cat..

See Answer In Context

  • Tags:
  • english
Reply

Link copied. Please paste this link to share this article on your social media post.

Replies 11
BevanWeiss
Spock BevanWeiss
Spock

Posted: β€Ž2020-07-30 06:17 PM

0 Likes
10
4780
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Subscribe to RSS Feed
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

Link copied. Please paste this link to share this article on your social media post.

Posted: β€Ž2020-07-30 06:17 PM

@stevenfaulkner darn good question this... and I felt that there was 'something'.

I've had a quick look, so far what I've found is this:

2020-07-31 11_03_55-Clipboard.png

But this obviously don't provide any enumerator to get the list of errors themselves, which is a little weird, because when writing a driver, you definitely assemble a list of configuration errors to return if there are any problems.  So code wise, there's definitely a list floating around inside Geo SCADA of the configuration errors.

 

And then this class looks like it might actually hold the Configuration Error data itself (i.e. an instance of this class might represent a single line in the Configuration Error list)... interesting that the name is 'Warning' though, so I may be entirely wrong.

2020-07-31 11_08_01-EcoStruxure Geo SCADA Expert 2019 Client API.png

 

Hmmm... and then I come up blank.

My thought was that you'd need to instantiate a Client.Simple Connection object, and then somehow get a Client.Advanced Interface from that (but I can't find what Client.Advanced Interface that might be), and then hopefully that Interface exposes a Method or Property which returns a set of all Warnings (likely sorted by ObjectId... or not...) and you'd need to filter this list down by ObjectId to get the warnings associated with the object that you care about.

 

@sbeadle / @AndrewScott Is this possible a gap between the internal 'private' interface and that exposed through the .NET API?  I feel that I've been able to do this before, but perhaps that was using the Automation Interface...

Was I on the right track, and the just missing the connections in the middle to get from Client.Connection -> Client.Advanced.ISomething -> enumeration/set of Warning


Lead Control Systems Engineer for Alliance Automation (VIC).
All opinions are my own and do not represent the opinions or policies of my employer, or of my cat..
  • Tags:
  • english
Reply

Link copied. Please paste this link to share this article on your social media post.

AndrewScott
Admiral AndrewScott
Admiral

Posted: β€Ž2020-07-31 02:20 AM . Last Modified: β€Ž2020-08-03 05:54 AM

In response to BevanWeiss
0 Likes
9
4770
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Subscribe to RSS Feed
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

Link copied. Please paste this link to share this article on your social media post.

Posted: β€Ž2020-07-31 02:20 AM . Last Modified: β€Ž2020-08-03 05:54 AM

There is an undocumented method in the ClearScada.Client.Advanced namespace to get the configuration validation errors of an object:

Warning[] IObjectHierarchy.GetValidationErrors( ObjectId objectId )

 

There is also the database method ValidateConfiguration() in the CDBObject table which revalidates an object's configuration and returns the list validation error messages.


Andrew Scott, R&D Principal Technologist, AVEVA
  • Tags:
  • english
Reply

Link copied. Please paste this link to share this article on your social media post.

stevenfaulkner
Crewman stevenfaulkner
Crewman

Posted: β€Ž2020-07-31 06:29 AM

In response to AndrewScott
0 Likes
5
4763
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Subscribe to RSS Feed
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

Link copied. Please paste this link to share this article on your social media post.

Posted: β€Ž2020-07-31 06:29 AM

Thank you both so much for the replies but to be honest I'm still a little confused here. Is there a class that implements the interface IObjectHierarchy? With just the interface I have no idea how to implement that methods if I were to write my own class that implements the interface.

 

Also ObjectDetails looks like it only accepts a Stream in it's constructor, but I'm not seeing a way to Serialize a DBObject into a memory stream. When I tried to do it with BinaryFormatter it doesn't know how to do it. I'm assuming what I need to be doing is calling some other method that returns ObjectDetails rather than trying to instantiate it on its own but I'm not finding a method that does that.

 

//
        // Summary:
        //     Initializes a new instance of the ClearScada.Client.Advanced.ObjectDetails class.
        //
        // Parameters:
        //   stream:
        //     The stream.
        public ObjectDetails(Stream stream);

 

Is that web documentation in your screenshots @BevanWeiss something that is included in the documentation of GeoSCADA or something you generated yourself from the XML documentation?

 

Thanks again for any assistance.

  • Tags:
  • english
Reply

Link copied. Please paste this link to share this article on your social media post.

BevanWeiss
Spock BevanWeiss
Spock

Posted: β€Ž2020-08-01 12:20 AM

In response to AndrewScott
0 Likes
2
4744
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Subscribe to RSS Feed
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

Link copied. Please paste this link to share this article on your social media post.

Posted: β€Ž2020-08-01 12:20 AM

@AndrewScott Any chance of getting this 'documented' into the next release of the .NET API CHM?

(If you'd like me to submit a ticket with Tech Support for the traceability just let me know)


Lead Control Systems Engineer for Alliance Automation (VIC).
All opinions are my own and do not represent the opinions or policies of my employer, or of my cat..
  • Tags:
  • english
Reply

Link copied. Please paste this link to share this article on your social media post.

BevanWeiss
Spock BevanWeiss
Spock

Posted: β€Ž2020-08-01 12:31 AM

In response to stevenfaulkner
0 Likes
4
4742
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Subscribe to RSS Feed
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

Link copied. Please paste this link to share this article on your social media post.

Posted: β€Ž2020-08-01 12:31 AM

@stevenfaulkner I'm not sure which 'web documentation' you refer to... but I suspect it's the .NET API CHM (which you should have found in the Start Menu πŸ˜‰

 

What's the XML documentation that you're looking at?  It sounds a bit more painful than just looking in the help file.

 


Is that web documentation in your screenshots @BevanWeiss something that is included in the documentation of GeoSCADA or something you generated yourself from the XML documentation?


For most of the Client.Advanced functionality you just need to 'cast' it across from a Client.Simple object.

So I would expect for ObjectDetails there would be like a GetDetails(), or ObjectDetails property on the Client.Simple DBObject

 

Or perhaps a method on the Client.Advanced session/connection thing, that might accept a DBObject and would return an ObjectDetails reference.

 

 

I'll have a look in a few hours...


Lead Control Systems Engineer for Alliance Automation (VIC).
All opinions are my own and do not represent the opinions or policies of my employer, or of my cat..
  • Tags:
  • english
Reply

Link copied. Please paste this link to share this article on your social media post.

stevenfaulkner
Crewman stevenfaulkner
Crewman

Posted: β€Ž2020-08-01 09:41 AM

In response to BevanWeiss
0 Likes
3
4733
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Subscribe to RSS Feed
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

Link copied. Please paste this link to share this article on your social media post.

Posted: β€Ž2020-08-01 09:41 AM

Thanks I didn't see the .NET API help chm file. I was just using the object browser in Visual Studio based on the ClearSCADA.Client.dll XML comments. I thought your screenshots were something you did yourself so it inspired me to use docfx to generate a site from those XML comments for myself. Turns out I should've had the official documentation help file all along and just didn't find it!

 

Thanks for the explanations, I haven't delved into the ClearScada.Client.Advanced stuff much, most of what I do is all based on the DBObject or Connection classes. I'll dig into it more when I get back in the office but if anyone has an examples of what methods will return an ObjectDetails class or which classes implement the IObjectHierarchy interface that I can call that method I would greatly appreciate it.

 

Thanks again for all the help.

  • Tags:
  • english
Reply

Link copied. Please paste this link to share this article on your social media post.

BevanWeiss
Spock BevanWeiss
Spock

Posted: β€Ž2020-08-01 05:30 PM

In response to stevenfaulkner
0 Likes
2
4728
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Subscribe to RSS Feed
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

Link copied. Please paste this link to share this article on your social media post.

Posted: β€Ž2020-08-01 05:30 PM

From what @AndrewScott has said, there is an easier way to get this information for now.

From the .NET API, if you have an object, then you can call the ValidateConfiguration Method on it, which will return an array of strings containing the errors

Not quite as much 'full' information as the Warning class would provided (since you wouldn't get a property name etc), but it should be good enough for most porpoises πŸ™‚


Lead Control Systems Engineer for Alliance Automation (VIC).
All opinions are my own and do not represent the opinions or policies of my employer, or of my cat..
  • Tags:
  • english
Reply

Link copied. Please paste this link to share this article on your social media post.

AndrewScott
Admiral AndrewScott
Admiral

Posted: β€Ž2020-08-03 02:33 AM

In response to BevanWeiss
0 Likes
1
4718
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Subscribe to RSS Feed
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

Link copied. Please paste this link to share this article on your social media post.

Posted: β€Ž2020-08-03 02:33 AM

@BevanWeiss, the ClearScada.Client.Advanced namespace was only intended to be used internally by ViewX, but over time a few small bits of it have 'leaked out' into the documentation. You're welcome to request that more of this namespace is documented.


Andrew Scott, R&D Principal Technologist, AVEVA
  • Tags:
  • english
Reply

Link copied. Please paste this link to share this article on your social media post.

AndrewScott
Admiral AndrewScott
Admiral

Posted: β€Ž2020-08-03 02:37 AM

In response to AndrewScott
0 Likes
0
4717
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Subscribe to RSS Feed
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

Link copied. Please paste this link to share this article on your social media post.

Posted: β€Ž2020-08-03 02:37 AM

The undocumented IObjectHierarchy interface is part of the IServer interface, see the Connection.Server property.


Andrew Scott, R&D Principal Technologist, AVEVA
  • Tags:
  • english
Reply

Link copied. Please paste this link to share this article on your social media post.

stevenfaulkner
Crewman stevenfaulkner
Crewman

Posted: β€Ž2020-08-03 05:42 AM

In response to BevanWeiss
0 Likes
1
4709
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Subscribe to RSS Feed
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

Link copied. Please paste this link to share this article on your social media post.

Posted: β€Ž2020-08-03 05:42 AM

Thank you both so much for all the information and options. I think Andrew accidentally had a typo in his answer because I tried ValidationConfiguration but got the error that the method didn't exist when I tried to InvokeMethod on it. So thanks for clarifying that it should be ValidateConfiguration that gives me the functionality that I need.

 

Thank you both again.

  • Tags:
  • english
Reply

Link copied. Please paste this link to share this article on your social media post.

AndrewScott
Admiral AndrewScott
Admiral

Posted: β€Ž2020-08-03 05:56 AM

In response to stevenfaulkner
0 Likes
0
4703
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Subscribe to RSS Feed
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

Link copied. Please paste this link to share this article on your social media post.

Posted: β€Ž2020-08-03 05:56 AM

@stevenfaulkner you're right correct about my typo, I've corrected the original reply.


Andrew Scott, R&D Principal Technologist, AVEVA
  • Tags:
  • english
Reply

Link copied. Please paste this link to share this article on your social media post.

Preview Exit Preview

never-displayed

You must be signed in to add attachments

never-displayed

Β 
To The Top!

Forums

  • APC UPS Data Center Backup Solutions
  • EcoStruxure IT
  • EcoStruxure Geo SCADA Expert
  • Metering & Power Quality
  • Schneider Electric Wiser

Knowledge Center

Events & webinars

Ideas

Blogs

Get Started

  • Ask the Community
  • Community Guidelines
  • Community User Guide
  • How-To & Best Practice
  • Experts Leaderboard
  • Contact Support
Brand-Logo
Subscribing is a smart move!
You can subscribe to this board after you log in or create your free account.
Forum-Icon

Create your free account or log in to subscribe to the board - and gain access to more than 10,000+ support articles along with insights from experts and peers.

Register today for FREE

Register Now

Already have an account? Login

Terms & Conditions Privacy Notice Change your Cookie Settings Β© 2025 Schneider Electric

This is a heading

With achievable small steps, users progress and continually feel satisfaction in task accomplishment.

Usetiful Onboarding Checklist remembers the progress of every user, allowing them to take bite-sized journeys and continue where they left.

of