Thursday, August 11

How to debug browser script in Siebel ?

Generally we will debug browser script using alert() method,but recently I came to know that an interesting feature in IE8 - which is very useful in debugging browser script,I thought many of developers not aware of this useful feature from IE so writing this as a post.

 We can debug a browser script using IE8 (Internet Explorer 8) developer tool instead of alert() method,The Developer tool is available as free plug-in for IE and Firefox of other versions and its a in-built  feature for IE8

Follow the below steps to happily debug your browser script.

1) Compile your script and run genbscript utility for your script,if you are not aware of running genbscript see below example.  

Ex:  Go to commandpromopt and run below command by changing parameters as per your environment.

C:\Siebel\8.1\Client_1\BIN\genbscript.exe C:\Siebel\8.1\Client_1\BIN\esn\scommwireless_ESN.cfg C:\Siebel\8.1\Client_1\public\esn


2) Login to your local or dedicated client.

3) Navigate to the view where your browser script is written.

4) Select Tools --- > Developer Tools on your IE 8 explorer. (or press F12),Developer Tool window will open

Monday, July 11

Siebel Sequential Merge and Standard Merge

Sequential Merge and Standard Merge

Siebel provides options for matching and merging the duplicate records to maintain high quality data in the application. Matching (also called as DeDuplication) can be done using Data Quality functionality provided out of the box. After the potential duplicate records are identified using Data Quality functionality, they can be merged using Sequential Merge.
There can be instances where duplicates can be identified manually and required to be merged. This can be done using Standard Merge.

Take a note of following points:

·    Sequential Merge can be done only from Administration – Data Quality Screen where as Standard Merge can be performed against standard entities like Account/Contact from their respective screens.
·    Sequential Merge merges fields at the Parent level wherein Standard Merge Parent level fields are not merged. e.g. if Contact mobile number is populated on Losing record and not populated on Winning record, it will not be carried to the Winning record in Standard Merge.
·    Only exposed and force active fields are merged in Sequential Merge
·    If hidden fields are to be merged, set list column user property as ForceActive Y
·    In Sequential Merge, record with lowest sequence number is Winning record whereas last selected record is the Winning record in Standard Merge
·    If there are any business validations before Merge, those can be put on PreInvokeMethod of the applet
·    If there is any processing after Merge, it can be put on InvokeMethod of the applet
·    It is recommended to skip all code on respective entities in all events while Merge is happening. This can be achieved through setting profile attribute on PreInvokeMethod and resetting it in error handling and InvokeMethod

Siebel Loyalty : Changing Transaction Status

Loyalty : Changing Transaction Status

If the transactions are created in the batch mode by the Loyalty engine, the status of the transactions will be in "Queued" status. When you click on the process button manually, this will not be processed. This OOTB behavior can be modified by changing the user property OrderToTxn:Transaction Status as below.

Business Service Name: LOY Customer Action Business Service

Business Service User Property:
   
    Old Value: LOY_TXN_STATUS_CD|Queued
   
    New Value: LOY_TXN_STATUS_CD|Acceptable

Use:
This allows us to manually process the Loyalty Transactions which are created by the batch mode.

Tuesday, June 28

Problem: Applying Siebel tables erroring out on DB2 Database


Problem: Applying Siebel Tables failing erroring out on a DB2 Database

Analysis:

We had created more than 200 new custom columns in  S_EVT_ACT table and were trying to apply schema changes to Database. However every time we tried to apply the schema changes it failed with below error.


54010 (-670): [IBM][CLI Driver][DB2/NT] SQL0670N The row length of the table exceeded a limit of "16293" bytes. (Table space "SIEBEL_16K".) SQLSTATE=54010

On Investigation it was found that the table concerned was a part of Table space SIEBEL_16K. There is a restriction on DB2 wherein while introducing new columns DB2 checks if the total length of all the columns added together doesn't exceed the maximum row length limit defined by the tablespace. In our case the total length was exceeding this limit of 16293 for SIEBEL_16K tablespace and hence it was erroring out.

Once the length of various new columns was reduced to a value such that existing as well as the new columns added upto a figure less than  16293, the new columns were created successfully on the DB.

The other possible option also would be to move the table to a larger tablespace, wherein the current table needs to be renamed and a new table with same name needs to be created on a larger tablespace alongwith indexes.

Hope this helps for some one

Monday, June 27

How to create multiple users on siebel local database

To create multiple Users on a local database:

Login to dbisqlc, which is located in the <Siebel Client>\bin directory.
This will bring up a query screen. Type a SQL statement and then click on the EXECUTE button. 

Grant permissions for users to use the Siebel application:

 grant connect to SSE_ROLE

grant connect to <USER_ID> identified by <PASSWORD>

grant group to SSE_ROLE

grant membership in group SSE_ROLE to <USER_ID>


NOTES:


<USER_ID> should be same as Login Id in S_USER table. 
<group name> must be SSE_ROLE.
The <USER_ID> and <PASSWORD> in the grant command must be in UPPERCASE.

Limitations:


