323
Views
3
Comments
Solved
List of all modules in my Outsystems environment and URLs
Question
Application Type
Reactive

Hello.

I would like to create a menu with a list of all modules in my Outsystems environment, for the user to select and go directly to the URL (address) of each module.

In the Espace table I found the list of modules. Where can I get the URL of each module to be able to create the menu and direct to them?

Thanks.

2023-08-28 07-00-10
Paulo Torres
Champion
Solution

Hello,

You don't have the URL in tables, but you have the name of the modules, for url there is a action in server side that give you the domain and you Should build the URL.

Here you can find the action:

https://success.outsystems.com/Documentation/11/Reference/OutSystems_APIs/HTTPRequestHandler_API

Regards

2021-10-09 07-57-44
Stefan Weber
 
MVP
Solution

Hi Cleiton,

for a central menu your are most likely interested in all application entry modules. To get those 

* add a reference to Application and Espace Entity from the System module

* add an aggregate for Application and Join (Only With) it with Espace on Application.[Entry_eSpace_Id] = Espace.[Id]

This gives you alle applications with an Entry module.

To get the Domain of your current environment you can query the Parameter entity.

* add a reference to the Parameter entity

* Create a utility server action function GetDefaultDNSDomain

* Add an aggregate to the flow for the Parameter Entity and set the filter to Parameter.Name = "DefaultDNSName"

* return the result

This returns the configured environment DNS name without the scheme.

Now to get the full url of a module you concatenate the scheme, domain and Module Name.

"https://" + GetDefaultDNSDomain() + "/" + Espace.Name

Best

Stefan


2022-08-07 19-48-53
Cleiton Giovanni Moretti
Solution

Thanks for the tips.

With your help, I managed to come up with another way to get the result.


I took the URL from the GetBookmarkableURL() function and replaced part of it with the modules name.


Thank you very much!

2023-08-28 07-00-10
Paulo Torres
Champion
Solution

Hello,

You don't have the URL in tables, but you have the name of the modules, for url there is a action in server side that give you the domain and you Should build the URL.

Here you can find the action:

https://success.outsystems.com/Documentation/11/Reference/OutSystems_APIs/HTTPRequestHandler_API

Regards

2021-10-09 07-57-44
Stefan Weber
 
MVP
Solution

Hi Cleiton,

for a central menu your are most likely interested in all application entry modules. To get those 

* add a reference to Application and Espace Entity from the System module

* add an aggregate for Application and Join (Only With) it with Espace on Application.[Entry_eSpace_Id] = Espace.[Id]

This gives you alle applications with an Entry module.

To get the Domain of your current environment you can query the Parameter entity.

* add a reference to the Parameter entity

* Create a utility server action function GetDefaultDNSDomain

* Add an aggregate to the flow for the Parameter Entity and set the filter to Parameter.Name = "DefaultDNSName"

* return the result

This returns the configured environment DNS name without the scheme.

Now to get the full url of a module you concatenate the scheme, domain and Module Name.

"https://" + GetDefaultDNSDomain() + "/" + Espace.Name

Best

Stefan


2022-08-07 19-48-53
Cleiton Giovanni Moretti
Solution

Thanks for the tips.

With your help, I managed to come up with another way to get the result.


I took the URL from the GetBookmarkableURL() function and replaced part of it with the modules name.


Thank you very much!

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