October 13, 2013

Part 2: Creating Siebel Install Image

This article is Second in series of How to Install Siebel 8.1.1.10 on Windows 8.

It explain how to create Siebel Install Images on Windows 8 using files downloaded in Part 2: Download Siebel Jar files from Oracle
Before proceeding with installation make sure you are logged in using administrator user, and latest JRE is installed if not please use: Java.com
Download Java

After installing JRE,  follow these steps in sequence.
Point to be noted:
  1. Full install image need to be created for Siebel 8.1.1  
  2. Patch Image need to be created for Siebel 8.1.1.10
  3. Siebel Image creator will need to be run in console mode for 8.1.1 (only 8.1.1.10 image creation is shown below).

Part 1: Download Siebel Jar files from Oracle

This article is First in series of steps to Install Siebel 8.1.1.10 on Windows 8.

It explain which files to download from Oracle Software Delivery Cloud for installation of Siebel 8.1.1.10
As explained earlier to install Siebel 8.1.1.10 we need to download binaries for version 8.1.1 also.

Siebel 8.1.1 installation downloads required:

Siebel Business Applications Version 8.1.1.0 Siebel Client(Part 1 of 2)
Siebel Business Applications Version 8.1.1.0 Siebel Client(Part 2 of 2)
Siebel Business Applications Version 8.1.1.0 Siebel Client Part 2 (Part 1 of 2)
Siebel Business Applications Version 8.1.1.0 Siebel Client Part 2 (Part 2 of 2)
Siebel Business Applications Version 8.1.1.0 Siebel Tools
Siebel Business Applications Version 8.1.1.0 ImageCreator Files



Siebel 8.1.1.10 installation downloads required:

Siebel Industry Applications Version 8.1.1.10 Siebel Client
Siebel Industry Applications Version 8.1.1.10 Siebel Tools
Siebel Business Applications Version 8.1.1.10 Sample Database Files
Siebel Business Applications Version 8.1.1.10 ImageCreator Files

These files in total are around 10 GB, luckily Oracle software delivery cloud allows opening multiple connections for downloading files. I was able to download @ 2Mbps using Free download manager, otherwise download speed drops soon after reaching 20%.
I highly recommend to use Free Download Manager to manage Siebel downloads.

October 12, 2013

Installing Siebel 8.1.1.10 on Windows 8

Installing Siebel Tools and Web Client can be very daunting sometimes, especially when you trying to install  a new Version of Siebel on a new operating system. I spent many weeks to get my Siebel 8.1.1.10 (technically ver 8.1.1.10.0) self learning environment on Windows 8 and as expected process was difficult.

Every step in installing there was some sort of issue, I have created list of issues I found and the work around. I have divided steps into posts:

Downloading Siebel Jar file from Oracle
Creating Siebel Install Image
Installing Siebel 8.1.1
Patching Siebel 8.1.1.10

Before proceeding with the steps please be informed about following: 
  1. Siebel 8.1.1.10 Tools and Client can not be installed at directly, you will have to install Siebel 8.1.1 first and then create patch-set to install Siebel 8.1.1.10. However it is possible to create single Siebel 8.1.1.10 Server installation image.
  2. You should have administrator privileges and have the latest version of JRE from java.com
  3. You would need oracle accoun to access and download all the files from  Oracle Software Delivery Cloud  required for Siebel 8.1.1 and Siebel 8.1.1.10

Disclaimer: Windows 8 is not supported/recommended platform for Siebel, please use solutions provided at your own discretion.


October 10, 2013

How to take backup of Siebel Tables?

This article explains how to take backup of Siebel Tables or any other table in Oracle database. It is a good practice to take backup of data before making any changes to schema or before updating bulk records. However Siebel does not provide any archiving or data backup solution out of the box.

There are couple of solutions available if you are using oracle database, some of them are:
1. First option is to copy the table with all the data into a new table in same or any other database.As compared with the any other option turnaround time is very less, as this command executes on the server and there is no payload transferred between client and server.

This can be done with the help of create table command with select statement.

CREATE TABLE new_table  AS (SELECT * FROM old_table);

October 06, 2013

SBL-DAT-00309 :You do not have the privileges required to view detailed information for this record.

We detected an Error which may have occurred for one or more of the following reasons:


You do not have the privileges required to view detailed information for this record. Please contact your systems administrator if you would like access to this record (SBL-DAT-00309)

September 16, 2013

How to download Siebel bookshelf?

This article will explain  you how to search and download Siebel Bookshelf from oracle software delivery cloud. Software delivery cloud is the download site for Oracle's all the software products and training materials. You will need to create a Oracle Web Account to proceed with any download.

