Open Source Automation Tools For Siebel Open

11/20/2017

BL774vY84E/UWZ6Vn1MdYI/AAAAAAAAEOo/T3GYbWQPNpk/s1600/open-ui-label-toggle-1.png' alt='Open Source Automation Tools For Siebel Open Ui' title='Open Source Automation Tools For Siebel Open Ui' />Popup Applet X button Impossible Siebel. This is the long awaited solution to the Popup Applet X button challenge, which was solved by Master configurator Michael Feng. BackgroundSiebel provides us with two events on popup applets, represented by the buttons Ok and Cancel which provides the neccessary hooks to capture most business requirements around closing of popup applets. But the X button is an exception case, where the user forced closed the applet without completing the required interaction. Third+party+test+automation+tools.jpg' alt='Open Source Automation Tools For Siebel Opening' title='Open Source Automation Tools For Siebel Opening' />Open Source Automation Tools For Siebel OpeningsOpen Source Automation Tools For Siebel OpenuiOpen Source Automation Tools For Siebel OpenIn these cases, you might want to rollback any changes that were made since the applet was opened, or popup an alert to educate the user of the consequences of not closing the Applet properly. Siebel popup appletsIt is important to understand what happens when we click on the X on a popup applet in Siebel. The developer who requested help from the Oracle forums, tried attaching a custom method on window. This is the right line of thinking, and isnt far off from Michael Fengs solution below. This would normally work for traditional web apps, but Siebel dosnt close the popup applet when you click X, it just minimizes it and hides it under your taskbar, which is why the window. The way to see this in action, is to set your taskbar to auto hide, watch what happens when you click X on a popup applet. Testautomatisierung Tools und Testwerkzeuge im Softwaretest und Qualittssicherung, Testautomatisierung von Experten fr Experten. Innovative software testing solutions tools and services for automated and manual testing of application software, Web sites, middleware, and system software. Youll see it minimized to a short title bar on the bottom left of your screen, underneath where the taskbar would normally sit when displayed. UsabilityThe reason why Siebel does this is for usability. When you log into your Siebel application, the first time you open any popup applet will always be the slowest, thats because Siebel has to spawn a new instance of an IE window. When you click X, siebel will minimise and hide the window. The next time when you open another popup applet, Siebel will re display and re use this same popup window. Re displaying an existing window is in order or magnitudes faster than opening a brand new window, and greatly enhances the user experience in HI applications. SolutionAs mentioned in the original post, there are various solutions to this problem. When the popup applet is closed, focus will return back to the controlapplet that invoked the popup applet, and you could, pop up a confirmation at this point, but it is ugly, if the popup applet is used in many places then you would have code on a lot of base applets. Since the Popup applet is never closed, another idea is to set a looping timer to determine the position of the applet, and if it disappears below the taskbar then we know it has been closed. Its not a desirable solution as polling adds overhead. So the ideal solution is to trap the X event on the popup applet itself. One alternative is to attach a custom function to the window. Open Source Automation Tools For Siebel Open TennisPopup applet which would give us a real time notification everytime the applet gets moved, and if it moves to the taskbar position, we know the user clicked X. Or we could do better by detecting when the physical dimensions of the Popup applet has been shrunk by monitoring the window. Heres how it can be done, the following code is provided by courtesy of Michael Feng. AppletLoad var o. Con this. Find. Active. XControlNew. Query var obody o. Con. document. body var odiv o. Con. document. create. Elementscript odiv. Unload. Trigger function Unload. Triggerifdocument. Height0 document. Width0alertYou close the popup applet obody. Childodiv An interesting question is, what happens to the Unload. Trigger that is attached to our first popup window, when a second popup is called after the first Does it still linger around, even when if its unwanted on the second window Siebel re renders the entire contents of the applet everytime it is re used, but keeps a cache of the last applet. Base applet Popup Applet A Popup Applet BSiebel will cache the contents of Popup Applet A when it is opened, Siebel re uses the popup window, and renders the HTML for Popup applet B when it is opened. When Popup Applet B is closed, Siebel will reuse the popup window, and restore Popup Applet A from its cache, therefore restoring our Unload. Trigger. So we have to modify the solution to deal with the fact that popups can spawn other popups. AppletLoad var o. Con this. Find. Active. XControlNew. Query var obody o. Con. document. body var odiv o. Con. document. create. Elementscript odiv. Unload. Trigger function Unload. Triggerifdocument. Height0 document. Width0 Top. SWEPopup. Gain. FocusalertYou close the popup applet obody. Childodiv The above code uses and undocumented function Top. SWEPopup. Gain. Focus to determine if a popup is in focus or not. We only want to display a message when there is no popup open. The last piece to this puzzle is to handle the positive events when the user click on Ok and Cancel, in which event we do not want to display our message. Youll need to set profile attributes, or view variables to indicate that the applet was closed properly, and check for these variables in the unload function. AppletLoad var o. Con this. Find. Active. XControlNew. Query var obody o. Ziggy Tv Pro 4.2. Con. document. body var odiv o. Con. document. create. Elementscript odiv. Focus App. Get. Profile. AttrProperly. ClosedYalertYou close the popup applet obody. Childodiv Thanks to Michael for providing this solution, and for helping solve another impossible problem and breaking new grounds on creativity.