I had lot of enthu to upgrade iPhone 3 0s to Iphone 4 OS when it came out butI was not happy for long. Just to name few I could not surf net when playing songs. Both ipod and browser used to crash. After skimming through some third party support pages I hoped for re-start to help but no luck. This morning I went to apple support discussion and found almost 86 pages on Iphone 3g discussing on the same. The steps listed out there work out very well for me to re-store back it to 3 Os. Now I feel that my iphone works at blazing speed.
Before you start on the following steps download .net 4 framework and iphone 3 firmware.
Follow the steps below to re-store your iphone at your own risk..
1.Switch off your iphone using sleep button and sliding power off display
2.Hook u your iphone to your computer
3. Hold home and sleep button together at the same time for 10 seconds
4.After 15 seconds just take your hands off the sleep button and keeping the home button still down for another 15 seconds.
5. This would start your iphone in the recovery mode and you would see the prompt on the itunes for the same.
6. If you don't get this try step 3-5 again
7. After you get the recover option with the shift key down click on rest0re button and navigate to the folder where you downloaded iphone 3 firmware. It'd take 15 minutes to restore
8.If iTunes throw an error after re-storing you can exit the restore mode by pressing the home and sleep button for ten seconds.
8.After it's restored you can restore all your contacts from back up (back up you took before you upgraded to iphone 4.
I followed the above steps and it worked for me.
Sunday, August 29, 2010
Saturday, July 24, 2010
Invoke PL/SQL procedure from IFB
We have a PL.SQL procedure to sync opportunity team with account team. Yes we could have used Assignment manager but because of bug introduced in 8.0 we had to write up the custom pl.sql proc for the team sync.
One thing I had to make sure is that pl.sql scheduled job does not conflict with EIM rcr. To fix this I thought of developing a shell script that would run the pl.sql proc and EIM in sequence.Not a shell script pro so had do some research before I can develop this. When I was discussing on the same with my manager he introuduced me to a cool feature on IFB that would do it.
I tried this out and it works like a charm. So here is how you can do it.
TYPE = IMPORT
BATCH = 0723002010
TABLE = EIM_OPTY
SESSION SQL = "BEGIN INTEGRATION.TEAM_UPDATE; COMMIT; END;"
After this I included the EIM imports and delete process commands. Now I need to schedule just the RCR and not dependent on one more scheduled job.
One thing I had to make sure is that pl.sql scheduled job does not conflict with EIM rcr. To fix this I thought of developing a shell script that would run the pl.sql proc and EIM in sequence.Not a shell script pro so had do some research before I can develop this. When I was discussing on the same with my manager he introuduced me to a cool feature on IFB that would do it.
I tried this out and it works like a charm. So here is how you can do it.
TYPE = IMPORT
BATCH = 0723002010
TABLE = EIM_OPTY
SESSION SQL = "BEGIN INTEGRATION.TEAM_UPDATE; COMMIT; END;"
After this I included the EIM imports and delete process commands. Now I need to schedule just the RCR and not dependent on one more scheduled job.
Saturday, June 5, 2010
Workflow Insert/Update/Query Operation
I've always been using Siebel Operation step to query or update the records on primary business component. But there is always a need to instantiate a differenct business object to get dependent records for update or validation. In such case you can always use a sub process step to call update/query based on new Business Object but this would impact workflow performance. There is a better workaround for this.There is OOB business service which would help us to instantiate a new business object by using Business Object and business componetn as input parameter to business service.
Name of the Business service is Inbound E-mail Database Operations and we can use FindRecord or Insert Record methods on this business service similar to Siebel Operations step.Will post the detail on the same in my next blog.Later.
Name of the Business service is Inbound E-mail Database Operations and we can use FindRecord or Insert Record methods on this business service similar to Siebel Operations step.Will post the detail on the same in my next blog.Later.
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...
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..
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..
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.
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..
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..
Wednesday, February 10, 2010
Invoke Outbound Webservice
Almost a year back I posted a simple outbound webservice to invoke a program in .net and get the sum of two numbers. To parse the response XML I created a custom business service and that did work as expected. But I read about Lookup method on EAI Dispatch Service recently and thought it'd parse the XML better. To try this I removed custom business service step and added a new EAI Dispatch Service step. It worked great and can update the field for response value with no scritping. Ain't that neat!! 
Here is the link for the workflow..
https://docs.google.com/leaf?id=0B190QnHiknnLYmVhZjVhZjgtMDU3YS00YzhiLWFiYmQtOGViYjQxNDcyODI0&hl=en
Later
Sunday, February 7, 2010
Explain plan basics
In recent times I've been writing sql queries frequently.Sometime adding a constrain or adding a join between the tables based on index would return the results much faster.But this is based on my knowledge in Siebel schema but was wondering how would a DBA analyze an executed sql stament to optmize performance. Then came across a powerful SQL command explain plan. I think going forward I'd use this command to optmize the sql..Here is what I did to start with Explain plan command
> Created a table for explain plan ( you can find the sql statement below $oracle_home\rdbms\admin\utlxplan)
create table PLAN_TABLE (
statement_id varchar2(30),
plan_id number,
timestamp date,
remarks varchar2(4000),
operation varchar2(30),
options varchar2(255),
object_node varchar2(128),
object_owner varchar2(30),
object_name varchar2(30),
object_alias varchar2(65),
object_instance numeric,
object_type varchar2(30),
optimizer varchar2(255),
search_columns number,
id numeric,
parent_id numeric,
depth numeric,
position numeric,
cost numeric,
cardinality numeric,
bytes numeric,
other_tag varchar2(255),
partition_start varchar2(255),
partition_stop varchar2(255),
partition_id numeric,
other long,
distribution varchar2(30),
cpu_cost numeric,
io_cost numeric,
temp_space numeric,
access_predicates varchar2(4000),
filter_predicates varchar2(4000),
projection varchar2(4000),
time numeric,
qblock_name varchar2(30),
other_xml clob
);
> Commit the above change
>Executed a simple sql statment on Siebel tables with explain plan command
explain plan for select * from siebel.s_org_ext accnt,
siebel.s_accnt_postn sap,siebel.s_postn postn
where sap.ou_ext_id = accnt.row_id
and sap.position_id = postn.row_id
> Next step is to see the result in the plan table and Oracle has a sample sql statment to view the plan_table @ $oracle_root\RDBMS\ADMIN\utlxpls
select plan_table_output from table(dbms_xplan.display('plan_table',null,'serial'));
Hurray I could see the results in the plan_table ..Now I just need to learn how to read the plan_table and optmize sql queries. To be Continued... :-)
> Created a table for explain plan ( you can find the sql statement below $oracle_home\rdbms\admin\utlxplan)
create table PLAN_TABLE (
statement_id varchar2(30),
plan_id number,
timestamp date,
remarks varchar2(4000),
operation varchar2(30),
options varchar2(255),
object_node varchar2(128),
object_owner varchar2(30),
object_name varchar2(30),
object_alias varchar2(65),
object_instance numeric,
object_type varchar2(30),
optimizer varchar2(255),
search_columns number,
id numeric,
parent_id numeric,
depth numeric,
position numeric,
cost numeric,
cardinality numeric,
bytes numeric,
other_tag varchar2(255),
partition_start varchar2(255),
partition_stop varchar2(255),
partition_id numeric,
other long,
distribution varchar2(30),
cpu_cost numeric,
io_cost numeric,
temp_space numeric,
access_predicates varchar2(4000),
filter_predicates varchar2(4000),
projection varchar2(4000),
time numeric,
qblock_name varchar2(30),
other_xml clob
);
> Commit the above change
>Executed a simple sql statment on Siebel tables with explain plan command
explain plan for select * from siebel.s_org_ext accnt,
siebel.s_accnt_postn sap,siebel.s_postn postn
where sap.ou_ext_id = accnt.row_id
and sap.position_id = postn.row_id
> Next step is to see the result in the plan table and Oracle has a sample sql statment to view the plan_table @ $oracle_root\RDBMS\ADMIN\utlxpls
select plan_table_output from table(dbms_xplan.display('plan_table',null,'serial'));
Hurray I could see the results in the plan_table ..Now I just need to learn how to read the plan_table and optmize sql queries. To be Continued... :-)
Sunday, January 24, 2010
Respository Export
I've always been wondering how complicated is it to do a repository migration. To experience that I decided to do a repository migration myself in my system. To start with the repository export was pretty straight forward. Here are the steps
Enviroment:Windows XP, Oracle 10g ,Siebel
> Created a batch file with the following set of commands
c:cd "C:\sba80\siebsrvr\BIN"repimexp -a e -c siebel -u sadmin -p sadmin -d siebel -f c:\Repository.dat -l c:\repexpimp.log
-a e repository export
-c Database instance
-u sadmin userid
-p sadmin password
Save the file as batch file and click on it.The process will start and export a repository file Repository.dat to C:\ drive .Now the repository needs to be imported to the destination instance and will post the steps for the same in the next blog. L8r
Enviroment:Windows XP, Oracle 10g ,Siebel
> Created a batch file with the following set of commands
c:cd "C:\sba80\siebsrvr\BIN"repimexp -a e -c siebel -u sadmin -p sadmin -d siebel -f c:\Repository.dat -l c:\repexpimp.log
-a e repository export
-c Database instance
-u sadmin userid
-p sadmin password
Save the file as batch file and click on it.The process will start and export a repository file Repository.dat to C:\ drive .Now the repository needs to be imported to the destination instance and will post the steps for the same in the next blog. L8r
Friday, January 22, 2010
Why Workflows ?
In the last couple of projects I have used more workflow than scripting.Probably scripting has all possible ways to customize siebel application but it's always not the best way to approach. Here are MY reasons why I would not prefer scripting as my first choice for customization.The points listed below are based on what I learnt from Good Siebel folks out there or from siebel knowledge base
> Scripting impacts performance.
Most of the scripting on Business components ,applets and Business service is to create new records or query for existing records to retireve data and all these can be done from the workflow as well. Workflow or workflow policy program would peform better for these..Invoking OOB Business service from workflow always perform better than invoking it from script.
> Deployment
Any change in server side scripting would require a srf deployment and this makes it hard whenever scripting is part of major release. Usually I have seen it take sometime to staibilize big customization or an upgrade. Since workflow is based on XML, it makes small changes deployment to other environment easy.
> Fusion future.
Saw that escripting will be obsolete in Siebel Fusion version and everything will be based on Java Programming. So if you are part of new implementation less scripting would make the client life much easier.
Cons of Workflow
There are few times that you would opt for scripting and here are few reasons to list atleast off the top of my head.
> Cannot retrive the calculated field value from workflow.
>Requirements that needs to create many to many associations. Siebel has the inbuilt PickRecord() method that would establish Many to Many relationship.Same is possible in wokflow as well by having a BC on intersection table and creating the aassociation. But this is not RECOMMENDED by Siebel.
>Some escript or string functions cannot be used on workflows
That's all for now.Rest in next.. Cannot wait to watch the game this week..My favorite is Colts now that Cowboys are out..Let's see.
> Scripting impacts performance.
Most of the scripting on Business components ,applets and Business service is to create new records or query for existing records to retireve data and all these can be done from the workflow as well. Workflow or workflow policy program would peform better for these..Invoking OOB Business service from workflow always perform better than invoking it from script.
> Deployment
Any change in server side scripting would require a srf deployment and this makes it hard whenever scripting is part of major release. Usually I have seen it take sometime to staibilize big customization or an upgrade. Since workflow is based on XML, it makes small changes deployment to other environment easy.
> Fusion future.
Saw that escripting will be obsolete in Siebel Fusion version and everything will be based on Java Programming. So if you are part of new implementation less scripting would make the client life much easier.
Cons of Workflow
There are few times that you would opt for scripting and here are few reasons to list atleast off the top of my head.
> Cannot retrive the calculated field value from workflow.
>Requirements that needs to create many to many associations. Siebel has the inbuilt PickRecord() method that would establish Many to Many relationship.Same is possible in wokflow as well by having a BC on intersection table and creating the aassociation. But this is not RECOMMENDED by Siebel.
>Some escript or string functions cannot be used on workflows
That's all for now.Rest in next.. Cannot wait to watch the game this week..My favorite is Colts now that Cowboys are out..Let's see.
Friday, January 1, 2010
Siebel Essentials - 4
Wow! we are into year 2010 and was good to see that I have 14 posts in the last year. One of my resolutions for this year is to post more regularly . Let me list the resolutions for this year.
-Blog more regularly
-Less TV more books.Ok I hesitated before writing this but would be a hard one.
-Learn swimming
Ok that's a pretty short list , let me see if I keep up to my few resolutions. Getting back to basics in Siebel
There was a requirement to display My Teams view on home page. When queried on supportweb it was listed as Product enhancements. Spent sometime to see if I can find a workaround in tools.There is a visibility over ride property for applets on View Web Template Items. Changed this to Manager and that seems to work . When Sales rep logs in they see My View but when a Manager logs in they see My Team's view on the homepage. So far so good but if it did break some thing will update here for the same. L8r
-Blog more regularly
-Less TV more books.Ok I hesitated before writing this but would be a hard one.
-Learn swimming
Ok that's a pretty short list , let me see if I keep up to my few resolutions. Getting back to basics in Siebel
There was a requirement to display My Teams view on home page. When queried on supportweb it was listed as Product enhancements. Spent sometime to see if I can find a workaround in tools.There is a visibility over ride property for applets on View Web Template Items. Changed this to Manager and that seems to work . When Sales rep logs in they see My View but when a Manager logs in they see My Team's view on the homepage. So far so good but if it did break some thing will update here for the same. L8r
Subscribe to:
Posts (Atom)