It is recommended for new Siebel Developers to download a local copy of bookshelf to make it easier to read through and understand the product in detail. Bookshelf contains product's technical and sometime end user guides. It can prove as a useful weapon in your arsenal to debug issues and reference.

Step 1: Login to Oracle eDelivery cloud & Search for Siebel CRM Product suite


Step 2: Select the version you are after, din't woryy it wont start the download yet.

August 30, 2013

How to create Pick list field in Siebel?

This is one of the most common problem that is faced by new siebel developers. Answer of this question can tell a lot about actual hands on experience of the developer and how much experience he holds in debugging.

There are only few reasons why picklist doesn't work, which can be summarized as below:

  1. Pick map of the new field is not populating the foreign key field of the field.
  2. Join created to pull the value of the field is not created properly.
  3. If no values are shown in drop down then pick list is might not compiled yet, or the LOV type and values are not created in administration views.
  4. If value is not displayed after selecting value from pick applet then wrong field is selected in pick map of the field.
  5. Update only if null is not configured properly. 

Related Questions:

Question :What are the reasons for field based on picklist not showing drop down or pick applet icon?

Answer: Pick applet might not be selected on the list item or control of the applet or runtime property of the control is set to false.

Please feel free to leave a comment if you have faced any other issue with the pick lists. 

SBL-SRB-00047: Could Not Route Message to WfProcMgr With Registered Key (Null)

Problem: This error can be found in Siebel server logs when workflow monitor agent is not able to contact  workflow process manager and requests get queued up in S_ESCL_REQ.
This simply means that workflow monitor agent is not able to execute workflow because another component is down or looks like unavailable to SR Broker.
Impact: As a result interface calls to the external interfaces or any other asynchronous process configured using policy will get delayed.

Workarounds:

August 24, 2013

Output of EAI Webservice with Soapui is Gibberish

This is most likely the first response from a Siebel Webservice when you use SOAP UI to test an Inbound web service.



Siebel Configuration Interview Questions - Applet Toggles

In an Siebel Technical interview consultant may face some questions on applet toggles, which seems to be quite easy topic, this section will help you to quickly understand the applet toggles.

Some quick facts about Siebel Toggle Applets:
  • A static toggle applet does not require to reference the same business component!
  • A dynamic toggle applet must reference the same business component, which can also be a VBC (virtual business component). 
  • Applet toggles can be based on List as well as Form Applets.


Question : When do you think applet toggle should be implemented?

Answer: Applet toggles should be implemented when number of relevant fields are less than displayed fields. With use of applet toggle, only relevant fields can be displayed to the user which decreases the time spent in data entry.

Question : Is there any performance impact on the application of using applet toggles?

Answer : Yes, Siebel loads all available applets each time user navigates to a view having toggle applets, and complete screen is refreshed when applet is changed.

"Siebel CRM loads all available applet toggles each time the user navigates to an applet."

Question : How to debug a toggle applet in Siebel?

Answer:
Check the field name in business component on which applet toggle is based on.
Expose the field on the applet to verify the value and verify the value.
Check if the field's Immediate Post Change property is set to true.
Test toggle applet with two applets first and then increase numbers if required.
Compile all objects again. 

Question : What are different forms of applet toggles?

Answer: Static and Dynamic Applet Toggle
Static Applet toggle gives user option to choose the applet from drop down control, whereas dynamic applet toggle refreshes the view with new applet depending upon the field value.

Question : How to configure a new dynamic applet toggle in Siebel?

Answer:
A) Create a copy of applet and change the fields as required.
B) Go to the original applet and create new applet toggle record.
C) Specify the Applet toggle field and applet toggle value along with the name of the new applet.
After this configuration new applet will show instead of the original applet whenever the field value matches with the value specified in the tools.

Bookshelf links for further reading:
http://docs.oracle.com/cd/E14004_01/books/ConfigApps/ConfigApps_ScreensViews11.html
http://docs.oracle.com/cd/B40099_02/books/ConfigApps/ConfigApps_Procedures_UI_layer10.html

How to create one for yourself, complete step by step guide: http://siebelunleashed.com/dynamic-toggle-applets/


Popular Interview Questions:

July 16, 2013

SBL-SCR-00128 : Script compilation failed at line Expected '}'


Siebel Tools Error

Script compilation failed at line 36 in procedure 'BusComp_WriteRecord':
Syntax error at Line 368 position 35:Expected '}'
(SBL-SCR-00128)


This is one of the compile time error which can waste a lot of time, the worst thing about this error is that it does not indicate the actual problem and point to unrelated section of the code.


