Hello!

I am a newbie wit OutSytems :).

I have an object model where there are two very important things.

1- Objects have object lists, which themselves can have object lists. These lists are updated by the application, they are not static. Is it possible to do this with OutSystems?

2 – Is there things like late binding, Reflection and Dynamic Objects in OutSytems? r like the ExpandoObject ( https://devblogs.microsoft.com/csharpfaq/dynamic-in-c-4-0-introducing-the-expandoobject/)

And finally, we have applications with dynamic screens. There is a frame, but the widgets that will be displayed in the frame depend on XLM configuration files (but it could be something other than XML). Is it possible to create dynamic screens, with OutSystems? 

Thanks for your help

Richard

Solution

Hi Richard,

  1. OutSystems also contains concepts like structures that can contain compound objects containing basic types as well as lists. These are non-persistent objects. To persist them you would need to write them to a relational database tables (called entities in OutSystems. Alternatively you could serialize the structure and write the json string as a binary to an OutSystems entity.

  2. There is no late binding in OutSystems, and no build in reflection or dynamic objects. You can however create C# extensions to extend the functionallity of OutSystems, In the Forge (OutSystems app / component store) there is for example an component that uses reflection to call an OutSystems action dynamically:
    https://www.outsystems.com/forge/component-overview/3283/action-reflection

  3. Yes it is possible to create dynamic screens in OutSystems, but this again is not really supported well by OutSystems, and will need a considerable knowledge from OutSystems and time investment to truelly make generic. A collegue of me has worked on a project for a customer where they implement this in a very generic matter.

    There is some basic functionality for generic forms available (not that they use an XML as input)  in the Forge too, that you can look at for inspiration:

Regards,

Daniel

Solution

Thank you for your answers, Daniel. They’re clear and useful.