Sunday, March 28, 2010

Insert record position on the applet

There is a nice little feature in Siebel that would help us define the position on an applet when creating a new record. Let's say the user is on the view skimming through list of records and when the user is on the last record decides to create a new record. If there is a sort spec defined on the bc or applet then the user might loose focus after the record is created.

So to make sure the record is inserted in the last or first position on the applet there is a property on the applet, Insert Position. Most of us might not have seen this in Siebel 8 tools because its not displayed by default.So select Applets in object explorer and in the applet list right click and select Columns Displayed. In the list of available columns select Insert position.Now this should be one of the applet properties listed.

Now select an applet and change the property insert position for the applet to either FIRST or LAST. Compile the change and that's it.Next time when you create a new record the record will always be inserted in the first or last position. Well that's it for now...

Saturday, March 20, 2010

Spool sql in Siebel

I think in the first few days of working in Siebel you would know that to troubleshoot performance or visibilty issue with any data loads the first question any Siebel techie would ask , did you spool the sql?

To resolve any visibility issue yes you just need to add a switch /s and get the spooled sql. But if you are troubleshooting some preformance issue you need to set some session parameters for Siebel client running on Oracle CBO environment.

alter session set optimizer_mode = first_rows_10;
alter session set hash_join_enabled = false;
alter session set "_optimizer_sortmerge_join_enabled" = false;
alter session set "_optimizer_join_sel_sanity_check" = true;

After setting these parameters the execution time on the spooled file should sync with response time on Siebel application. Later..

Sunday, March 14, 2010

Disable button on an applet

Disable button on an applet: This was one of the requirements that came with all the clients I have worked before. This is not tricky configuration and should nt take more than 10 minutes to configure this. My reason to bring this up is there is an easy and neat way to do this.

I'm sure you should have seen this on scripting but there is an applet user property to do this. If you want to disable the new button on an applet create an applet user property like this.

CanInvokeMethod: NewRecord
Value: FALSE


Later..

System Diagnosis

In recent days I have been skimming through some technical support documets as well as bookshelf regarding Siebel system monitoring and diagnosis. I realized this is one of the skill that would come in handy for system crash when you really don't have much time to do your research and troubleshoot. There are ofcourse some basic things you always do to start troubleshooting but I think to read the log files and identify the cause of the crash comes with experience.So here are some basic things that you can start with to troubleshoot the component or object manager crash.

change evtloglvl trace=4 for server server_name component SSEObjMgr_enu

change evtloglvl GenericLog=4 for server server_name component SSEObjMgr_enu

change evtloglvl TaskConfig=4 for server server_name component SSEObjMgr_enu

change evtloglvl SQL=4 for server server_name SSEObjMgr_enu

change evtloglvl SQLError=4 for server server_name SSEObjMgr_enu

change evtloglvl SQLParseAndExecute=4 for server server_name component SSEObjMgr_enu


I'm planning to post more basics on Siebel system diagnosis atleast for the next few days. I think this would help me diagnose the crash faster and better.

Sunday, March 7, 2010

Explain Sql- Part II

In one of my previous post I mentioned about creating a plan table and how to insert the plan of sql execution statement to the table. Bud I really did not get time analyze the plan.

Couple of days back I noticed that one of the sql statements that I had to execute to retrieve data was taking more than 3 minutes. So I created a plan for the same and analyzed the sql. First thing I noticed from the plan was SQL was doing a FULL SCAN on table S_CALL_LST_CON which had millions of records and it was costing more. I was thinking of constraints that would reduce the cost based on the user key of S_CALL_LST_CON ..Hurray!! it did work .Now the time it took to retrieve data was less than a second. That's it for now..Later..