The data in the local database is restricted to the user for which it was extracted.
The local database cannot be synchronized against the server as the local database is accessed using different logins.
If data is subsequently changed on the server, it will be necessary to do another database extract and local database initialization with re-executing the steps to create multiple users.
If the newly created users receive a message that they do not have rights to access Home-Page view, reconnect to the Local Database using the original extracted user and recreate them in the User Administration screen. This is necessary because some records might be missing related to these users in the intersection tables and recreating the users would populate them. 

Friday, June 24

How to Delete selected records in a List applet ?

In List applet,as per vanilla it is not possible to delete the selected records at a time.To achieve this add the below code in applet level then it will allow to delete the selected records.

var oBusComp = this.BusComp();

     with(oBusComp)
       {
            var iRecord = FirstSelected();    
                
                while (iRecord)
                        {
                             this.InvokeMethod("DeleteRecord");
                              iRecord = NextSelected();
                    }
    }

Wednesday, June 22

Drilldown: Setting focus on parent applet

How to set focus on Applets:

As per Siebel vanilla if we click on any hyper link (Drill down) field then it will navigates to another view but after navigates to that view the focus always on child applets instead of “Parent Applet”.

Set the following properties :

Tools Level Changes:

1)    View Level we have “Default Applet Focus” property. Set “Applet name” for this property.

2)    View User Property (Child object of View):
Name :DefaultAppletFocus
Value : “Applet Name” 

After setting above properties also if focus still remains on child applet then we have to verify the following parameters.

Verify cfg file Parameter

3)    In cfg file we have “EnableSIFocusTracking” property; this property should have value as “TRUE”.

Application Side Changes:
 
4)    Application – Server Configuration – Enterprises:
  
·    Query with your “Enterprise Server” name and Query with “ObjMgrName” in “Component Definitions”
·    We have “Component Parameters” under “Component Definitions”, Query with “Enable SIFocusTracking” parameter.
·    Set “Enable SIFocusTracking” parameter to “True”.

Monday, June 20

How to retrieve the List of Profile Attributes available in a Session ?

Sometimes we have a requirement of retrieving the value of Profile Attributes set in a Siebel User's session. However we are not sure of the exact name of that Attribute. To retrieve a list of available Profile Attribute in a user's session, follow the below process:

Navigate to Administration - Personalization - Test. Enter your login and password (both Case Sensitive) and click on the load button. This will give you a list of all system profile attributes that get set upon logging in to the Siebel Application. These profile attributes are available throughout the application. In addition, you can also set your own profile attributes, depending on the business requirements.
As always, use the following syntax to get and set a Profile Attribute:

Setting:
TheApplication().SetProfileAttr("XXXX","Y");  // Where XXXX is the name of Profile Attribute

Getting:
var attr = TheApplication().GetProfileAttr("XXXX");  // Where XXXX is the name of Profile Attribute

Friday, June 17

Getting Task status using scripting

Requirement: Retrieving Task running status using BUSCOMP script

There are requirements where it is required to check in BusComp script if the Task is in running status and put the logic depending on the task running status

Solution:

Write a function on the BC as follows which will return a value to indicate if the task is running:

function GetTaskUIStatus()
{
    try
    {
        var bsTaskUI:Service= TheApplication().GetService("Task UI Service (SWE)");
        var psInput:PropertySet     = TheApplication().NewPropertySet();
        var psOutput:PropertySet = TheApplication().NewPropertySet();   
        var iReturlValue:float = 1;

        bsTaskUI.InvokeMethod("IsNotInTask", psInput, psOutput);   
        iReturlValue =  ToInteger(psOutput.GetProperty("IsNotInTask"));
    }
    catch (e)
    {
    //error handling logic
    }
    finally
    {
    // Destroy variables
    }
    return iReturlValue;   
}

Call this function where ever you want to check if Task is running as given in example below:



function BusComp_PreWriteRecord ()
{
    try   
    {
        if (GetTaskUIStatus() != 0 )
        {
        //Specific actions to be performed if Task UI is not running
        }
    }
    catch(e)
    {
    //error handling block
      }
      finally
      {
    //destroy variables
      }
     return ContinueOperation;
}
If the Task is running value returned is 0 and otherwise it is 1.

Invoking Task from button when no records in the applet

We may get a requirement to invoke TBUI from button click. However, if there are no records on the applet and you click button, error message is shown as below

“An error has occurred while initializing task '<Task Name>'.(SBL-BPR-00535)
A context business component record is required for task 'SWC Create Customer Account'(SBL-BPR-00542)”


there is a SR in metalink but its clueless to resolve this error

You can do following to get this working.

1.    Create one dummy record and store it’s row Id at Application Level.
       E.g. in System Preference or LOV.
       This will have to be done and deployed on all environments as part of migration activities.

2.    Invoke custom method on button click
3.    In that method, Retrieve record using the row id stored in system preference or LOV.
4.    Invoke Task using method LaunchTaskFromScript of the business service Task UI Service (SWE)

Hope this helps :)

Audit trail functionality limitation with Assignment manager

As per Siebel bookshelf,Audit Trail functionality have one constraint that "The record updates that are performed through Assignment manager cannot be audited".

You can achieve this with some scripting and the example is given below

Example: In case of Service Request assignment, where it is interactive assignment.

>> On Interactive Assignment Pick Applet (Assignment Results (Employee) List Applet), we can have a code on PreInvokeMethod of Assign method as below which will hold Old and New values of Owner:

