Hierarchical List Applets

A customer requirement had me a little stumped recently – to implement an Hierarchical List Applet based on the Action BC.

Looking in Bookshelf, there isn’t a lot said around the configuration of such applets. In fact, the guide basically tells you to look at an existing applet and work it out for yourself!

We at Ollerenshaw IT don’t want you to work it out for yourself, so we’ve worked it out for you. Here’s a guide to creating your own Hierarchical List Applet, based on the Action BC’s relationship with itself via ‘Parent Activity Id’:

  1. Create a new Project and lock
  2. In Tools, create a new List Applet via the wizard:
    • Pick ‘Action’ as the underlying BC
    • Pick ‘Applet List (Base/EditList)’ as the underlying template for Base and Edit List
    • Choose a small number of fields to display
  3. Create Applet Method Menu Items:
    • Indent
    • Outdent
    • MoveUp
    • MoveDown
  4. Add the following User Properties to the Applet:
    • CanInvokeMethod: Outdent = TRUE
    • CanInvokeMethod: Collapse = TRUE
    • CanInvokeMethod: Expand = TRUE
    • CanInvokeMethod: Indent = TRUE
  5. Modify the ‘HTML Hierarchy Bitmap’ property of the Applet ‘List’ control to: ‘HTML Hierarchy Icons’
  6. Check out the ‘Action’ BC
  7. Modify the ‘Hierarchy Parent Field’ property of the BC to: ‘Parent Activity Id’
  8. Locally lock the ‘Activity List View’ for testing
  9. Replace the ‘Activity List Applet with Navigation’ applet with your new Applet
  10. Compile all objects and test

The icons and expand / collapse elements will display themselves on the first list column exposed on the applet. This doesn’t work if said column is a CHECK type, so I’d recommend exposing a unique field such as ‘Id’ and using this as the first column in the applet. Note also that you may want to use the ‘Disable Buscomp Hierarchy’ Applet User Property to disable this functionality where it’s not needed.

Finally, from all of us here Have a Merry Christmas and a Very Happy New Year! :)

VN:F [1.9.13_1145]
Rating: 9.7/10 (3 votes cast)

Hiding Applet Controls

Christmas is fast approaching and it’s all change here at Ollerenshaw IT! ;) Our Siebel upgrade project is on hold and I’m back in the development hotseat, doing what we all secretly love doing best – writing code!

Working in Siebel 8 shows just how things have moved on since the old days of Siebel 99, 6 and Siebel 7. Nowadays, we have loads of User Properties at our disposal and there’s less and less of an excuse to write script. Inevitably, however, Oracle haven’t quite thought things through and we have to resort to good old eScript. It’s just the way of things.

This week I came across an annoying oversight. A simple requirement to hide a button on an applet for all but a select Responsibility. Easy peasy, surely? Not so!

A quick search reveals a number of Blog entries, including one from Alex Hansal’s fantastic site, detailing a ‘Hide Control’ user property. Alas, this property is only available on a very small subset of Applet classes and so cannot be used as a ubiquitous solution.

And so we must turn to code and configuration.

Again, there are a number of Blog posts out there that provide this information, but I just wanted to go a little further and provide a full solution with some little hints and tips. Here’s what I did:

  1. Create a new field in the Personalization Profile BC, to tell us if the user has the appropriate Responsibility
  2. Name: OLI – HasAdminResp
    Calculated: Y
    Calculated Value: IIf(InList(‘Siebel Administrator’,GetProfileAttrAsList(‘User Responsibilities’)), ‘Y’, ‘N’)

  3. Now, add some Browser Script on the Applet_Load event to hide the control, based on the the new Profile Attribute:
function Applet_Load ()
{
/******************************************************************************
* Created By: Iain Ollerenshaw
* Created On: 12th December 2011
* Purpose: Called on Applet Load
*
* Modification History:
*
* Date Who Comment
* 12/12/2011 Iain Ollerenshaw Added code to hide 'Admin' button
******************************************************************************/

// First, determine if user has the 'Siebel Administrator' Responsibility
var isAdmin = TheApplication().GetProfileAttr("Me.OLI - HasAdminResp");

// If not, find and hide the control
if (isAdmin == "N")
{
	var oCtrl = this.FindActiveXControl("Admin");
	if( oCtrl != null )
	{
		// Hide the control
		oCtrl.style.visibility="hidden";
	}
}
}

It’s a shame that so much code is required to do something so simple. Hopefully, ‘Hide Control’ will make it into the base classes sometime in the future.

Happy Holidays! :)

VN:F [1.9.13_1145]
Rating: 9.7/10 (3 votes cast)

Siebel 8.2.2 – First Impressions

Well, I’ve downloaded 8.2.2 Public Sector from eDelivery and unzipped all I need. Here’s a quick summary of what I’ve found so far!

ImageCreator – no more!

Unzipping all the JAR files into a single location left me a bit confused. Where’s ImageCreator.exe? No more, from what I can see! There’s a wee batch file called ‘snic.bat’ that does the job instead. Simply open a command prompt, set JAVA_HOME and run snic.bat. Behold, the new face of ImageCreator:

ImageCreator – but not as you know it

First thing to note – it works great in Windows 7 64-bit! WOO HOO! Thank you Oracle! :)

All the familiar options are there, so I opt to create installers for the Siebel Enterprise, Tools, Web Client and SWE. English language picked, it creates the installers. Simple, awesome, it works. Hurrah!

Installation