This error can occur because of multiple reasons, and can force developer to check the whole code. Some of tips that one can use to resolve this error are:

July 15, 2013

Siebel Open UI - Oracle Open World Presentation

This is the official presentation of Siebel Open UI on Oracle Open World.



Siebel CRM: Open UI from Ilya Milshtein

Showing screenshots for  : Native Print Preview
Multiple File Upload/Download
Lists and forms
Pick and MVG Applets
Calculator
Currency
Calendar control
LOV quick fill
Explorer Control
Product configurator
Notifications
Sitemap finder
Smart Script and TBUI
CTI
Email F9

 

July 05, 2013

Discussion with Tom Siebel

Ever wondered what Tom Siebel is doing after selling Siebel CRM suite to Oracle in 2005? We hardly heard anything from him except his last accident with elephant in 2009.


June 28, 2013

Salesforce.com and Oracle Announce New Strategic Partnership - WTH?

Salesforce.com [NYSE:CRM] and Oracle [NASDAQ:ORCL] announced today a comprehensive nine-year partnership encompassing all three tiers of cloud computing: Applications, Platform and Infrastructure.

“We are looking forward to working with salesforce.com to integrate our cloud with theirs,” said Larry Ellison, CEO, Oracle

print from http://www.oracle.com/us/corporate/press/1964798

Salesforce.com plans to standardize on the Oracle Linux operating system, Exadata engineered systems, the Oracle Database, and Java Middleware Platform

Don't you guys are already running on OEL? It was declared since birth of salesforce that it runs on Oracle databases and have support licenses from Oracle, what has changed now?   

Oracle plans to integrate salesforce.com with Oracle’s Fusion HCM and Financial Cloud, and provide the core technology to power salesforce.com's applications and platform. Salesforce.com will also implement Oracle’s Fusion HCM and Financial cloud applications throughout the company. - 
Why would competitors will agree to use opposition's technology behind the scenes, it just makes one sense, Oracle has just added another cloud CRM to his CRM suite which is already overflowing with Siebel, Peoplesoft, Fusion and some cloud based CRM OD and Fusion cloud applications.

 Seems to me like coverup for Larry Ellison's next acquisition, he just can't tolerate any competitor in his area.

Makes me wonder how much he would have spent on this? any ideas?

This operation is not available for read only field 'Template'.(SBL-DAT-00402)

---------------------------
Siebel
---------------------------
This operation is not available for read only field 'Template'.(SBL-DAT-00402)
---------------------------
OK 
---------------------------

This is one of most common error of every siebel implementation.Usually this error is followed by :
Cannot set a value for field %1 because it is not active. (SBL-EXL-00147)
The first thing which we tend to do is to set the force active property of field to true and recompile and end up getting this error in logs:


(omextlng.cpp (4682)) SBL-DAT-00402: This operation is not available for read only field 'Template'.

In my case I tried several things but couldn't pass through this error, until I noticed provided whereIndicator in New Record Command. Once I made this change both the error were resolved.

.....
bc.ExecuteQuery(ForwardOnly);
var ap = bo.GetBusComp("Activity Plan");

ap.InvokeMethod("SetAdminMode", "Y");
ap.ClearToQuery();

ap.ExecuteQuery(ForwardOnly);
ap.NewRecord(NewAfter);

ap.SetFieldValue("Template","AP1");
ap.WriteRecord();
...

Using where indicator is only one of the reason for SBL-DAT-00402 error. Please share your experiences if this helps.

Date manipulation in Siebel Workflows - Contd

In continuation of Incrementing date in workflows.
See latest post on Date functions Siebel eScript

This article explains how to compare two dates type process property in Siebel Workflows.

Everything seems to work as expected, the only point is to make sure you have set the property type of the property holding date as "Date"

To add number of days to a date: [&Date] +30
To subtract number of days from a date : [&Date] - 4
To find if date is passed: [&Date] < Today()
To find if date is future date: [&Date] > Today()
To Add 1 Sec to a date: [&Date] + (1/(24*60*60))

Comparing Date in Siebel Workflow Expression
Comparing Date in Siebel Workflow Expression

Julian days also seems to work perfectly in Siebel Workflow Expression.

To get current Julian month use: JulianMonth(Today())
To get Julian Year: JulianYear(Today())
To get Julian Week: JulianWeek(Today())

Julian Month in Siebel Workflow Expression
Julian Month in Siebel Workflow Expression
Output:
Siebel Workflow Process Output
Workflow Process Output
Today(): returns current system date without timestamp.
Timestamp(): returns date with time stamp

hth

June 24, 2013

