Custom Popup Applets

July 12, 2007 at 9:19 am 7 comments

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.

Enable Script Assist Siebel Meetup


  • 1. Martin Piekov  |  September 18, 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 20, 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 27, 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 27, 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 14, 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 14, 2008 at 2:44 pm

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

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

    That’d do you nicely 🙂


%d bloggers like this: