99
Views
8
Comments
Solved
Is there any way to create screens outside Service Studio?
Question

Hi all, 

I'm having an issue and despite all my research and knowledge, I would like to have more opinions about this.

Is there any way to create screens outside the Service Studio? 

For example, in Content Management Systems (CMS), created in Outsystems, we have and HTML Editor to create and update the content of several screens already created, but is it possible to create new screens outside the Service Studio? 

Thanks for your help. 

mvp_badge
MVP
Rank: #68
Solution

Hi José.

You know I like to find creative solutions :)

There is always another way that you don't want to use here.

We agree that if you have the screen or you want people to interact, you generate an empty screen and inject the code with expressions as placeholders.

If you don't have the screen and don't want people to interact, you can generate it completely in HTML and do a download flow in preparation so the result of opening the page will be to open in browser an html file.

it is not pretty, but is the only way.

Rank: #106

Hi José,


So far as I know, you can't, but I can be wrong.

But I believe, that with all the accelerators and with visual coding you can achieve what you want much more faster and easier than with other external technologies. But, I don't know the use case. :)


Best regards,

Ricardo M Pereira



mvp_badge
MVP
Rank: #18

Hi José,

In OutSystems applications the screens are defined at design time, you cannot create completely new screens at runtime.

What is your use case for this? That CMS example seems odd, as you'd want all screens to be consistent (it's the same application after all), and the common part flexible - and this can be achieved with a rich enough data-model to describe the screen contents and content layout.

--/--

You can however include HTML directly in your OutSystems screens, either statically or dynamically (that may have been produced via CKEditor or some similar rich text/HTML editor and stored in entities).

You can also connect to external screens implemented in other technologies of course (via the External URL tool), but then your users would be leaving the context of your applications.

Given that you can include HTML directly on your screens it is possible to use an iframe to dynamically embed a screen defined elsewhere if you really want that sort of thing.

Hope this helps!

Rank: #12668

Thank you, Ricardo and Jorge, for your reply.

Explaining a little bit of the use case:

We have a CMS, already built-in Outsystems, where we can update the information of some identified screens. Those screens were created in Service Studio and the information on it is updated on the CMS, which uses the CKEditor to built it with HTML.  

Now the question is if is it possible to create a screen without creating it on Service Studio? For example, I already have 100 screens that we can update the information with CKEditor. Those screens were created on Service Studio with the theme that we defined for all screens on that application. But now the business area wants a new screen and they would like to create it, with the same theme as the others, directly on the CMS without the need of creating it on Service Studio. 

For the research that I made and knowledge, I don't think this is possible. Like Jorge said all the screens are created in design time and cannot be created at runtime. 

 

mvp_badge
MVP
Rank: #116

Hi Jose,

As already explained there is no way to create screen in runtime.

But because you want to create new screens with existing templates only so I would suggest you below steps to achieve this:

1. Create one screen for each different template

2. Keep input parameter in the screen like CMSPageId or something

3. Based on this parameter parameter fetch data from database (in backend you will save CMS page content in your entity records)

4. Make the content portion or your screen template dynamic (using expression etc) so that you can bind it with the content you fetch based on input parameter (like heading, content, images etc). 

5. In backend you can use Add CMS page and while creating you can give a dropdown to select from different available themes (this can be stored and fetched from an static entity)

6. While creating link to any of these CMS page set URL/ destination based on the type of theme that CMS page is using

mvp_badge
MVP
Rank: #68
Solution

Hi José.

You know I like to find creative solutions :)

There is always another way that you don't want to use here.

We agree that if you have the screen or you want people to interact, you generate an empty screen and inject the code with expressions as placeholders.

If you don't have the screen and don't want people to interact, you can generate it completely in HTML and do a download flow in preparation so the result of opening the page will be to open in browser an html file.

it is not pretty, but is the only way.

mvp_badge
MVP
Rank: #116

Hi Jose,

As Rodolfo said, you can configure SEO URL in service center. This is very easy to implement in simple use cases but because you are creating screens dynamically so you have to follow a perticular pattern (like URL slug-pageid) to form your application URL and configure them in service center and use same path in your application also while navigating from one screen to other.