April 16, 2020

Siebel EAI Interview Questions 2020

Question 1: How would you debug a inbound web service which is not returning data for correct record id?
Answer: First thing to check would be to log SQL which service is executing. This will explain what filters are applied by the web service. And why records are not being returned.  Issue could also be due to limited access provided to integration user executing the web service. Checking responsibilities and position of the integration user can also help in understanding the visibility issue.

April 07, 2020

How to crash test a Siebel server?

Yes you heard it right, this series is to find out what things developers can do to crash test the siebel server



Siebel unlike salesforce server has governor limits, it keeps on going until you ask it to stop. That's it's one of the key strength that I love, but not great when given it in hands of cowboys...


March 21, 2020

Siebel is generating offensive ROW_ID's in production

This is an original Siebel service request posted in Oracle support. It has been a laughing stock for many many years and now it has been archived on the Oracle support.


Customer found a row_id created in their production environment which got offensive words in the row_id such as, "1-190F**K". So, they would like to know whether Siebel have any internal validation to avoid offensive words in ROW_ID generation.

February 14, 2020

How to create cookies from server side?

Yes, you read it correctly, you can create cookies in the browser from the server side, and get your browser script to access them. This is enabled via Web Engine HTTP TXN business service.
Siebel Cookies
Siebel Cookies

var oBS = TheApplication().GetService("Web Engine HTTP TXN");

var Inputs = TheApplication().NewPropertySet();
var Outputs = TheApplication().NewPropertySet();

var psCookie = TheApplication().NewPropertySet();
psCookie.SetType("Cookie");
psCookie.SetValue("Value of Cookie");
psCookie.SetProperty "Path", "/";
Inputs.AddChild(psCookie);

oBS.InvokeMethod("SetResponseCookies", Inputs, Outputs);

Keep in mind that this method can be called from any other event in Siebel except application start(Application_Start) event due to product limitation .

Not just that one can use this service to get IP address of the client which is used to access Siebel. I will highly recommend to go through all the methods of Web Engine HTTP TXN business service in your free time.

How caching work in Siebel?

In any online transaction processing system like CRM most of the processing time is taken in finding the right record in database. No matter what database optimization technique you implement, your db processing time would be the highest among the time spent in web server and application server.
Siebel Database

February 09, 2020

How to update bulk records in Siebel using eScript?

The best suggestion anyone can give to update records in bulk in Siebel is to use Siebel EIM. However sometimes developers don't have time to create EIM job, test it in lower environments and get it working in some days, and business can't wait for that long, And pesky admin team won't give developers the SQL access to production.



Then this is the last solution. Write a dirty little script and run it in business service simulator.

February 06, 2020

How to disable anonymous browsing in Siebel REST API?

This is one of the most funny bug registered by Oracle. (Just after the obscene ROW IDs) .
Although this is applicable only for IP15, but do keep this in mind in case you are doing POCs on any customer.

Oracle left partially built config in the Java container sub system thus all the traffic coming through the system is passthrough. Kudos to the product team to get the feature out of the door :)

To disable this all you need to do is to delete the JavaContainerPropSub in named subsystems. This will cause authentication error in the component thus it won't turn on and you can in turn switch off the anonymous browsing.

Siebel REST API Interview Questions

Question 1 : What are REST APIs? 

Answer: REST stands for Representational state transfer. It is a protocol for data transfer using HTTP methods.


Usually REST API uses JSON format to communicate as it is simpler and lightweight than XML.


January 19, 2020

How to calculate age from date of birth using calculated fields?

Hi Readers,

This is a new series, where I will show you how things are done in Siebel and how the same thing can be done in Salesforce. Will leave the decision upto you to tell me which one is easier and which one is better.

Step 1: Create first calculated field to output date in YYYYMMDD Field Type: DTYPE_NUMBER
    ToChar(Today(),’YYYY’) + ToChar(Today(),’MM’) + ToChar(Today(), ‘DD’)
Step 2: Create second calculated field to convert birth date field in YYYYMMDD  : Field Type: DTYPE_NUMBER
    ToChar([Date Of Birth], ‘YYYY’) + ToChar([Date Of Birth], ‘MM’) + ToChar([Date Of Birth], ‘DD’) 
Step 3 : Create another field to use the fields created above as : Field Type: DTYPE_TEXT
    The Under Age flag : IIf(([Step1] – [Step2]) < “180000”, “Y”, “N”)

We are doing these three steps mainly because :
  1. Siebel does not have good list of functions supported in calculated fields. 
  2. Siebel does not have data type conversion in calculated fields. 
Lets don't refer to invoke service method due to its own complication and performance issues it can cause.


In Salesforce if you have to do this activity, you just need one formula field with following calculation.

IF( NOT( ISBLANK( Birthdate ) ) ,
  IF( DATE( 2000 , MONTH( Birthdate ) , DAY( Birthdate ) ) <= DATE( 2000 , MONTH( TODAY() ) , DAY( TODAY() ) ),
     YEAR (Today()) - YEAR ( Birthdate ),
     YEAR (Today()) - YEAR ( Birthdate ) -1 ),
  null)


Learn more about list of functions available in Siebel here: https://docs.oracle.com/cd/B40099_02/books/ToolsDevRef/ToolsDevRef_Operators8.html

and Full list of salesforce functions are here: https://help.salesforce.com/articleView?id=customize_functions.htm&type=5


January 16, 2020

State of Siebel in 2020?

Hello Readers,

It has been a while since I have posted on this blog. I have moved on from Siebel the second time. Still see some of my friends working in Siebel and keep getting furious.

Just wondering what are my readers are doing in 2020? Please take some time out and let us know the actual state of Siebel this year.


Live results





Many things have happened since I last posted.
Siebel unleashed vanished :(

via GIPHY

No more posts on Impossible Siebel :(

via GIPHY

No more posts on Siebel Mantra :(

via GIPHY

And such a once a wonderful blogging community just vanished.

I have stopped reading siebelhub.com,  hope it is doing great. I hope you all are doing great. Would love to read your comments and connect.





 -Jim