Scenario :
We have an Open UI Siebel 8.1.1.11 Patchset 9 application. Currently the first phase of the project is live in production.
We had used Override Default Theme (Doc ID 1600754.1) to override the default theme and launch the application in our custom theme.
Users have been using the application with the custom theme since some months now.
For the second wave, the requirement is to have a "new" 2nd custom theme.
1st Custom Theme - Tree layout and Custom1
2nd Custom Theme - Tab layout and Custom2
The challenge we are facing is, we are not able to now get the users launch the application in 'new" 2nd Custom Theme without having the SPFs deleted.
How can we launch the application in the new theme without deleting the SPF of all users? Do we have any work around through Open UI or Configuration?
We have an Open UI Siebel 8.1.1.11 Patchset 9 application. Currently the first phase of the project is live in production.
We had used Override Default Theme (Doc ID 1600754.1) to override the default theme and launch the application in our custom theme.
Users have been using the application with the custom theme since some months now.
For the second wave, the requirement is to have a "new" 2nd custom theme.
1st Custom Theme - Tree layout and Custom1
2nd Custom Theme - Tab layout and Custom2
The challenge we are facing is, we are not able to now get the users launch the application in 'new" 2nd Custom Theme without having the SPFs deleted.
How can we launch the application in the new theme without deleting the SPF of all users? Do we have any work around through Open UI or Configuration?
Possible scripting approach:
A review of the standard Siebel configuration (using the sample database) reveals the following:
In BC 'User Preferences' the Default Theme ("Theme" in the UI) is stored in field 'Behavior/DefaultTheme'. This field has 'Default Theme PickList' as pick list. This one is constraint (via a pick map) by field 'Behavior/DefaultNavCtrl' ("Navigation Control" in the UI). This field has 'Default NavCtrl PickList' as pick list. This one is constraint (via a pick map) by field 'Behavior/DefaultPlatformType'. This one has 'Default Platform Type PickList' as pick list.
The field 'Behavior/DefaultPlatformType' is not displayed in the UI. It is set automatically (to "Desktop", "Tablet" or "Phone") depending on the platform. When this field is set to "Desktop", the values available in the pick list of field 'Default NavCtrl PickList' are "Tab" and "Tree". When field 'Default NavCtrl PickList' is set to "Tab" the values available in the pick list of field 'Behavior/DefaultTheme' are "Gray Tab" and "Tangerine Tab". When this field is set to "Tree" the values available in the pick list of field 'Behavior/DefaultTheme' are "Gray Accordion" and "Tangerine Accordion".
In BC 'User Preferences' the Default Theme ("Theme" in the UI) is stored in field 'Behavior/DefaultTheme'. This field has 'Default Theme PickList' as pick list. This one is constraint (via a pick map) by field 'Behavior/DefaultNavCtrl' ("Navigation Control" in the UI). This field has 'Default NavCtrl PickList' as pick list. This one is constraint (via a pick map) by field 'Behavior/DefaultPlatformType'. This one has 'Default Platform Type PickList' as pick list.
The field 'Behavior/DefaultPlatformType' is not displayed in the UI. It is set automatically (to "Desktop", "Tablet" or "Phone") depending on the platform. When this field is set to "Desktop", the values available in the pick list of field 'Default NavCtrl PickList' are "Tab" and "Tree". When field 'Default NavCtrl PickList' is set to "Tab" the values available in the pick list of field 'Behavior/DefaultTheme' are "Gray Tab" and "Tangerine Tab". When this field is set to "Tree" the values available in the pick list of field 'Behavior/DefaultTheme' are "Gray Accordion" and "Tangerine Accordion".
> To force the Siebel Call Center application to start with "Tangerine Tab" as default theme the sample script below has succesfully been tested. This one,placed in the Application_Start event of application 'Siebel Universal Agent', sets the fields 'Behavior/DefaultNavCtrl' and 'Behavior/DefaultTheme' ("Navigation Control" and "Theme" in the UI) to "Tab" and "Tangerine Tab" respectively:
function Application_Start (CommandLine)
{
var oBO = this.GetBusObject("User Preferences");
var oBC = oBO.GetBusComp("User Preferences");
var oPickDNBC;
var oPickDTBC;
with (oBC)
{
SetViewMode(AllView);
ActivateField("Behavior/DefaultNavCtrl");
ActivateField("Behavior/DefaultTheme");
ClearToQuery();
ExecuteQuery(ForwardOnly);
if (FirstRecord())
{
oPickDNBC = GetPicklistBusComp("Behavior/DefaultNavCtrl");
with (oPickDNBC)
{
ClearToQuery();
SetSearchSpec("Value", "Tab");
ExecuteQuery(ForwardOnly);
if (FirstRecord())
{
Pick();
oPickDTBC = oBC.GetPicklistBusComp("Behavior/DefaultTheme");
with (oPickDTBC)
{
ClearToQuery();
//SetSearchSpec("Value", "Gray Tab");
SetSearchSpec("Value", "Tangerine Tab");
ExecuteQuery(ForwardOnly);
if (FirstRecord())
{
Pick();
oBC.WriteRecord();
}
}
}
}
}
}
oPickDTBC = null;
oPickDNBC = null;
oBC = null;
oBO = null;
}
Please note that the above script a sample script only. You can try to implement a similar one in your environment adapted to your specific requirement. Please test it thoroughly before applying it in Production.
function Application_Start (CommandLine)
{
var oBO = this.GetBusObject("User Preferences");
var oBC = oBO.GetBusComp("User Preferences");
var oPickDNBC;
var oPickDTBC;
with (oBC)
{
SetViewMode(AllView);
ActivateField("Behavior/DefaultNavCtrl");
ActivateField("Behavior/DefaultTheme");
ClearToQuery();
ExecuteQuery(ForwardOnly);
if (FirstRecord())
{
oPickDNBC = GetPicklistBusComp("Behavior/DefaultNavCtrl");
with (oPickDNBC)
{
ClearToQuery();
SetSearchSpec("Value", "Tab");
ExecuteQuery(ForwardOnly);
if (FirstRecord())
{
Pick();
oPickDTBC = oBC.GetPicklistBusComp("Behavior/DefaultTheme");
with (oPickDTBC)
{
ClearToQuery();
//SetSearchSpec("Value", "Gray Tab");
SetSearchSpec("Value", "Tangerine Tab");
ExecuteQuery(ForwardOnly);
if (FirstRecord())
{
Pick();
oBC.WriteRecord();
}
}
}
}
}
}
oPickDTBC = null;
oPickDNBC = null;
oBC = null;
oBO = null;
}
Please note that the above script a sample script only. You can try to implement a similar one in your environment adapted to your specific requirement. Please test it thoroughly before applying it in Production.
0 comments:
Post a Comment