Saturday, July 11, 2009

Siebel - Configuring Message Broadcast Caching

The following task describes how to configure your applications to take advantage of message broadcast caching.

NOTE: Message Broadcast administration is not supported on Mobile Web Clients when message broadcasting caching is on. Additions, edits, and deletions to the Message Broadcasts list should be made when connected to the server.

To configure message broadcast caching

1 Enable message broadcast caching at the server level: For each application’s object manager, set the Application Enable Message Broadcast Cache parameter to True.

For details on configuring server component (or AOM) parameters, see Siebel System Administration Guide.

NOTE: The default value for the Application Message Broadcast Cache Size parameter is 100. It is unlikely that you need to increase this value. The minimum cache size is the ratio [message bar refresh rate] / [message update interval]. For example, if the message bar updates every 120 seconds and the message updates every 10 seconds, you need to set the cache size parameter to at least 12.

2 Enable message broadcast caching for Dedicated Web Clients (if any): Add or edit the EnableMsgbroadcastCache parameter in the [Siebel] section in your application’s CFG file:

EnableMsgbroadcastCache = TRUE

3 If you use any workflow policy that contains a workflow policy program of Type = Send Broadcast Message, then activate the Check New Broadcasted Message workflow policy, which belongs to the Siebel Messaging policy group.
For information about activating workflow policies, see Siebel Business Process Designer Administration Guide.
The Check New Broadcasted Message policy monitors the S_BRDCST_MSG table and invokes the Notify Broadcasted Message workflow process to broadcast any new message added to the table.

Siebel Scripts

This Script will be used if you want to merge multiple Accounts ata a time.


function Service_PreInvokeMethod (read, Inputs, Outputs)
{
var BOobj = TheApplication().GetBusObject("Account");
var BCobj = BOobj.GetBusComp("Account");
var x = Clib.fopen("C:\\Input.txt","rt");
var line;
TheApplication().TraceOn("C:\\trace.log", "Allocation", "All");
try{
line=Clib.fgets(x);
if(x!= null)
{
while(line != null)
{
var cmdArray = line.split("|");
var l_sWinnerId = cmdArray[0];
var l_sLoserId = cmdArray[1];
//TheApplication().RaiseErrorText( l_sWinnerId + l_sLoserId);
BCobj.InvokeMethod("SetAdminMode","TRUE");
BCobj.SetViewMode(3);
BCobj.ClearToQuery();
var searchExpr = "[Id]='" + l_sWinnerId + "' OR [Id] = '" + l_sLoserId + "'";
BCobj.SetSearchExpr(searchExpr);
BCobj.ExecuteQuery (ForwardBackward);
var rec1 = BCobj.FirstRecord();
TheApplication().Trace("The value of rec1 before while...." + rec1);
while(rec1)
{
if ( BCobj.GetFieldValue("Id") == l_sWinnerId)
{
//TheApplication().RaiseErrorText( l_sWinnerId);
//var mergeResult =BCobj.InvokeMethod("MergeRecords", l_sWinnerId, l_sLoserId);
//TheApplication().RaiseErrorText( l_sLoserId);
TheApplication().Trace("Started Merging the accounts ...." + l_sWinnerId + " and " + l_sLoserId);
//TheApplication().Trace("Merge Ended with result ...." + mergeResult );
rec1 = null;
TheApplication().Trace("The value of rec1 in the if loop...." + rec1);
}
else
{
rec1 = BCobj.NextRecord();
TheApplication().Trace("The value of rec1 after nextrecord...." + rec1);
}

}
line=Clib.fgets(x);
}
}
}
catch(e)
{
TheApplication().Trace(e);
throw(e);
}
Clib.fclose(x);
// finally
// {
BCobj=null;
BOobj=null;
// }
TheApplication().TraceOff();
}