function WebApplet_PreInvokeMethod (MethodName)
{
    try
     {
        if(MethodName=="Assign")//if Assign is clicked
        {
        TheApplication().SetProfileAttr("SROldOwner", TheApplication().ActiveBusObject().GetBusComp("Service Request").GetFieldValue("Owner"));
        TheApplication().SetProfileAttr("SRNewOwner", this.BusComp().GetFieldValue("Login"));       
          }
         
    }//end of try
    catch(e)
    {
    //Error Handling Code
    }//end of catch
    finally
    {
    //Destroy Variables
    }//end of finally
    return (ContinueOperation);
}

On InvokeMethod of Assign Method, we can have following code which will create Audit Trail record after assignment is done:

boSR = TheApplication().GetBusObject("Service Request");
bcAudit = boSR.GetBusComp("Audit Trail Item - Data");

Friday, June 3

Siebel High Interactivity Framework – Problem

Siebel High Interactivity Framework – Simple Solution:
Sometimes we get the below error message when we login to Siebel for the first time where the Siebel High
Interactivity Framework will not be available and Siebel will take us to Login Page again after hitting the OK
button on the error message.

Your version of the Siebel High Interactivity Framework for IE, required for use of this Siebel application,
may not be current. In order to download a current version of the Siebel High Interactivity Framework,
please ensure that your browser security settings are correct and then log in to the application again. Consult
your system administrator for details about the Siebel High Interactivity Framework and correct browser
settings


There is a simple solution in order to overcome this issue:

Friday, May 27

SQL query for unlocking BC in local database

There are times where siebel BC will be locked in the local database and you are not able to work on it,the reason for this is you have done a get of that object when the object is checkedout by some other user.

So now your requirement is to unlock the object,for this open your dbisqlc connecting to local database and run the below query

Ex:I am unlocking 'Account' BC in my local DB

QUERY: UPDATE SIEBEL.S_BUSCOMP SET OBJ_LOCKED_FLG='N' WHERE NAME = 'Account'
QUERY: COMMIT

Note: Don't forget to commit changes after you run the sql quey

Hope this helps someone

Tuesday, May 17

Invoking Task from Applet Button

Hi Readers,

There are requirements where you need to call the task from a button other than the regular method of invoking task from task pane.I have invoked using New button of an applet and thought of sharing this.

Go to applet >> Controls >> NewRecord control and select the HTML Type to 'MiniButton' and change the 'MethodInvoked' property to 'LaunchTask'.
 
Now go to Control user property for this button and create new record as follows

Name: Task Name
Value: Address Creation Task (Give the task name which you want to call from the button)

compile the changes and you are done :)

Why Applet fields Read Only in the TBUI

I was searching alot on the web to find "why all task applet fields are read only,even though applet is in edit mode and No Insert and read only properties are set to false",But unable to find some post that can resolve the issue.So I am posting this as this could help some one facing similar issue.

ISSUE: Applet fields Read Only in the TBUI

I was developing a Task which will insert an address record into S_ADDR_PER with the details provided by the user in task applets.these task applets are based on TBC.If you are not aware of TBC read the below definition.


A transient business component (TBC) is a type of business component whose records exist only during the lifetime of a task instance,Records are cleared when the task UI finishes or is canceled. If the task is paused, then the records remain in temporary storage.

There are four views in my task following by siebel operation step with 'Insert' method,so when user clicks the finish button on the final applet with summary of data, an address record will be created in S_ADDR_PER table.

This is all about what I have to do...I have created Task,Task Apples,Task Views,Task Group and TBC and everything looks fine...Also published and activated the task and added the task to my responsibility.


But I am not able to enter any data in the applet fields as all the fields are READ ONLY...There is no problem with applet template modes and read only properties.

After some research I found that the TBC I have created  as multi record TBC and the class mapped to this TBC is CSSBCTaskTransientBase.This is the problem all my applet fields are read only as the base class can not provide functionality to edit fields in tasks.

The TBC should be mapped to CSSBCTaskTransient only,I have changed the class now and my issue is solved :)


 Hope this helps :)

Siebel 8.1.1.3 Upgrade: Communication Response Detail Applet Causing The Issue

Issue:

After Upgrade when replying an inbound email message on Custom 'Comm Outbound Item Form Applet ' on Communication screen, click on cancel button gives following error:

[1] Kan business service 'eSet Parentemail status' niet aanmaken.(SBL-DAT-00227)
[2] Kan 'Class' met de naam 'Set Parentemail status' niet vinden. Dit object is niet actief of bestaat niet.(SBL-DAT-00144)

This is generic error that user can not cancel the reply functionality on Communication screen.

Solution From Siebel: There is one FR raised for this issue:

Instructions for FR 12-1RB07UI
Use the following procedure to implement this fix.

1 Import the EMR_UI.zip file located in the siebsrvr\bin directory.
(This zip you will be able to find in your siebel 8 tools C:\Siebel\8.1\Tools_1\REPPATCH  .
This Zip file contain sifs files which need to import. Please find attached email where objects details are present)
2 Launch the dedicated client with the /editseeddata option.
3 Navigate to Application Admistration > Views.
4 Add a view called "Communication Detail View" with the following responsibilities:

