Custom Popup Applets

July 12th, 2007

Obviously, with every implementation we do we aim to rollout a ‘vanilla’ solution. By now, everyone has fully ‘bought in’ to that mantra and understands the ongoing benefits of not over-customising. Having said that, there are still situations that justify slight, er, tweaks to the Siebel application…

A recent one for me included giving the user a list of options on completing an action. Now, I could get the result I needed by navigating to a new view, but the UI was pretty unfriendly. What I really wanted was a modal popup dialog.

In Siebel 7+ it’s possible to launch a pop-up applet from a normal applet by using the ShowPopup method. Details are in Bookshelf -> Configuring Siebel eBusiness Applications -> Configuring Special Purpose Applets -> Configuring Pop-Up Applets Launched from Applets. To summarise the instructions:

  1. Add a control to your applet
  2. Set the control Method Invoked to ShowPopup
  3. Set the control User Property Popup to the name of your popup applet

The popup applet specified in the user property must use a class derived from CSSSWEFramePopup. To see all possible classes select ‘Class’ in Tools Object Explorer and query for ‘Super Class’ = CSSSWEFramePopup: the standard class for a popup list applet is CSSSWEFrameListPopup. (What if you can’t see Class in the object explorer?) If you’re creating a new applet for your popup and you don’t expect edits in the popup, it’s simplest to configure your layout in ‘Base’ mode.

The popup applet can be based on any business component in currently active business object, and will appear in context. So you could launch a popup from the Orders applet, for instance, and list all child Order Line Items. Alternatively, you can base your popup on a VBC and display any random list of choices you desire. Because it’s all in context, capturing the user action and invoking a change on the launching business component is trivial.

So that’s all good and easy; not even too much customisation. Click a button, up pops our applet. Now, the challenge for any bored configurators out there is this: how do we automagically popup this applet on a new record when it’s written for the first time? Suggestions welcomed in the comments…

Entry Filed under: Configuration, Siebel

16 Comments Add your own

  • 1. Martin Piekov  |  September 18th, 2007 at 6:46 pm

    I am trying to solve the same problem. oApplet.InvokeMethod(“SHowPopup”) requires some additional parameters. with the opup applet name it istill asks for SWETA parameter. Have no clue what to enter there.

  • 2. stuandgravy  |  September 20th, 2007 at 10:13 am

    Vacation has got in the way of writing the follow-up to this post, so in the meantime…

    You can’t invoke the ‘ShowPopup’ method directly through script. Instead, you need to create your button as described above, then you can ‘click’ this button programmatically using the browser script ‘FindActiveXControl’ hack described in Popping up the Persistent Dashboard.

    Hope that sets you on your way. Will write up a proper explanation once I’ve caught up from the holiday…

  • 3. Mike Lin  |  November 27th, 2007 at 10:14 am

    Clever hack.

    Here’s a followup question: Let’s say you have 2 such controls on your applet that popup different applets. You would like to conditionally disable one of the two controls. How can you disable one ShowPopup control without disabling the other.

  • 4. stuandgravy  |  November 27th, 2007 at 9:33 pm

    Ooh, tricky. Top of my head…

    I don’t think the ‘Popup’ buttons have to be visible to be programatically clicked… So you can create two hidden buttons to popup your two buttons, then two visible buttons that invoke the hidden buttons through different methods. These ‘wrapper’ methods could then be enabled through PreCanInvoke events as usual.

    Interested to know if it works!

  • 5. SMLHP  |  February 14th, 2008 at 2:24 pm

    what if i want to check some thing after click the botton that call pop up applet to decide either show the pop up or raise error message
    can i do this?

  • 6. SMLHP  |  February 14th, 2008 at 2:44 pm

    oh just wirte down something in WebApplet_PreInvokeMethod
    with if( MethodName == “ShowPopup” ) :P

  • 7. stuandgravy  |  February 14th, 2008 at 2:51 pm

    That’d do you nicely :)

  • 8. Ranjith  |  May 20th, 2008 at 8:12 pm

    Hi,

    nice hack. I have a requirement. I have to popup one of three different pop up applets based on various conditons in a script, triggered from a single button. The user clicks only one button, but one of the three applets should be popped . How can this be done ?

  • 9. stuandgravy  |  May 21st, 2008 at 9:03 am

    Ranjith,

    You’d use a similar trick to comment (2) above: set up three separate buttons for your three popup applets, with the ShowPopup method configured correctly on each. Make all three of these buttons hidden. Then configure a fourth button to invoke a browser script which ‘clicks’ the appropriate ShowPopup button using the FindActiveXControl hack.

  • 10. Bram  |  August 26th, 2008 at 7:49 pm

    Could this also work in a list applet?

    I want to call the ShowPopup method on a drilldown event in certain situations, but since not possible through scripting, could it be done through your workaround?

  • 11. Geetha  |  August 28th, 2009 at 10:25 pm

    The records are not getting displayed. The BC is active, and link also exists between the different BCs.

    Is there anything i could have missed?

  • 12. ramesh  |  November 5th, 2009 at 3:48 pm

    Hi,

    Can any one tell me how to retrieve value in popup applet like mvg applet from parent/base applet. so records in mvg applet can be filtered based on the value in base applet field/column

    thanks

  • 13. Count Records from a Butt&hellip  |  December 4th, 2009 at 7:24 pm

    [...] not encouraging. The error message was also not illuminating.So I took a stroll on Google and found stuandgravys entry on popup applets. Thanks Stu!Here is how the final solution works:1. Create an applet button and set the Method [...]

  • 14. Him  |  February 16th, 2010 at 10:11 pm

    @ramesh
    u dnt need to do any special config for the popup..configure the pop up as u wud normally do setting the control user properties etc etc..however write a script on applet load method of ur mvg popup applet to constrain it… havent tried it but shud work..

  • 15. swarna  |  March 22nd, 2010 at 9:30 pm

    HI

    I have configured a PopUp applet . But it is not disalying any records in it. Also, the BC’s of the two applets i.e Popup Applet and Invoking Applet are different. can this be the reason.

  • 16. Puli  |  April 19th, 2010 at 9:23 pm

    According to custom popup applets you can invoke through scripts, see my comment on Popup Applet in a script without button. It’s for Siebel version 7.0.5.

Leave a Comment

Required

Required, hidden

Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackback this post  |  Subscribe to the comments via RSS Feed


Calendar

July 2007
M T W T F S S
« Jun   Aug »
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

Most Recent Posts