Deprecated_NotifyGetMessage (outsystems 11)

Deprecated_NotifyGetMessage (outsystems 11)

  

hi,

In outsystems11, NotifyGetMessage method is Deprecated.

When use popup window, how to get message from popup.


thank you very much



Hi,

For now keep using the deprecated one. This is something that Outsystems needs to address by not deprecating this one or by creating one just for popups.

Regards,

Marcelo

Hi Hon,

In Outsystems 11 "NotifyGetMessage" method is deprecated, but then also you can use it and you will get the proper response.

Hi,


Like Marcelo said you can keep using them if working with blocks that still use the notification methods. They will still work correctly.


It's true that there are still many components (including some on System Components) that are still using them, but deprecating the methods is important to guide developers towards the new Events while keeping backward compatibilty.


Regards,

João Rosado

Hi João,

That stil doesn't explain the vision of OutSystems with regards to pop-ups, which aren't Blocks but Screens, using the Popup_Editor_Notify() to send a notification. Or is there another way to do that in P11?


Thank you very much.

 Is there another way to do that in P11.(Popup window)

Solution

I think OutSystems can use a similar Eventing Mechanism as for webblocks for the popup ( with some differences).

Popups are technically a separate screen in the Service Studio and are created separately.

But - when the webpage is rendered finally -  the HTML and JS content of the popup becomes a part of the parent screen (the one invoking the popup). This popup content is just enclosed in a div with a very high z-index, and position:absolute and some classes like 'os-interal-ui-dialog'.  You can try manipulating these properties and you will observe that with some CSS manipulation and removing certain css classes you can make the popup DOM render as normal div in the parent webpage.  So technically , JS events from the popup will be able to communicate to the parent screens DOM. 

The HTML, JS and CSS of the popup become a part of the parent screen and are enclosed in the DOM.


Behind the scenes, OutSystems is using the server side generated JS event handlers for UI events.(in OutSystems 11 and same for the older Notify mechanism. It is just that the eventing mechanism in P11 is sophisticated and offers much power, but the underlying framework is likely based on generating the server side JS event handlers).

Now - the scenario of popups are bit different than normal webblocks , As popup content is injected later into the parent. So - OutSystems will have to use a slightly different logic for the events for a popup compared to the usual webblocks. (This is same reason why we have separate Popup_Editor_Notify for popups in P10  rather than the simple Notify)


So - for now, would suggest using the deprecated 'Popup_Editor_Notify'. (recommended). Once OutSystems releases a patch with the Events for Popup - please switch to that.


Another (not recommended approach) would be the JS route - inside the popup on click of the button, attach an onClick event handler. And run the JS which manipulates the required CSS classes and properties and removes the DOM element for the popup. You will have to make the logic generic such that you will be able to close popup from any webpage..


Solution

Hello!

As Chetan explained (in nice detail), the recommended solution for the Popup Editor is to keep using the Notify.

We're still working on the vision for the Widget and it's future, it will use events and will be updated soon, but we want to make sure the new solution is prepared for the different types of data being passed between screens.

Also, if you're using complex messages to pass data when closing the popup, consider using the Modal pattern from OutSystems UI, as it's a local widget that uses the same screen (no iframes).