Inspect the OML file
Question
Hi all.
Is it possible to inspect the OML file?

I need to develop an app that could list all entities, actions, webscreens, etc from a eSpace.
thanks,
Bruno

Hi

 

Have you seen this forum? https://www.outsystems.com/networkforums/viewtopic.aspx?topicid=3666

 

Cheers,

Hi Acácio.

I've already been there. Unfortunately it has a major downside: I can't download it and customize it. I need a solution to run on a local network. I also need to customize some outputs.

I've seen that there's a OMLProcessor extension on the Platform Server folder, but I can't see it in the references. I've also tried to open it in the Integration Studio but there is no source code available once there.

So, is there other way?

Best regards,
Bruno

Hi Bruno,

 

 

Can you tell us why you need this, please? What are you trying to accomplish? This way we can understand your requirement better and provide some solution.

 

 

Thanks!

Hi Rodrigo.
We are developing some apps that consume a unique eSpace responsible for all business rules and services.
What we are trying to do is create another app that would, at runtime, list all actions, entities and structs of that espace. Using the [System] eSpace we can get almost all of this info, with the exception of the actions, that I can't seem to find.
Since we want an always up-to-date version and many of the depelopers don't have internet access, using the OutDocumenter is not an option.

So, is there any other way?

Thanks

Hi Bruno,

 

 

This is only possible for public actions. The system tables Espace_Version_Signature and Extension_Version_Signature have a xml representation of all the elements the eSpace and Extension exposes as public, including the public Actions.

 

Note that this xml representation is internal and not supported as a feature. This means it is subject to change between major versions of the Agile Platform without notice. Meanwhile, this should tackle your requirement. Simply create an Extension to parse that xml and get the list of Actions from any eSpace or Extension.

 

We'll include in our backlog a change request to also store in the metamodel of the Agile Platform the Actions (and other elements) of each eSpace, so that you can get a clean API for such requirement in a future version of the Agile Platform.

 

 

Thanks!

Sweet. :)
I can live with that.

Thanks.
mvp_badge
MVP
When you create this extension, please post it in the community! We are looking for something like this but then for ALL eSpaces and Extensions, see: https://www.outsystems.com/networkforums/viewtopic.aspx?topicid=3666

Sure. Like me, many must have this need.
mvp_badge
MVP

Hi guys, it is a very old post, but if anyone happen to land here, I just did it:

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

Community GuidelinesBe kind and respectful, give credit to the original source of content, and search for duplicates before posting.