■ Siebel Administrator
■ Call Center Administrator
■ eMail Response Agent
■ eMail Response Manager
■ Call Center Manager
■ Test Siebel Administrator

Please refer to "Instructions for FR 12-1RB07UI" from document "Siebel Maintenance Release Guide, Version 8.1.1.x (Doc ID 880452.1)"

Monday, May 16

Apply and Activate: Problem in Siebel 8 (Siebel Tools will hang)

I was getting strange issue when applying new column changes to my local DB,the siebel tools will hang and I need to kill the siebdev.exe.I was trying multiple times to apply schema changes to local DB but in vain, So I did some research and found that this is a bug in siebel8 and can be resolved using windows debugger tool.

When you are applying new column changes to your local DB,The siebel tools will hang and you need to kill the siebel tools (siebdev.exe) and to try again for applying changes and you may not succeed in your next attempt too.This is a bug in siebel 8 and here is the solution.

> Install the 'windows debugger' tool (dbg_x86_6.11.1.404.msi) >> I am unable to attach this here..get it from web and install.
> Go to All Programs > Debugging Tools for Windows (x86) > Cilick on WinDbg
> Once the tool is open Click File > Open executable > select siebel dev.exe and wait for a minute and go to Debug click on Go

> This will open your siebel tools and now you can successfully apply new column changes to local DB using APPLY and ACTIVATE buttons


NOTE: please make sure that you log-off from the local thick client and close dbisqlc before you click on APPLY and ACTIVATE button in siebel tools.

I am using this technique and able to apply schema changes to loal DB,Post your comments on this and let me know if you have other ways to achieve this :)

CancelQuery Dialog Box Disappeared after Siebel 8 upgrade

Issue:

In Siebel 7.8 while doing query on records like Contact/Account/service request, there is Cancel Query Dialogue appears if query is taking time to retrieve. Advisor can click on cancel button and refine the query.

After Upgrade to Siebel 8 this Cancel Query Dialogue Box was not appearing and Customer wants to retrieve this feature.

Solution:

In Siebel 7.8:

This Parameter was the part of Application cfg SWE section where we can set the value for it

In Siebel 8:

This is Part of Object Manager component Advance Parameter

The cancel query feature is enabled through the CancelQueryTimeOut parameter.

To enable the cancel query feature

1. Navigate to Administration - Server Configuration > Enterprises > Component Definitions.
2. Query for Corresponding Object Manager 
3. In Component Parameters,
Change the CancelQueryTimeOut parameter value :

where timeout is any integer of zero or greater.
For example, if CancelQueryTimeOut = 3, the cancel query dialog box appears if records are not
returned within 3 seconds.
NOTE: A timeout value of less than zero, for example, -1, disables the feature.
4. Restart the Siebel Server.

Tuesday, April 26

file C:\Program Files\InstallShield Installation Information\{5D53DB7C-D3FB-8451-8407-3639E2D8F3ED}\siebel.ini not found.Please make sure that Siebel.ini exists in directory specified by environment variable SS_SETUP_INI()

Hello Readers,

When I was installing siebel sample database yesterday,I got a strange error and was surprised that Its not allowing me to install sample database.After some research I was able to find the root cause of this error and able install the smaple DB,So thought of sharing about the error and corrective solution.I beleive that there will be many ways of debugging this error and appreciate if you can post them.

The error is as below :


file C:\Program Files\InstallShield Installation Information\{5D53DB7C-D3FB-8451-8407-3639E2D8F3ED}\siebel.ini not found.Please make sure that Siebel.ini exists in directory specified by environment variable SS_SETUP_INI()


Debugging Technique:

1- you should go to C:\Program Files and go to IE tools internet options and go to view tab and select show hidden files and apply,this is all about show the "InstallShield Installation Information" folder which is a hidden folder by default.


2- You may not found this subfolder "{5D53DB7C-D3FB-8451-8407-3639E2D8F3ED}" in the folder "InstallShield Installation Information" , you can see similar folders which has the install.exe file.

3-So rename the subfolder which hass setup.exe with the name you will get in error,In my case it is {5D53DB7C-D3FB-8451-8407-3639E2D8F3ED}


4- Now you can launch setup.exe of sample database and install.

Hope this post helps and appreciate if you can share your views

Thursday, April 21

How to disable export functionality from all list applets in the application?


The Export menu item that appears on all list applets are defined in the applet's class and internally it invokes the standard command "Export (SWE)".

It is possible to disable the Export menu item for all list applets in the application by reconfiguring the standard command "Export (SWE)" to execute a custom business service and then implement code on the PreCanInvokeMethod event to prevent the ExportQuery method from being executed.

1. Create custom business service called "DisableExport" with following server code:


function Service_PreCanInvokeMethod (MethodName, &CanInvoke)
{

if (MethodName == "ExportQuery")
  {
  CanInvoke = "FALSE";
  return (CancelOperation);
  }

return (ContinueOperation);
}


2. Reconfigure the standard Command object "Export (SWE)" with following properties:

business service = DisableExport
target = Server

Note it might be necessary for you to make the Command objects visible in the object explorer, this can be done in the Tools > View >options > Object Explorer screen.

Wednesday, April 20

How to disable Print and Print Preview options in Applet / Application level menu across the application?