That done, I have two freshly created Windows 2008 R2 VMs ready to roll – one for the App Server / SWE and one for the database. I’ve taken the liberty of installing Oracle 11g in preparation – I hope you don’t mind! I’ve also set aside a Windows 7 64-bit VM for Siebel Client and Tools installations, with the 11g client already installed.

So, the installations. Are they now supported on Windows Server 2008? Well… Yes! The installation process for Server components now follows the OUI method of the Client and Tools installers for 8.1:

Familiar installer

Cool! Much better than the old 8.1 installers. Working great in 64-bit 2008 R2 too – no complaints about incompatibility!

Configuration

Launching the config shortcuts reveals a make over of the configuration wizards, in keeping with the installer look and feel. Everything works as before but it’s much cleaner and much more compatible.

Clean and compatible configuration

Initial Gateway Configuration failed and I don’t know why. You’ll notice that the file system structure of the installation looks very ‘Oracle’ like and far less ‘Siebel’ like – the configuration log files reside in a ‘cfgtools’ folder though I could find no error to speak of in any of the files. I was unable to uninstall the Gateway too – again, no trace of an error in the log files but the configuration wizard refused to complete successfully. Enterprise configuration ran without a hitch.

It’s at this point I will mention that the ODBC datasource for the Enterprise was created in the 32-bit subsystem. That is, checking in the registry (or through the SysWOW version of odbcad32.exe), you’ll see the ODBC entries in the WOW (Windows in Windows – the 32-bit subsystem supporting 32-bit apps in 64-bit Windows) area. This is a disappointment and certainly suggests no native 64-bit support. Checking the binaries in starting the Siebel Server and Gateway, I can see quite clearly that they are running in the 32-bit subsystem so are most certainly not native 64-bit. :(

GRANTUSR.SQL has received a well deserved make over – a far larger script prompts for more detailed information, performs more checks and is generally easier and safer to use. Excellent stuff.

SWE installation still does not support IIS 7.5 natively and requires the IIS 6 metabase compatibility to be enabled.

The rest of the configuration of the Database Server, Siebel Server and SWE are much the same as before.

Tools and Web Client

Familiar installation dialogs for Tools and Web Client. The only addition is the ability to sign up for Oracle updates, in line with newer Oracle product installations. Windows 7 is now seen as a supported OS, so no compatibility problems this time around. Nice!

Finally, support for Windows 7

 No problems with regsrvr hanging on the Client installation but the installer has crashed at 100% – ‘Updating registry key … AutoStartOnDisconnect’. I’ve had to kill it. :( Running again ‘As Administator’ seemed to get around this – still not great, thought. I want to be able to install client software without faffing around with UAC.

I’ve had to stop here – the ‘All Inclusive’ keys on the the Oracle License Key page are yet to include 8.2.2 keys, so I can’t go any further.

I’ll post again when I get chance to investigate some of the functional and technical changes present in 8.2.2.

VN:F [1.9.13_1145]
Rating: 9.3/10 (3 votes cast)

Siebel 8.2.2 Released via eDelivery

I’ve just noticed that Siebel 8.2.2 Public Sector is now available on eDelivery – under ‘Windows 64-bit’ no less!

Does this mean full 64-bit support for Siebel Servers?! Can we finally say goodbye to 3.2 GiB and PAE? I wonder what other, exciting features we can expect to see!

Am downloading now with update to follow – stay tuned! :)

VN:F [1.9.13_1145]
Rating: 8.0/10 (2 votes cast)

Siebel 8.1.1.x and BIP – JRE Version

More BIP fun today as I discovered yet another ‘gotcha’ while upgrading to Siebel 8.1.1.5.

I have been getting these errors while trying to upload report definitions:

SBL-EAI-05010: Class name incorrect or does not extend SiebelBusinessService

Okay, all very standard – just a typo in my CLASSPATH parameter for the Java Subsystem, right? Wrong! And here’s why:

Exception:java.lang.UnsupportedClassVersionError: com/siebel/data/SiebelPropertySet (Unsupported major.minor version 50.0)

A quick MOS search reveals a new article:

JRE version 1.6 required for all Siebel versions from Fix Pack 8.1.1.4 onward [ID 1285062.1]

Now, I saw no mention of this in the Siebel Reports Guide. I’ve always used the JRE that comes installed as part of BIP and most other configurators that I know do the same. Not so with 8.1.1.5! As usual, there is very little detail in the article other than ‘install JRE 6′.

Here is what I did to resolve. Now, I’m not sure all of this is required but I’m so fed up of messing around with BIP that I’ve just gone ahead and done the lot. Feel free to experiment:

  1. Download JRE 6
  2. Install on the Siebel Server – I put the JDK in D:\Java\ and the JRE in the same location
  3. Update your Java Subsystem with the path to the JVM. (For example, if you’ve install Java in D:\Java\jdk1.6.0_27)
  4. change param DLL=D:\Java\jdk1.6.0_27\jre\bin\client\jvm.dll for named subsystem XMLPJvmSubsys

  5. (For Windows) Set the JAVA_HOME environment variable (For example: D:\Java\jdk1.6.0_27)
  6. (For *NIX) export JAVA_HOME (For example: export JAVA_HOME=/usr/java/jdk1.6.0_27/
  7. For good measure, I added JAVA_HOME\bin to my PATH

Rumour is that Siebel 8.1.1.6 is out and about – here’s hoping that some stability will be introduced into the BIP integration, not yet more problems!

VN:F [1.9.13_1145]
Rating: 7.7/10 (3 votes cast)