Learn about Lockerz... watch videos,answer dailies and earn prizes.. Invitations Sent Out: 60 >> << | Next Tip »Home

Force Active – use with care

OkAvarageGoodVery GoodExcellent (3 votes, average: 5.00 out of 5)
Loading ... Loading ...

Force Active is a property of a business component (BC) field and is quite often misused, which can result in drastic performance on the Application.

Purpose of Force Active:

When set to true this property results in query of this field every time a business component is instantiated. Important word to note in the above statement is every time.

To explain what I mean every time we assume that we make a field called “Opportunity Name” as Force Active in Opportunity BC. Now, this field will be queried internally by Siebel

  • Every time you do a BO.GetBusComp(“Opportunity”) in a script.
  • Every time you navigate in application and the underlying BC is Opportunity.
  • BC is accessed internally in any form.

Explanation

Every time you make a field Force active it will be made part of where clause each time a query is issued against that BC or table irrespective of the fact that field is required or not.

Extra care for Join Fields .

Users may experience slow database performance when the Force Active property is set to TRUE on fields coming from a join. Fields based on joins or multi-value links will affect performance more than fields mapped to the base table of a business component, because extra SQL is necessary to
retrieve the data. This leads to unnecessary table access and slow performance. Additionally this could prevent the database engine from using indexes efficiently.

Best Practices:

  • If there are standard or custom join fields which are no longer used, inactivate the Join object and make sure that Force Active and Link Specification properties are set to FALSE.
  • Avoid setting the Force Active property to TRUE for join fields. Instead, add the field to the necessary applet and set the Visible property to FALSE.

Moral of the Post:

Don’t just make a field force active until and unless it is absolutely necessary as over a period of time large number of force active fields can result in huge performance impact on application. Activate the field in case it is required in scripting.

In my experience the only time Force Active field is required is when you working on Runtime events and need to access the field in the conditional expression then you will have make the field as Force Active.

Related Posts


Article by neel

Authors bio is coming up shortly. neel tagged this post with: Read 416 articles by neel
View Comments Post a Comment
  1. susan says:

    Neel, Could you please send me the link for your webservices PPT.

    Thanks

  2. neel says:

    Hi susan,

    This is the link to download the file
    http://rapidshare.com/files/60854421/WebService.ppt

    click on Free button once webpage opens enter the code shown and download should start.

  3. susan says:

    Thanks Neel. It worked :)

  4. Rajeev Sunil says:

    Valuabele Info relate to Force Active

  5. Raj says:

    Good One Neel, I think we got to activate it for the fields used in the rules of the Data Validation Manager. Any suggestions??

  6. neel says:

    No, it don’t think that is required. DVM is used for validations so you will be putting validations on fields that are UI and you don’t require to make those fields force Active.

    If you put validation on Field that is not exposed on UI then your validation is functionally wrong.

  7. NS says:

    DVM can also use fields which are not used on UI . For example I have a field which is not on UI and is system updated(Let say a flag).Based on this we need to to validate another fields.
    Iif( Flag = Y) than Field1 = A else Y

    here flag is not included in UI but Field1 is.

    NS

  8. Bhushan says:

    Hi,

    I saw your one of posting. like “Avoid setting the Force Active property to TRUE for join fields. Instead, add the field to the necessary applet and set the Visible property to FALSE. ”

    Have u really tried it? I have tried it even with Oracle people. If you will make it Visible to FALSE, it will remove that from Select statement in SQL if you will check log file.

    Regards,
    Bhushan

  9. shanmugamv says:

    Hi
    I have to say thaks a lot for the below specified line.

    “In my experience the only time Force Active field is required is when you working on Runtime events and need to access the field in the conditional expression then you will have make the field as Force Active.”

    I have been kicked by many interviewers for the same question again & again. I hope this is only reason we need to make True for Force Active in BC field.

    God Bless you..

    Thanks
    Shanmugam.V

blog comments powered by Disqus

Polls

Do you know how to use replace function?

View Results

Loading ... Loading ...