I got this requirement to work and found that its quiet simple so I want to share it with you guys,you can post comments on this and provide other ways of achieving this task if any.


The Printing functions are controlled by the vanilla “PrintListService” Business Service .
With the following script in PreCanInvokeMethod event of “PrintListService” Business Service and could disable Print / Print Preview options from Application Menu and Applet Menus across the application:


function Service_PreCanInvokeMethod (MethodName, &CanInvoke)
{
if ((MethodName == 'QuickPrintApplicationMenu') || (MethodName =='QuickPrintCustomAppletMenu') || (MethodName == 'QuickPrintCustomApplicationMenu') || (MethodName == 'QuickPrintPreviewApplicationMenu') || (MethodName == 'QuickPrintPreviewCustomAppletMenu'))
{
CanInvoke = false;
return (CancelOperation);
}
return (ContinueOperation);
}


Printing option was disabled for the following:
- File > Print... (Method - 'QuickPrintCustomApplicationMenu')
- File > Print Preview... (Method - 'QuickPrintPreviewApplicationMenu')
- Menu > Print... (Method - 'QuickPrintCustomAppletMenu')
- Menu > Print Preview... (Method - 'QuickPrintPreviewCustomAppletMenu')
- QuickPrint button (Method - 'QuickPrintApplicationMenu')

Its pretty simple to achieve,try it and see

Creating Web Applet in CRM On Demand

Example : Creating Web Applet in CRM On Demand for Service Request detail page ,Account detail page...etc

 Solution:

<iframe src=https://secure-ausomxAAA.crmondemand.com/OnDemand/user/analytics/saw.dll?Go&Path=%2fshared%2fCompany_10011_Shared_Folder%2fOA&Action=Navigate&P0=1&P1=eq&P2=Account."Account%20ID"&P3=%%%Row_Id%%%&Options=f width=800 height=400></iframe>


Filter Parameters in above URL :-


AAA  = is the Server Name
Action=Navigate means We need this tell it we are navigating the report to a particular set.
P0 = 1 which Represents the number of columns we are passing filters into
P1 = eq: For the first column it is an equal condition (other operators are available but you will need to refer to the Siebel Analytics docco)

P2 = Account.”Account ID”  : The column in our report we are passing the query to. Might need to use %20.
P3 =%%%...    : The value we are filtering by

Sunday, April 17

Siebel VBC - An Overview

Virtual Business Component

Virtual business components (VBCs) are mechanisms in Siebel EAI by which data from an external system can be viewed in Siebel applications without having to replicate that data within the Siebel Database. We will discuss VBC in a series of 4 articles. Here is the first one, which will help you in understanding why we require VBC and what are VBC’s?.


Business Requirement [Data Sharing Problem]
Following are the common cases where we need to pull data from external database using VBC
1. Users want to access data anywhere in the enterprise
2. Users want to use the same user interface to access any data
3. Users want to display and manipulate external data from within a Siebel application without storing it in the Siebel database
Virtual Business Component

Virtual Business Component Solution
1. Uses a class of business component based on data stored outside of the Siebel database
2. Is defined and behaves like a regular business component
3. Displays data from a external application in a Siebel applet
4. Does not store the external data in the Siebel database

Sunday, April 3

Siebel Enterprise Server – An Overview

Siebel Enterprise Server – An Overview

The Siebel Enterprise Server is a logical grouping of Siebel Servers that supports a group of users accessing a common Siebel Database Server,Siebel Enterprise Server can be configured, managed, and monitored as a single logical group, allowing the Siebel administrator to start, stop, monitor, or set parameters for Siebel Servers within a Siebel Enterprise Server.
Admin1

 You can set some Siebel Server parameters at the Siebel Enterprise Server level, and these parameters apply to every Siebel Server and component operating within that Siebel Enterprise Server
Each Siebel Server belonging to a Siebel Enterprise Server should connect to the same schema in the same database server.

Siebel CTI

Siebel CTI (Computer Telephony Integration)

siebel_cti1Siebel CTI (Computer Telephony Integration) provides voice-channel support for call center agents using Siebel Business Applications.
CTI capabilities are provided through integration with third-party CTI middle ware packages, such as Avaya, Nortel Networks, Siemens.
siebel_cti
Siebel CTI provides integrated inbound, outbound, and transfer call routing based on comprehensive information about the customer, agent, channels, and service level agreements
Siebel Communications Server supports communications features for Siebel Call Center, Siebel Email Response, and other Siebel Business Applications
Communications channels supported for Siebel Business Applications include voice, email, Web collaboration (including Web chat and voice-over-IP), fax, page, and wireless message.

Tuesday, March 1

Getting logfile for browser script in siebel

How to debug browser script.. Here's one way of doing it

To get the Log file for Browser Script.
To get the log file for Browser script in local machine we need to add the
following system variables in machine.

SEBLCL_TRACEMODE - 1
SEBLCL_LOGFILESIZE - 10
SEBLCL_LOGARCHIVECOUNT - 5
SEBLCL_LOGDIR - C:\SiebelLogs
SEBLCL_TRACEUNICODE - Y
To add these variables follow the following steps:
1) Right click on My Computer icon and select properties.
2) Select the Tab Advanced
3) Click "Environment Variables"
4) In the lower portion Click on the New Button in the System variables
section and add each parameter.

