Archive for March, 2007

Siebel DBA Resource

I was going to do a post about Siebel resources around the web, but AndyC (aka Norman Brightside) beat me to it.

Andy’s writing some excellent articles for database admins working with Siebel, which will be most handy. I’ve worked with any number of excellent DBAs who know Oracle/SQL Server inside out but nothing about Siebel; now I know where to send them…

Add comment March 14th, 2007

Popping up the Persistent Customer Dashboard

A while ago I was implementing the Persistent Customer Dashboard in Siebel 7.8. Generally, the dashboard is linked into CTI and auto-populates customer details when successfully matching an incoming phone number, after which all the customer info remains visible to the user no matter where else they navigate in the application. Some variation of the functionality is standard in most call centres.This particular client wanted to use the functionality in a more manual scenario though, with the users querying for the customer before manually populating the dashboard. That’s pretty easy to do, invoking the ‘Update Dashboard’ method on the Persistent Customer Dashboard business service.

The first complication was that the client didn’t want the dashboard visible by default - I needed to have it open up and populate on demand. That turned out to be also not too tricky: there’s an ‘OpenDashboard’ method on the same Persistent Customer Dashboard business service that does exactly what is says on the tin. [Note: 'OpenDashboard' (no space) and 'Update Dashboard' (with space). Intuitive, non?]

The tricky thing was that we needed to open the dashboard, update the dashboard details and update the source applet - all from a single button click. Problem: the dashboard and the source applet are in different frames, and only one frame can be updated from one UI event. So if I updated the Dashboard, the update to the source applet didn’t happen. And if I updated the source applet…

The solution was to create a second button on the applet to trigger dashboard update in a server script. Add in a browser script to handle the method for the first button, opening up the dashboard from there - and allowing the source applet updates to happen - before using FindActiveXControl to programmatically ‘click’ the second button - giving us a second UI event and the opportunity to populate the dashboard.

Code below…

Server script ‘Update Dashboard’

// Populate the persistent customer dashboard
var bsDashboard;
var psInputs;
var psOutputs;
var AccountId;

bsDashboard = TheApplication().GetService("Persistent Customer Dashboard");

psInputs = TheApplication().NewPropertySet();
psOutputs = TheApplication().NewPropertySet();

AccountId = this.BusComp().GetFieldValue("Account Id");

if( AccountId != "" )
{
psInputs.SetProperty("Source Name","Base View");
psInputs.SetProperty("Buscomp Name", "Account");
psInputs.SetProperty("RowId", AccountId);
bsDashboard.InvokeMethod("Update Dashboard", psInputs, psOutputs);
}

Browser script ‘Select Customer’

// Open up the Persistent Customer Dashboard
var svc = theApplication().GetService('Persistent Customer Dashboard');
var inputs = theApplication().NewPropertySet();
var outputs =theApplication().NewPropertySet();
outputs = svc.InvokeMethod('OpenDashboard', inputs);

// Click the custom 'To Dashboard' button
var obj = this.FindActiveXControl("UpdateDashboard");
// obj.all[0].all[0] locates the Anchor tag.
obj.all[0].all[0].click();

Add comment March 2nd, 2007

Manually Editing Archive Files

Time to get the stetsons out, as we used to say in London on those rare [ahem] occasions when we needed to get something done fast-and-dirty.

If you use Tools, you know about .sif files: the output you get from the Add to Archive… command. Maybe you’ve found somewhere with beautiful automated change control software that integrates seamlessly with Tools and you don’t have to manually backup, compare or rollback your own changes - but I never have. [Aside: if you don't have awesome change control and you're not personally archiving objects before making changes, start now. Seriously. You never want to have to go to your DBA and ask him for something from the backup just because you screwed up. Anyway... ]

What’s particularly useful about these sif files is that they’re just text. No binary, no hex, not even any fancy encoding as far as I’m aware: just a bunch of loosely approximated XML. And these can be imported into Tools and interpreted as objects.

So if you have a need to, say, change the field for a list column that appears in fifty different applets, then there’s nothing to stop you archiving all of the applets to a sif, opening up that sif in your favourite text editor, running a little search-replace and re-importing the sif into Tools. Similarly with the ‘Allow Object Locking flag’ that’s read-only in 7.7.

I’m not saying you should, of course. Just that you could. If you wanted to. And it’s maybe a little less of a hack than doing something similar with SQL through Sybase.

Add comment March 1st, 2007

Next Posts


Calendar

March 2007
M T W T F S S
« Feb   Apr »
 1234
567891011
12131415161718
19202122232425
262728293031  

Posts by Month

Posts by Category