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?
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.
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.
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.