+ Start a Discussion
Lakshmi SLakshmi S 

Order of apex class execution

Hi Dev's

Apex class (constructor, methods, getter & setter properties) order of execution?

Regards
Lakhsmi
Nishad KNishad K
Hi Lakshmi,

Apex order as follows: 

1. Constructor of the inherited class of the component
2. Component constructor
3. Inherited class constructor
4. Constructor controller
5. Controller GET method
6. Component GET method

Ref this blog:http://blog.terrasky.com/blog/execution-order-of-apex

Order of Execution for Visualforce Page Get Requests
  • The constructor methods on the associated custom controller or controller extension classes are called, instantiating the controller objects.
  • If the page contains any custom components, they are created and the constructor methods on any associated custom controllers or controller extensions are executed. If attributes are set on the custom component using expressions, the expressions are evaluated after the constructors are evaluated.
  • The page then executes any assignTo attributes on any custom components on the page. After the assignTo methods are executed, expressions are evaluated, the action attribute on the component is evaluated, and all other method calls, such as getting or setting a property value, are made.
  • If the page contains an component, all of the information necessary to maintain the state of the database between page requests is saved as an encrypted view state. The view state is updated whenever the page is updated.
  • The resulting HTML is sent to the browser. If there are any client-side technologies on the page, such as JavaScript, the browser executes them.
Ref:https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_controller_get_request.htm

Regards, 
Amit Chaudhary 8Amit Chaudhary 8
Please check below post for same
1) http://amitsalesforce.blogspot.com/2015/01/triggers-and-order-of-execution.html

Triggers and Order of Execution
 
1.     Loads the original record from the database or initializes the record for an upsert statement.
2.     Loads the new record field values from the request and overwrites the old values.
If the request came from a standard UI edit page, Salesforce runs system validation to check the record for:
 
  •      Compliance with layout-specific rules
  •          Required values at the layout level and field-definition level
  •          Valid field formats
  •          Maximum field length
Salesforce doesn't perform system validation in this step when the request comes from other sources, such as an Apex application or a SOAP API call.
Salesforce runs user-defined validation rules if multiline items were created, such as quote line items and opportunity line items.
3.     Executes all before triggers.
4.     Runs most system validation steps again, such as verifying that all required fields have a non-null value, and runs any user-defined validation rules. The only system validation that Salesforce doesn't run a second time (when the request comes from a standard UI edit page) is the enforcement of layout-specific rules.
5.     Executes duplicate rules. If the duplicate rule identifies the record as a duplicate and uses the block action, the record is not saved and no further steps, such as after triggers and workflow rules, are taken.
6.     Saves the record to the database, but doesn't commit yet.
7.     Executes all after triggers.
8.     Executes assignment rules.
9.     Executes auto-response rules.
10.  Executes workflow rules.
11.  If there are workflow field updates, updates the record again.
12.  If workflow field updates introduced new duplicate field values, executes duplicate rules again.
13.  If the record was updated with workflow field updates, fires before update triggers and after update triggers one more time (and only one more time), in addition to standard validations. Custom validation rules are not run again.
14.  Executes processes.
Processes are currently available through a private beta program. For information on enabling this feature in your organization, contact Salesforce.
If there are workflow flow triggers, executes the flows.
Flow trigger workflow actions, formerly available in a pilot program, have been superseded by the Process Builder. Organizations that are using flow trigger workflow actions may continue to create and edit them, but flow trigger workflow actions aren’t available for new organizations. For information on enabling the Process Builder (beta) in your organization, contact Salesforce.
15.  Executes escalation rules.
16.  Executes entitlement rules.
17.  If the record contains a roll-up summary field or is part of a cross-object workflow, performs calculations and updates the roll-up summary field in the parent record. Parent record goes through save procedure.
18.  If the parent record is updated, and a grandparent record contains a roll-up summary field or is part of a cross-object workflow, performs calculations and updates the roll-up summary field in the grandparent record. Grandparent record goes through save procedure.
19.  Executes Criteria Based Sharing evaluation.
20.  Commits all DML operations to the database.
21.  Executes post-commit logic, such as sending email.

**********************************************************************************************************************

Visualforce page life cycle in salesforce

1) http://amitsalesforce.blogspot.com/2015/04/visualforce-page-life-cycle-in.html

In the diagram above the user initially requests a page, either by entering a URL or clicking a link or button. This initial page request is called the get request.
  1. Constructor methods on the associated controller / extension classes are called, instantiating the controller objects.
  2. If the page contains any custom components, they are created and the constructor methods on any associated custom controllers or controller extensions are executed. If attributes are set on the custom component using expressions, the expressions are evaluated after the constructors are evaluated.
  3. The page then executes any assignTo attributes on any custom components on the page. After the assignTo methods are executed, expressions are evaluated, the action attribute on the <apex:page> component is evaluated, and all other method calls, such as getting or setting a property value, are made.
  4. If the page contains an <apex:form> component, all of the information necessary to maintain the state of the database between page requests is saved as an encrypted view state. The view state is updated whenever the page is updated.
  5. The resulting HTML is sent to the browser. If there are any client-side technologies on the page, such as JavaScript, the browser executes them.

In short :-

Constructor of controller /extension - >  constructor of custom components  -> AssignTo any Custom Components -> Action method->Getter or Setter -> Form method -> HTML


Let us know if this will help you