How to increment date in Siebel workflows?

It is supposed to be the one of the toughest task in e-script is to handle date fields and manipulate the data. Recently I learned it is fairly simple to manipulate the date values in Siebel Workflows as compared to e-script.

This revelation goes to Naresh Lalam from siebel.ittoolbox . After his one of the comments I went up and verified that date fields can be simply manipulated from expression of Workflow Process

Provided :
1: Process Proerty storing Date is of type : Date
2: Number of days which needs to subtracted to added should be integer.
Output Arguments








On simulating these expression it results extremely simple output.

Workflow Process Properties












Credit : Naresh

cheers :)

How to make field conditionally editable in Siebel?

Requirement: To make Siebel Fields editable only from certain views or certain users?

This sort of customization could come up when business would like to update fields from certain views only and make then read only from elsewhere.

Solution: This requirement can be achieved in many ways, listing script-less solutions here:

1. Clone the Applet and views and make the control read only by setting the read only flag on Applet

Benefits: As the solution makes copy of UI layer, it does not impact the business layer. If there is any script which is updating the field as part of another process it wont require any changes as field on the BC remains unchanged.
Drawbacks: Duplicate objects make application complex and difficult to manage.


2. Create Field Read Only Field user property to make the read only if the active view name is not same as the intended view.
This can be done by using : GetProfileAttr('ActiveViewName').
Benefits: No new object created thus keep the keep maintenance simple and keep the business logic at one location.

3. Use GetProfileAttrAsList in calculated field to check the responsibility of user.
If user has the responsibility then field will be editable and for all other users field will be read only. This responsibility can be added to SADMIN as well so that background workflows can only update this field.

syntax of calculated field:
IIf(InList(“EditableField”,GetProfileAttrAsList(“User Responsibilities”)))
If you have come across any other  scenario in which you were forced to write script then please share it with us in comments below.

Restrict certain queries on BC/EBC/VBC : GetSearchExpr()

Recently someone posted requirement on it toolbox to capture and change the queries executed by user on certain Siebel business components.

Few consultant suggested use pre query event of business component to change the search spec using GetSearchExpr and SetSearchExpr, however it is not possible to achieve this without releasing srf.

Perhaps there was a solution which could be achieved without releasing srf.In such type of requirements we can use Siebel Run Time events and client side business services which are independent of srf release.

June 22, 2013

Siebel Tools and Client is not responding?

Have you done something innovative and Siebel Client have stopped responding? Even task manager is stuck?

Do not restart your machine, instead try these commands from command prompt to force kill the exe:

taskkill /IM siebel.exe /F
taskkill /IM siebdev.exe /F
taskkill /IM iexplore.exe /F
taskkill /IM taskmgr.exe /F

Force kill siebel.exe


Siebel Configuration Interview Questions

Siebel Configuration Interview Questions

Siebel Configuration is one of core areas of Siebel Customization, and it usually get overlooked in projects.  It is equally important for an Siebel Consultant to know the basic configuration items along with specialized skills like EAI, EIM etc.. 

Following are some questions that easily assess the Consultant's understanding over Siebel Configuration.


Question: How to make applet read only in Siebel?

Answer: To make applet permanently read only, one can use No Update, No Insert, No Delete, No Merge property on applet to true. Read more

Question : How to build validation in Action Business Component to ensure that Start date is always a future date?

Answer: Validation field and validation message can be used to enforce the date entered. To check the future data following Syntax can be used.
> Today()

 

Question: How to create validation for first name field in Contact BC to have at least 5 characters?

Answer: Length method can be used in validation field to ensure minimum number of characters are entered in the field.
Syntax :
Len([First Name]) > 5

 

Question : How does Primary Id field improves performance of an MVG field? 

Answer: By default every MVG field executes a separate query on database to fetch data from child BusComp. When primary id field is specified and use primary join flag is set, application does not execute sub-query and instead uses join to fetch the data.



Question : What are the implications if Primary ID field is not used in MVG?

 Answer: If Primary Id is not specified on an MVG then view will take a lot more time to load as for every record in list applet another subquery will be executed.

 

Question : Is it possible to deploy SRF on server if objects are not checked in repository?

Answer:Yes, for Business Service, BusComps, BusObjects and Applet changes, srf can be deployed on server without checking in the objects, however workflow needs all the BO and BC to be checked in before it is activated.


Question: How to disable new record creation for certain users of Siebel?

Answer: Applet's PreCanInvokeMethod Method can be used to disable new button by setting CanInvoke to false, this can be done conditionally by checking the position or responsibility of the current user.


Question: How to make field editable for certain group of users only?