Wednesday, February 23

How to get user list associated for a siebel View


There are some requirements where you need to know who are all the users assigned to a particular siebel View,you can get the user list by running below query on the database.


SELECT DISTINCT
usid.per_fst_name || ' ' || usid.per_last_name "Users"
FROM siebel.s_resp resp,
siebel.s_app_view vi,
siebel.s_app_view_resp inter,
siebel.s_per_resp usid
WHERE vi.row_id = inter.view_id
AND resp.row_id = inter.resp_id
AND vi.name = 'Contact List View'
AND usid.resp_id = resp.row_id

In the above query I have queried for 'Contact List View',Just replace it with your view to get list of users associated to it.
Hope this helps...

ERROR in Local DB Initialization

Issue: Local DB Initialization erroring out.

Error Message:

DBCLog DBCLogError 1 000000024d621250:0 2011-02-21 09:36:28 [Sybase][ODBC Driver][Adaptive Server Anywhere]Procedure 'exrate' not foundUpgradeLog UpgradeError 1 000000024d621250:0 2011-02-21 09:36:28 [Siebel Database][ODBC Driver][Adaptive Server Anywhere]Procedure 'exrate' not foundUpgradeLog UpgradeError 1 000000024d621250:0 2011-02-21 09:36:31 Unable to read row 1 from export file (cbVal (8) /SSCHAR_SIZE + 1 > bufSize (2)).UpgradeLog UpgradeError 1 000000024d621250:0 2011-02-21 09:36:31 Unable to import table "S_REPOSITORY" (UTLDataRowRead).UpgradeLog UpgradeError 1 000000024d621250:0 2011-02-21 09:36:31 Unable to process data file dicrepos.dat.UpgradeLog UpgradeError 1 000000024d621250:0 2011-02-21 09:36:31 Import DML action failed.UpgradeLog UpgradeError 1 000000024d621250:0 2011-02-21 09:36:32 Error executing action ().

Analysis:

The jobs "Generate New Database" and "Database Extract" ran successfully without any issues. However when the user tried to Initialize Local using Tools it ran fine till "Initializing User Accounts" and errored out with above error.

To resolve this issue create the following entries in registry of System DSN created on Siebel Application Server and the local client.

Tuesday, February 22

Making a field required using script at the applet level

Making a field required using script at the applet level 


Requirement : Making 'Contact Method' field required in an applet which is not 'required' field in the buscomp

Solution: I used the below script at applet level to make the 'Contact Method' required.The code is pretty simple as shown here.

