OML API/ accessing data

Working on it
expected delivery in Q2 2019

When are we gonna have a option to access the metadata from a OML file?

In my case i need to generate report for instance, all screens and their input/output parameters to a given Espace.

This information exist only in the OML file.

 Therefore only the Service Studio is able to open it. Maybe some component which could translate it?

I think its important feature for enterprise grade Frameworks like Outsystems.

With best regards,
Slavi Popov

Created on 27 Nov 2018
Comments (6)

Hi Slavi,

You can use OutDoc a forge component to give you this kind of in-depth eSpace detail. Please take a look and check if that suits your needs.


Hello Bruno, 

before i posted this ideia, i used Outdoc. Which by the way is awesome.

However Outdoc have some missing information which are essential for what i need.
Like input parameters of screens.

And besides that,  the extension is implemented by Outsystems, so I find myself unable to access/extend in a manner which could serves my needs.

I am strongly convinced that Outsystems could implement an extension, which we could use to retrieve specific metadata from the OML. And not the fixed  (non-costumizible) XML returned from the extension of Outdoc.

With best regards,
Slavi Popov


Changed the category to Other and the status to

Working on it
expected delivery in Q2 2019

Hi Slavi,

Thank you for sharing your idea.

We are currently working with partners to deliver a service so you can be able to get code quality analysis reports based on your OMLs.

Not sure if this fits your purposes. Feel free to give more details.

Thank you,

João Bento

Hello João,

In my case i am creating a Test Manager Framework, in which we would like to exctract all the existing tests(BDD framework  format ) from any environment with their input paramaters using a probe. Why?

Knowing the environment, the module name, the webscreen, and its parameters, we are able to build url link:


Now having this feature, we can even make tests based on excell sheet, which can test more scenarios.

Probably Outdoc with a minor tweak(including paramaters) could potentially serve my need, however,
Outdoc was build mainly for documentantion purposes. And in my opinion we could have a more proper way to access it.
Like having several methods: 

GetAllPages (moduleID)

GetAllParameters(PageId)   and so on.

Maybe doesnt justify the development of such a component due to the market necessity is quite low. However makes the job quite more easy, and accessible. 

But hey i am looking to see about this  code quality analysis reports service.  :)

Maybe could serve my need.

Thanks for your atention. 

Guys, it is not perfect but I just made 2 components that may help you:

-> OML 2 XML: https://www.outsystems.com/forge/Component_Overview.aspx?ProjectId=10885

Extension that converts an OML Binary in an XML File. It is similar to what OutDoc already does, converting an OML to XML, but in this case it exports a lot more information. It was based on another component, OutGource. With the informations you can know exactly where some actions are used inside the OML, or specific properties of an entity or screen. 

-> OML Elements (Under Development): https://www.outsystems.com/forge/Component_Overview.aspx?ProjectId=10886

It is Like an OML API that uses the extension OML2XML, it is at a very early stage yet with just some functionalities, like the possibility to get the Screen and Actions Tree. 

There are also actions to help find the usages of each elements. Since the XML don’t follow a specific pattern for each element, I’m still trying to map the patterns for all types of elements and Modules in order to make a lot more functionalities. I decided to release it, even incomplete, because I think it may help someone with simpler requisites like myself.

The idea is that with that you people can have access to more detailed data of a Module, that is not available in Platform DB Metadata.
Examples would be:

-> Screens that have Anonymous or Registered roles marked which can be a security issue. Or any other role that you may want to track.
-> Specific details of an entity. If it is public.

-> Usages of an element inside a Module.

This way you can build your own complex reports to help manage your code. :)

Hope it helps.

If anyone have a specific use case that would like to do and don’t know how, let me know!

Cheers and Regards