Community Tip - Want the oppurtunity to discuss enhancements to PTC products? Join a working group! X
I created a chart mashup application using the Time Series Chart widget. Currently I am querying data inside the mashup containing the chart widget and feeding it into the chart. Some of my use cases may need the data queried or filtered differently, so it may be more useful to pass in the InfoTable of data into the mashup as a parameter.
My question is whether it would be feasible to pass in the 16 InfoTables of data (max pens for Time Series Chart widget) with potentially 100s or 1000s of data points each? Are InfoTables passed into Services and Mashups by reference or by value? Or in other terms, Is a local copy of the InfoTable created when passed into a Service or as a Mashup parameter?
This information will help determine memory usage and effects.
Solved! Go to Solution.
Not too sure why the aspect of wanting to be more 'dynamic' would force you to pass the full table of information in.
You should always consider the use case and performance instead.
Do I already have all the data for my chart in my parent mashup to begin with, pass it in.
Do I want to take the loading 'hit' up front or after I drill down (Put in parent or child)
To help clarify something about Service infotables vs. Mashup parameters.
service infotables that the Server uses/generates are Server side, Mashup parameters are client side.
So when a Mashup passes a mashup parameter to a service (to the server side) and vice versa when a service result arrives, it is always actual values, never a pointer.
If you are working with an infotable inside a service it is a pointer (and to avoid that, you can use cloneinfotable)
Not too sure why the aspect of wanting to be more 'dynamic' would force you to pass the full table of information in.
You should always consider the use case and performance instead.
Do I already have all the data for my chart in my parent mashup to begin with, pass it in.
Do I want to take the loading 'hit' up front or after I drill down (Put in parent or child)
To help clarify something about Service infotables vs. Mashup parameters.
service infotables that the Server uses/generates are Server side, Mashup parameters are client side.
So when a Mashup passes a mashup parameter to a service (to the server side) and vice versa when a service result arrives, it is always actual values, never a pointer.
If you are working with an infotable inside a service it is a pointer (and to avoid that, you can use cloneinfotable)
Hello @Ascherer17,
Why don't you just test it? It takes three lines of code to generate an infotable with 10 000 rows.
The approach of loading it once in a parent mashup, and then passing it as a parameter to submashups might actually work (I would expect it to be passed by reference in this case), but I think you may encounter another issue -- how are you going to query or filter it on the browser side without doing REST calls? I don't think that Expression widget is capable of doing it, and afraid that you will have to write your own extension for that, which is a completely different story altogether.
/ Constantine
Hi @Ascherer17.
If one of the previous responses answered your question, please mark the appropriate one as the Accepted Solution for the benefit of others on the community.
Regards.
--Sharon