Accessing the IADS Config from VSB, etc.

201 views
Skip to first unread message

Adam Chant

unread,
Nov 13, 2015, 11:42:21 AM11/13/15
to ia...@googlegroups.com

I have a few questions on the config api and on IADS automation.
The reason why I am working on this is that I would like to automate some of our pfConfig consistency checks and I would like to improve some aspects of our pfConfig maintenance.

1.) Are there means how I could seize the IADS parser from VBA?
(Example 1: Consider a complicated derived parameter expression in DataSourceArguement - How do I extract all parameters from the string regardless whether they are present as TPP/IAP in the current pfConfig or not?)
(Example 2: Imagine I wanted to disseminate complicated formulae and put them into a tree view in a similar fashion as 'debug parameter')

2.a)  I have tried the IadsConfigInterface.dll and this: IADS Configuration File Application Programming Interface April 2008 SYMVIONICS Document SSD-IADS-012
(http://iads.symvionics.com/downloads/IadsConfigInterface.zip)
If I use the collection interfaces ParameterSets and ParameterDefaults, it seems to be very slow, estm. 20s per ParameterDefaults Record. Also, there seem to be a little more Rows columns in the pfConfig today than there are properties of the ParamterDefaults collection.
Should one still use these collections?

2.b) The general SQL query interface seems to work fine and fast. Are there any limitations with long DataSourceArguement formulae when I use it for read and write?

2.c) Are there any means to access and manipulate a config that is currently open (i.e. provided to the clients by the post test data server).?

3.) (I have seen an old thread on this in the forum:) Can I, from VBA code, determine which parameters are 'orphaned' which means not used by any display? Can I, from VBA code, obtain a list of which display uses which parameters by using IADS mechanisms?

4.) Are there automation means how I can access lookup tables (i.e. in a simple iadsText on the display)?  All this information seems to be in the 'property bag' only?

James Bretz

unread,
Nov 13, 2015, 2:01:40 PM11/13/15
to ia...@googlegroups.com

Hi Adam,

 

>I have a few questions on the config api and on IADS automation.
>The reason why I am working on this is that I would like to automate some of our pfConfig consistency checks and I would like to improve some aspects of our pfConfig

>maintenance.
>1.) Are there means how I could seize the IADS parser from VBA?
>(Example 1: Consider a complicated derived parameter expression in DataSourceArguement - How do I extract all parameters from the string regardless whether they are present

>as TPP/IAP in the current pfConfig or not?)
>(Example 2: Imagine I wanted to disseminate complicated formulae and put them into a tree view in a similar fashion as 'debug parameter')

 

Actually, we do have the parser exposed in an automation component. The component is called “IadsEquationEngine.EquationEngine” and is included in every installation. If you include the COM library into your project and access it in the object browser, you’ll see that there’s a property called “Equation”. Set the Iads equation string into that property and then use the NumberOfVariables property to determine the number of ‘parameters’ in the equation. Call “GetVariableName( index )” to get the name of each parameter.


 

>2.a)  I have tried the IadsConfigInterface.dll and this: IADS Configuration File Application Programming Interface April 2008 SYMVIONICS Document SSD-IADS-012
>(http://iads.symvionics.com/downloads/IadsConfigInterface.zip)
>If I use the collection interfaces ParameterSets and ParameterDefaults, it seems to be very slow, estm. 20s per ParameterDefaults Record. Also, there seem to be a little more

>Rows columns in the pfConfig today than there are properties of the ParamterDefaults collection.
>Should one still use these collections?

 
For one thing, the interface doesn’t cover every column in the ParameterDefaults table. There are a number of columns for the automated analysis setup that aren’t covered in the interface. Not to worry. These columns are rarely used (if ever).
 
I’m not entirely sure what 20s per ParameterDefaults records means (is that load time, save time, other?), but I understand that something is slow. We haven’t had any complaints up to this point on performance, so something must be different in your setup. Do you have an unusually large amount of parameters? Also, you said you’re using VBA. Can you explain your exact setup so we can attempt to replicate it here in our lab?
 
One comment on that link, It’s possible that this link is outdated. I will confirm that and correct it if necessary. Having said that, The IadsConfigInterface.dll is included in every installation and is located in the C:\Program Files\IADS\Common directory. The dll in your install directory is most likely the most current version of that dll (unless your install is a year or more old). Try re-registering the dll in your installation directory to see if you get any different behavior. My guess is that this isn’t the problem. That dll hasn’t change much for the last 4-5 years. In fact, it’s due for an upgrade soon (perhaps next release).


>2.b) The general SQL query interface seems to work fine and fast. Are there any limitations with long DataSourceArguement formulae when I use it for read and write?

No limitations that I know of...


>2.c) Are there any means to access and manipulate a config that is currently open (i.e. provided to the clients by the post test data server).?

 
Yes, connect to the Iads.exe through the automation interface and use the functions in the Configuration object to fire off an SQL query.


>3.) (I have seen an old thread on this in the forum:) Can I, from VBA code, determine which parameters are 'orphaned' which means not used by any display? Can I, from VBA
>code, obtain a list of which display uses which parameters by using IADS mechanisms?
 
Not easily. The queries would be very complex including a lot of string manipulation. Unfortunately, this information is packed nicely into a database column. It’s intermixed and embedded in strings within columns. The best way is to simply use the tools in the clients. When running the client, open up the ConfigurationTool and select the “Tools” drop down menu.Next, choose “Parameter Usage Report...”. Currently, there is no automation interface to produce this report. I’ll add that to the list.


>4.) Are there automation means how I can access lookup tables (i.e. in a simple iadsText on the display)?  All this information seems to be in the 'property bag' only?

True, the lookup table is persisted in the property bag only. It really wasn’t designed for human consumption. Having said that, you could theoretically use the string to load the actual translator object (included in the release) and then query the object for the information. It would take some time, but I may be able to give you some sample code.
 
It’s is also actually possible to parse the string directly. It’s a bit cryptic, but the information that is needed is in ascii form and fairly easy to spot. Each translation is in the form of a valid derived equation having a ‘condition’ expression and then a ‘value’ expression.
 
Hope this helps,
Jim
 
Reply all
Reply to author
Forward
0 new messages