Details
The current version of the Extension is comprised of 2 Actions/Functions:
GetScreenURL – This function returns the URL of the specified Screen and the accompanying parameters. This action is SEO aware: if there is a Page Rule for the specified page and parameters, it will return this “pretty” URL. Otherwise, the function will return the “normal” URL (including parameters in Query string).
GetCleanArgument – This function prettifies the specified text so that it can be used to produce better-looking URLs. e.g. "'Variable' can not be set if 'Source Entity/Struct' not set" becomes "variable-can-not-be-set-if-source-entity-struct-not-set" (no quotes).
While it’s possible to obtain the “pretty” URL version of the current screen (by calling the GetBookmarkableURL built-in action) and the OutSystems platform already generates “pretty” URL links to other screens in the current eSpace (using any existing Page rules), there is currently no out-of-the-box way of obtaining the “prettified” URL of an arbitrary screen in some other eSpace.
In the interest of keeping the number of circular references down to a minimum, it’s not uncommon to use an External Site node to jump to a specific screen that resides elsewhere in your factory. This is where GetScreenURL comes in: rather than you hardwiring a path on your inter-eSpace jumps, calling GetScreenURL gives you the right URL by dynamically looking into the platform’s internal metamodel to provide you with the current “pretty” URL if it exists, and the “normal” URL if it does not.
In the same vein, it is not uncommon to have SEO rules where one or more parameters are used strictly for URL decoration purposes. An example is OutSystems’ forum discussion page links such as
www.outsystems.com/forums/discussion/<id>/<this-is-the-topic-title>
We only really need the <id> to look up the discussion; the last tuple is merely for human and SEO benefit and we must make sure that any odd characters don’t break the URL. This is an obvious example of where you want to use GetCleanArgument: to generate a browser-friendly, human readable snippet to appear in the URLs you assemble.
System Requirements and Limitations