if ( MethodName == "WriteRecord" )
    {  
    if(this.BusComp().GetFieldValue("Contact Method") == "")
    {
    TheApplication().RaiseErrorText("Contact Method is a required field please enter a value");
     return( CancelOperation );
    }

Readers,please let me know the other possibilities of making field required at applet level with out using script

Oracle BI

Oracle BI Answers :

To add a filter for a column that is not included in request, press and hold down the CTRL key at the Criteria tab and click the column name in the selection pane.

Monday, February 21

Configuring Nonprimary Manager Visibility without scripting


The 'Manager List Mode' user property is useful to configure the nonprimary manager visibility. This user property makes a business component that uses team access control  to allow the user to see data for all subordinate positions, regardless of whether they are the primary position for a record.

Name : Manager List Mode
Value : Team

Friday, February 18

Enabling and Disabling Siebel Message Broadcasting



By default, message broadcasting is enabled. As an administrator, you can enable or disable message broadcasting. You can set message broadcasting to operate in any of the following modes:
  • Always enabled
  • Always disabled
  • User enabled (default)
You can also enable or disable message broadcasting in Siebel Mobile and Developer Web Clients.
The message bar is also supported for standard interactivity application clients, and you can display the message bar in standard interactivity client applications.

To enable or disable message broadcasting for an application

Creating a Message Broadcast in Siebel


When you create a message broadcast, all connected users that you specify receive the message immediately upon the date and time you have specified that the message be activated. Mobile users, such as field representatives, receive the activated messages when they synchronize.

NOTE:  To send a message broadcast, you must have responsibilities that include access to the Message Broadcasts view.
Typically, the appearance of a message broadcast is designated by a single severity level, as specified in the Severity field. Each severity level is associated with a different color. The severity level that you choose determines the color of the message broadcast and how it is delivered.
In addition to using the Severity field to determine the appearance of a message, you can also combine multiple severity levels to create a message broadcast with unique formatting. By adding special tags to the text of a message broadcast, you can change the color of different sections of the message. The following tags are used to combine severity levels in a message:
  • [N] for Normal
  • [H] for High
  • [U] for Urgent

Siebel Application in 64bit WIN Server


Requirement: There was one situation in which I have been provided with one 64x Enterprise WIN 2003 R2 Server.

As known Siebel application does not support 64bit server, it supports 32bit.
So when I installed the Web Server Extension in this 64bit server it was not working everything was ok and there were no logs generating as well.
After some efforts I found out a way by which siebel application can run in 64bit WIN server, Please find the steps below which will help to run the siebel applications in 64bit Enterprise WIN Servers -

2003 R2 64x Enterprise.




ASP.NET 2.0, 32-bit version
To run the 32-bit version of ASP.NET 2.0, follow these steps:
1.
Click Start, click Run, type cmd, and then click OK.
2.
cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
Type the following command to enable the 32-bit mode:
3.
%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i
Type the following command to install the version of ASP.NET 2.0 (32-bit) and to install the script maps at the IIS root and under:
4.
Make sure that the status of ASP.NET version 2.0.50727 (32-bit) is set to Allowed in the Web service extension list in Internet Information Services Manager.
After all the 4 steps execution, please restart the machine and observe the Siebel application working in the server.

For 64bit Siebel Application does not load and hence the normal installations will not work even the logs will not be generated properly.
So the solution is to downgrade the ASP.NET to 32bit the process is below :

Wednesday, February 16

On Field Update Invoke n

On Field Update Invoke n


This user property allows you to invoke the specified business component method when a field is updated.
Value
The value of the On Field Update Invoke user property consists of three quoted parameters (double quotation marks) separated by a comma and a space, as follows:
"[FieldToCheck]", "[BusCompName]", "[MethodName]"
[MethodName] is invoked on the [BusCompName] business component when [FieldToCheck] is updated. If [FieldToCheck] is not defined, the method is invoked when the user saves the record.
You can optionally use a fourth parameter that defines a condition. If you define a condition, the method is only invoked if the condition evaluates to TRUE.
Usage
You can create additional instances of this user property as needed. If you have more than one instance of this user property for a business component, they are executed sequentially by number (for example, On Field Update Invoke 1, then On Field Update Invoke 2, and so on). If there is only one such user property, then no number is required.
For example, the Asset Mgmt - Asset (Order Mgmt) business component has four such user properties:

PDQDisabledView n

PDQDisabledView n


The PDQDisabledViewn user property allows you to disable the Predefined Query (PDQ) dropdown for the view name defined for the property.
When this property is added for a particular view, the PDQs in the dropdown are not applied when the view loads. Users can still choose the PDQs in the dropdown and the PDQs are applied, but no predefined query is automatically applied when the view loads.
NOTE:  As of release 8.0, you no longer set this property in the application .cfg file; instead, you set it as an application user property in Siebel Tools.
Value
Name of the view for which you want to disable the Predefined Query (PDQ) dropdown.
Some of the predefined property values include:

OverrideViewCache n

OverrideViewCache n


The OverrideViewCachen user property allows you to disable caching for a particular view. For example, you might want to disable caching when you are making a dynamic change to the view, such as changing a parameter or invoking a toggle applet.
NOTE:  As of release 8.0, you no longer set this property in the application .cfg file; instead, you set it as an application user property in Siebel Tools.
Value
OverrideViewCachen
where n is a sequential number between 0 and 99.
Usage
This user property is used to disable the cache for a view. See the procedure below for instructions on how to do this.
Parent Object Type
Application
Functional Area
User Interface
Use the following procedure to disable the cache for a view.
To disable the cache for a view
  1. Launch Siebel Tools.
  2. In the Object Explorer, select Application, and then query for the application name in which the view appears that you want to disable the cache.
  3. In the Object Explorer, select Application User Prop.
  4. Create a new application user property using the following as a guideline:
    • Name is OverrideViewCache0
      NOTE:  To disable the cache for more views, use OverrideViewCache1, OverrideViewCache2, and so on.)
    • Value is the name of the view for which you want to disable the cache.
  5. Compile the changes.
  6. Launch the application with the compiled SRF.

ClientBusinessService n

ClientBusinessService n


The ClientBusinessServicen user property allows you to call business services from a browser script.
NOTE:  As of release 8.0, you no longer set this property in the application .cfg file; instead, you set it as an application user property in Siebel Tools.
The number n must be a sequential number, with no gaps in numbering. If a number is skipped, the service cannot be called from a browser script. If a browser script attempts to use this user property to call a business service that is not listed, the following runtime error occurs:
Cannot get service: <name of service>.(SBL-UIF-00275)
Value
Name of the business service called from a browser script.
Some of the predefined property values include:
  • ClientBusinessService0 = Message Bar
  • ClientBusinessService1 = Communications Client
  • ClientBusinessService2 = ContentBase - Asset Publish Service
  • ClientBusinessService3 = ContentBase - Asset Version Publish
  • ClientBusinessService4 = Workflow Process Manager
  • ClientBusinessService5 = Task Assistant UI Service
  • ClientBusinessService6 = Asset Preview Publish Service
  • ClientBusinessService7 = PrintListService
  • ClientBusinessService8 = Task UI Service (SWE)
  • ClientBusinessService9 = Training Queue
Usage
This user property is for use only with Siebel Browser Script.
Parent Object Type
Application
Functional Area
Business Service

CanInvokeMethod: MethodName

CanInvokeMethod: MethodName


This user property allows you to enable and disable methods, or buttons by disabling the methods the buttons invoke, declaratively at the applet level. It is easier to use than PreCanInvokeMethod scripting and in many cases can be used instead.
Name
CanInvokeMethod: MethodName
Value
Value or expression that returns TRUE or FALSE or the literal values TRUE or FALSE
Usage
This user property is used to enable and disable methods declaratively. When the value is TRUE or the expression returns TRUE, then the method is enabled, otherwise it is disabled.
For example, Copy Record on the Partner Product List Applet is disabled by default:
  • Name: CanInvokeMethod: CopyRecord
  • Value: FALSE
