Why can a List only be a Input parameter on a screen if the screen is Non-Public?

Why can a List only be a Input parameter on a screen if the screen is Non-Public?

  
Hi All,

When you want a Input parameter of the type (Integer, Text, Boolean etc) List on a screen that has Public = Yes this error occourse:

Invalid Public Screen

Screen 'HomePage' cannot be public because 'In1' input parameter type is RecordList.


Why is this? I can't find any documentation why this is not allowed.
Kind regards,
Martijn Habraken
Solution
Hi Martijn,
 
When a screen is set as public, other eSpaces can use it and pass input parameters.
However, lists, objects and binary data are always passed by reference.
A reference is only valid in the eSpace were it was created.
 
In your case, you are trying to pass parameters by reference between eSpaces.
 
For more information about input parameters see: http://www.outsystems.com/help/servicestudio/9.1/index.htm#t=Designing_Actions%2FAbout_Input_Parameters.htm
 
Regards,
Miguel Domingues
Solution
Hi Miguel,

Is that page fully correct though? I've experienced passing by value in case the consumer of an actions isn't in the same eSpace as the action. I think that was confirmed by OS as well.
Hi Kilian,

You are correct, between actions in different eSpaces parameters are passed by value (even lists).
However, the original question from Martijn was about web screens set as public with a list as parameter, and in that case (web screen) that is not possible.

Regards,
Miguel Domingues
Hi Miguel,

I understand that (I was even surprised that it's possible within the same eSpace, as parameters to screens are passed as HTML parameters), but my question was about that page. Reading it again, it is correct though, it says "when the action called is from the same module there are data types that are passed by reference" (emph. mine). So no problem there :).