200
Views
6
Comments
External URL
Question

I got an error on my application. I found out that the cause of this error is my app has a circular references from using public screen method .

Can someone help, what other methods can i use to jump around other screen in different module without using public screen.


Thanks a lot!

2020-05-07 18-53-00
Rui Barradas
 
MVP

Hello Yustisiarni,

Hope you're doing well.

Since OutSystems 11 that references to screens inside other modules are no longer considered as an architecture violation, since screens are now considered as weak references.

Previously in OutSystems 10 (and previous versions), you had to use the External URL widget to avoid cyclic references.


You can find more information in this documentation.


Kind regards,

Rui Barradas

UserImage.jpg
Yustisiarni G Manao

hey thanks for answering me!

I just want confirm. So, from what you say I don't need to change the public screen method?

Thanks,
Yustis


2020-05-07 18-53-00
Rui Barradas
 
MVP

Just to be clear, what do you mean by "public screen method"?


I'm talking about a reference to a screen from another module that is defined as public. Something like this:


Kind regards,

Rui Barradas

UserImage.jpg
Yustisiarni G Manao

I'm sorry , yes that's what I mean. I am now using that reference screen from another module. And this is causing a circular dependencies in my app. 

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

Hi

just to make sure. You have to UI modules and each of it are referencing to public screens of the other module?  Although screens are weak dependencies this leads to the circular reference you are facing. From my perspective you have two options

* Use External URLs with relative URLs to link to your applications. 

If iam right you are needing some sort of global menu across all applications you have?

You can also extract the menu into its own module. This is what you would do

* Create a new module (of type Blank)

* Add references to your public screens of the other UI modules

* Add a UI flow (eg. Common)

* Copy the Menu block from one of your UI modules and add the links with redirects to screens here

* In your application UI modules remove the existing Menu block and add a reference to your new Menu block.

This approach leads to your block module referencing many public screens of other modules (weak dependency) and your application UI modules have a strong dependency to your central menu block. The latter can be a problem as whenever you update the block you are forced to republish all application UI modules where it is used.

Best

Stefan

2023-10-21 19-42-11
Tousif Khan
Champion

You can Go to other screen which were defined in other modules ,you can use an External Site action and call the screen from the other module by using the following URL:

https://youroutsystemsenviroment/ModuleName/ScreenName.aspx 

Here I have attach some Links that Might help 

You can use  GetRequestDomain() from HTTPRequestHandler by taking dependies from it

Hope this helps

Best Regards

Tousif Khan

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