Consider also the following example of using an expression for the value on the SIS Account List Applet where you want to enable the copy record feature for accounts that have a status, but disable this feature for all other accounts:
  • Name: CanInvokeMethod: CopyRecord
  • Value: [Account Status] IS NOT NULL
You can inactivate or modify the value for this user property. You can also create new instances of this user property as needed.
Parent Object Type
Applet
Functional Area
CSSFrame, CSSFrameList, and their subclasses

Tuesday, February 15

Configuring a Spell Check Button on an Applet

Configuring a Spell Check Button on an Applet


A user can call Siebel Spell Check from an applet menu item. To configure this applet menu item, you create a Check Spelling Field user property for the applet that contains the following objects:
  • Check Spelling button
  • Field on which Siebel CRM performs the spell check
To configure a spell check button
  1. In Siebel Tools, display the following object types:
  2. Create a check spelling button in the applet that contains the field on which Siebel CRM must perform the spell check:
    1. In Siebel Tools, in the Object Explorer, click Applet.
    2. In the Applets list, locate the applet you must modify.
    3. In the Object Explorer, expand the Applet tree, and then click Control.
    4. In the Controls list, add a new record using values from the following table.

Monday, February 14

FieldDependency

FieldDependency: This Integration Field user property is used in case of hierarchical picklists, if you try to insert the child picklist first than the parent picklist it will throw an error message, to manage it use FieldDependencyFieldName user property

The names of these user properties must start with FieldDependency, and the value of each property should contain the name of the field that the associated field is dependent on.

Syntax :

UserProperty :
FieldDependency
Value: name of the field that the associated field is dependent on

Ex: Field Name : State
FieldDependency  Value: Country

No Clear Field n

No Clear Field n
This user property disallows setting a field’s value to NULL.

Value: The value of this user property must be the name of a field in the business component, not enclosed in quotes.

Usage: This property can be specified with or without the numeric suffix. You should append the numeric suffix to differentiate between multiple instances on a business component. For example, add No Clear Field 1 and No Clear Field 2 user properties to a business component to specify two different fields whose values cannot be set to NULL.

You can inactivate or modify the values for this user property. You can also create new instances of this user property as needed.
Parent Object Type: Business Component
Functional Area: Various

No Change Field n

No Change Field n
This user property disallows changing a field’s value after the record is committed.

Value: The value of this user property must be the name of a field in the business component, not enclosed in quotes.

Usage: This property can be specified with or without the numeric suffix. You should append the numeric suffix to differentiate between multiple instances on a business component. For example, add No Change Field 1 and No Change Field 2 user properties to a business component to specify two different fields which cannot be changed after a record is committed.

You can inactivate or modify the values for this user property. You can also create new instances of this user property as needed.
Parent Object Type: Business Component
Functional Area : Various

Activating a customized button without using script

Precede the Method Invoked name with “EventMethod” in the control.

For example a button with Method Invoked = “Click” should actually have Method Invoked = “EventMethodClick” to get itself activated on the applet without using any script in the “WebApplet_PreCanInvokeMethod”.

Pop up different applets from the same control based on condition

Steps to configure:

1. The Control should be created with the following details:
Method Invoked: ShowPopup
HTML Type: MiniButton

2. The control should be added to the Applet Web Layout.

3. In WebApplet_PreCanInvokeMethod of the Applet Server Script, CanInvoke should be set to 'TRUE' and return (CancelOperation) should be mentioned.

4. In the Applet User Property a new record with the following details should be created :
Name: Named Method: ShowPopup
Value: 'INVOKE', 'ShowPopup', 'IIF([Field Name] = "Value","Popup Applet A","Popup Applet B")', 'Edit List'

If the value of the field given in the Field Name matches with the value given in Value then the Popup Applet A will get invoked, otherwise Popup Applet B will get invoked. Both Popup Applets will get invoked in the Edit List mode.

Thursday, January 20

How to To make a field read-only in smartscripts

From the application-level menu, Navigate to > Site Map > Administration - SmartScript > Scripts.
In the Scripts list, query to find the SmartScript you want to modify.
Click the Programs view tab.
From the Programs list, select Script_Open.
In the Program Language field, select eScript, and then click Save.
In the eScript form, use the script function SetQuestionEnable(false) to set the question to read-only. Verify that each read-only field has a SetQuestionEnable(false) statement attached to it.

How to set more than 500 values in static picklist?


In Tools, at the business component called Picklist Generic, you will notice that it has a property called Prefetch Size, which is by default set to 500.

There is also a related property called Maximum Cursor Size, which should be set to the same value as Prefetch Size.If you change these values, you will be able to change the number of values displayed in the picklist.

Exposing more List Columns in List Applets


Requirement : Requirement is to expose more List Columns in the List applet.


Solution  : For exposing more List columns in List applet we have to change the “count” property in the “For” loop of the CCListBody.swt and CCListHeader.swt files. We can add any number of List columns in List applet. But for performance and usability reasons, a maximum of 40 list columns should bound to a list applet web template.

Blogger Widgets