Answer: Create field read only field user property for the field and use calculated field expression to check the responsibilities of user, return N if user has the responsibility to edit the field and Y if it doesn't

Calculated field expression:


IIF(InList("Edit Field",GetProfileAttrAsList("User Responsibilities"))='Y','N','Y')

This way user who don't have the responsibility will see the field readonly.

Question : How to access user preference in script?

Answer: User preferences in siebel are stored in special class base bc which gets its values from spf files stored in file system. Through script user preferences can be retreived by querying the User Preferences BC like :
var oBOUser = TheApplication().GetBusObject("User Preferences");
var oBCUser = oBOUser.GetBusComp("User Preferences");
with(oBCUser)
{
SetViewMode(AllView);
ActivateField(fieldName);
ClearToQuery();
ExecuteQuery();
if (FirstRecord())
{
sDefTempValue = GetFieldValue(fieldName);
}
}

 

Question : How to access system preference in escript?

Query System Preferences BC on Name and Value fields to get the value of system preference..
        var boSysPref = TheApplication().GetBusObject("System Preferences");
        var bcSysPref = boSysPref.GetBusComp("System Preferences");
         bcSysPref.ClearToQuery();
         bcSysPref.ActivateField("Value");
         bcSysPref.SetViewMode(AllView);
         bcSysPref.SetSearchSpec("Name", sName);
         bcSysPref.ExecuteQuery( ForwardOnly );
    
         if (bcSysPref.FirstRecord())
         {
            sValue = bcSysPref.GetFieldValue("Value");
         }return(sValue);
    

Question : How to set system preference in Siebel?

Answer: "Administration Application> System Preference" view can be used to set the value of system preference.

 

Question . What could be reason behind a Picklist field which is not showing the drop down icon?

Answer: There are only three reasons for picklist not showing drop down:
Picklist is not specified on BusComp field.
Picklist is not compiled or Picklist values are not created.
Control's Runtime property is not set to true on Applet

Question : Is it possible to make calculated field as editable?

Answer: Yes, by setting setting pick map on calculated field and field becomes editable, however it won't be able to save the value and will recalculate the value on refresh record.

Question : How can you get the value of parent field value in browser script?

Answer: Only fields displayed on UI are accessible in browser script, it is applicable for all the parent and child bus components.



Popular Interview Questions:

June 21, 2013

Not able to send child buscomp fields in Siebel F9 email functionality

Siebel Email F9 functionality is one of the favourites among the Siebel users. Being quick to setup, saves lot of user time, and ease of use makes it quick win.

However it lacks at certain aspects. One of them being not able to pre-populate data from child business component on the email template. On simple search it seems it should be possible to pull any field value, but actually it is not.

After spending some time on support web/metalink it is clear that it is not possible to use child buscomp in field substitution in F9 email functionality, as Siebel F9 email only support simple templates which can only iterate through primary bus comp and not the iteration(child) bus comp.

From Support web:
1) Use of 'Send Email' permits the use of a simple template.Advanced templates require an Outbound Communication Request.
2) Simple templates cannot contain Template Items.3) Template Items allow an iteration child business component, from which substitution fields may be selected.


Solution:

Close look at the event model shows that siebel execute FileSendMail method on the applet when F9 button is pressed.

So if Siebel script/runtime event can trap that event then and calculate the child bus comp fields, then this data can be fed to the email popup using some field on primary bc.



1. Add script on applet

On these lines I added some script on the applet pre invoke and set profile attribute.


2. Create new calculated field
And used this profile attribute to provide data in template, this helped to get the value of child business component and onto the email template.

Looking forward for comments.

Next in series: Pre-populate CC or BCC in Siebel F9 Functionality


June 20, 2013

Siebel Contact Center - Demo Video From Oracle


Oracle Siebel CRM Support Timelines

Are you worried about your existing Siebel CRM investment? or thinking of implementing Siebel to manage your customer touch points? then look no further.
Siebel has not lost his shine even after presence of many cloud based CRM solutions. Siebel still remains the market leader and supporting clients around the world to manage customer relationships, infact it proves to be best return on investment.
With recent release of Open UI Innovation Pack, Oracle has proved that Siebel CRM still is current and meaningful in days of modern web browsers and devices.

Following is the Screen grab from the Oracle Siebel Statement of Direction May 2012.

Siebel Support timelines for existing Siebel versions
This clearly shows the extended support is available for next six years which is comfortably more than IT planning program of organisations and indefinite Sustaining Support ensures safety of the investments.


Siebel Open UI Demo - Video

Here is one Siebel Open UI demonstration from ec4uintern