Community Tip - Want the oppurtunity to discuss enhancements to PTC products? Join a working group! X
Hi,
I'm facing a problem with an InfoTable parameter in my Java Extension.
My service has an InfoTable parameter, which it self contains an InfoTable, in the picture on the right:
configuration (InfoTable) --> QueryTypes (InfoTable), ServerLocation(String),...
I wired a result InfoTable to configuration.QueryTypes. When I try to access the given parameter in my service the InfoTable is null. The code looks like this:
ValueCollection row = configuration.getFirstRow();
InfoTable it = (InfoTable) row.getValue("QueryTypes");
'it' is null!
I also added an extra parameter 'queryTypes' (InfoTable) and wired the same result InfoTable to it like before. In this case with no cascading InfoTables 'queryTypes' is not null, like I expected.
Has anybody an idea to explain this behaviour?
Thanks,
Keijo
Have you tried testing this service successfully without wiring this up in a mashup?
Yes, executing this service manually works fine.
Cool, where are these parameter values coming from?
I have a service which returns an InfoTable, having the same DataShape like the parameter 'queryTypes' and 'configuration.QueryTypes'. Then I wired this output to these parameters.
I see, have you checked the execution order?
Yes, I also checked that.
What I find confusing is that for the 'queryTypes' parameter the value is the correct InfoTable whereas for the 'configuration.QueryTypes' parameter the value is null. Since both parameters belong to the same service, they are filled at the same time for my understanding.
I try adding a Datashape to your 'configuration.QueryTypes'. Unless 'queryType' was your test with a Datashape?
In the DataShape of 'configuration' is one InfoTable field with the same DataShape as for 'queryTypes' assigned to it. For the service input you only can define the DataShape for the outer InfoTable 'configuration'. I thought TW would recognize that the field 'QueryTypes' in 'configuration' also has a DataSghape.
I see so there is a Datashape for 'configuration', and you have also attached a Datashape to 'configuration.QueryTypes'.
So there is a problem with you viewing this Datashape drop down in a mashup.
If this is the case I would try setting the Datashape 'QueryTypes' table to the default value of the Datashape you need.
I found something that solves the problem for now. I don't realy understand why but it is a workaround.
The picture on the left is what I originally tried. The returned InfoTable of GetTempQueryTypes service has the same DataShape as the nested parameter InfoTable 'configuration.QueryTypes'. However in SetSystemConfiguration service 'configuration.QueryTypes' is null.
In the picture on the right I adjusted the return value of GetTempQueryTypes. Now it returns a InfoTable with the same DataShape as the 'configuration' parameter of SetSystemConfiguration service. In the returned InfoTable only the nested InfoTable 'QueryTypes' is set and wired to the nested InfoTable 'configuration.QueryTypes'. No in SetSystemConfiguration service 'configuration.QueryTypes' has the correct value.
For my understanding the version on the right should work as well but it doesn't.
But for now this workaround works for me.