Interview Questions For Visual Force Page And Apex Tutorial in Details


351. Onchange event does not work with <apex:actionsupport> in IE9. How to resolve this error?

If we add the Header on Visualforce page then it creates lots of problem in IE9. I think there are few java-script library loaded by Header of Salesforce which makes IE9 compatible. So the best solution is to enable the Header by using “showHeader=true” in Apex page.

352. If IE9 is not working with your custom visualforce page then how to tell your visualforce code to run in IE8 compatibility mode?

Add following metatag to pages:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />

353. It may happen that above tips will not work as lots of time the page header already set. Then, how to achieve same result using Apex?

Add below line of code in Apex (Constructor)
Apexpages.currentPage().getHeaders().put('X-UA-Compatible', 'IE=8');

354. How to display the formatted number / date in Visualforce? Which component should be used?

Use component “<apex:outputText>”.

Example : Format the number into currency.
<apex:outputtext value="{0, number, 000,000.00}">
   <apex:param value="{!valFromController}" />
</apex:outputtext>
OR
<apex:outputtext value="{0, number, ###,###.00}">
   <apex:param value="{!valFromController}" />
</apex:outputtext>

355. You want to display the Encrypted field on Visualforce and you are using component apex:outputText. Will it work for Encrypted fields?

Encrypted custom fields that are embedded in the <apex:outputText> component display in clear text. The <apex:outputText> component doesn’t respect the View Encrypted Data permission for users. To prevent showing sensitive information to unauthorized users, use the <apex:outputField> tag instead.

356. Will below query work? Explain.
SELECT COUNT(Id), Name, Address__c FROM Opportunity GROUP BY Name

Above query will throw an error.

Explanation: In Group by clause the columns selected must be either used in Group by clause or in aggregate functions. The Name field is neither used in aggregate methods and in group by clause and hence will result in error “Malformed Query”.

357. Explain difference in COUNT() and COUNT(fieldname) in SOQL.

COUNT()
·         COUNT() must be the only element in the SELECT list.
·         You can use COUNT() with a LIMIT clause.
·         You can’t use COUNT() with an ORDER BY clause. Use COUNT(fieldName) instead.
·         You can’t use COUNT() with a GROUP BY clause for API version 19.0 and later. Use COUNT(fieldName) instead.

COUNT(fieldName)
·         You can use COUNT(fieldName) with an ORDER BY clause.
·         You can use COUNT(fieldName) with a GROUP BY clause for API version 19.0 and later.

358. How to write the “Where” clause in SOQL when Group By is used?

We cannot use the “Where” clause with Group By instead we will need to use the “Having Clause“.


Example: 
Get all the opportunity where more than one record exists with same name and name contains “ABC”.
SELECT COUNT(Id) , Name FROM Opportunity GROUP BY Name  Having COUNT(Id) > 1 AND Name like '%ABC%'

359. Let’s consider that the first component in VF page is the Datepicker. In that case whenever the page loads, salesforce auto focus the first component resulting in Datepicker onfocus event. Because of this the Datepicker component opens automatically. How we can avoid this?

On load event, write the javascript code to autofocus any other field or any other non-visible component.

Example :
<span id="focusDistraction"></span>
<script type="text/javascript">
    /* prevent autopup of the date inputfield by the default focus behavoir */
    window.onload=function() {
    document.getElementById('focusDistraction').focus();
    }
</script>

360. How to force lead assignment rule via Apex while updating or adding the Lead?

To enforce Assignment Rules in Apex you will need to perform following steps:
1. Instantiate the “Database.DMLOptions” class.
2. Set the “useDefaultRule” property of “assignmentRuleHeader” to True.
3. Finally call a native method on your Lead called “setOptions”, with the Database.DMLOptions instance as the argument.
// to turn ON the Assignment Rules in Apex
Database.DMLOptions dmlOptn = new Database.DMLOptions();
dmlOptn.assignmentRuleHeader.useDefaultRule = true;
leadObj.setOptions(dmlOptn);

361. Access custom controller-defined enum in custom component?

We cannot reference the enum directly since the enum itself is not visible to the page and you can’t make it a property.
Example:
Apex class:
global with sharing class My_Controller {
  public Case currCase {get; set; }
  public enum StatusValue {RED, YELLOW, GREEN}
  public StatusValues getColorStatus() {
    return StatusValue.RED;  //demo code - just return red
  }
}
Visualforce page:
<apex:image url='stopsign.png' rendered="{!colorStatus == StatusValue.RED}"/>
Above code snippet will throw error something like “Save Error: Unknown property‘My_Controller.statusValue’”
Resolution:

Add below method in Apex Controller:
public String currentStatusValue { get{ return getColorStatus().name(); }}
and change Visualforce code to

<apex:image url='stopsign.png' rendered="{!currentStatusValue == 'RED'}" />

362. What is the need of “Custom Controller” in Visualforce as everything can be done by the combination of Standard Controller + Extension class.

·         Sharing setting is applied on standard object/extension by default; In case we don’t want to apply sharing setting in our code then Custom controller is only option.
·         It is possible that the functionality of page does not required any Standard object or may require more than one standard object, then in that case Custom controller is required.

363. In class declaration if we don’t write keyword “with sharing” then it runs in system mode then why keyword “without sharing” is introduced in apex?

Let’s take example, there is classA declared using “with sharing” and it calls classB method. classB is not declared with any keyword then by default “with sharing” will be applied to that class because originating call is done through classA. To avoid this we have to explicitly define classB with keyword “without sharing”.

364. If user doesn’t have any right on particular record and have only read level access at object level. Can he change the record owner?

Yes. In profile, there is setting for “Transfer Record”.

365. In Which Scenario share object “MyCustomObject__share” is not available/created for custom object “MyCustomObject” ?

The object’s organization-wide default access level must not be set to the most permissive access level. For custom
Objects, that is Public Read/Write.

366. How to get the picklist value in Apex class?

Using Dynamic apex, we can achieve this. On object of type pickilist, call getDescribe(). Then call the getPicklistValues() method. Iterate over result and create a list. Bind it to <apex:selectOptions>.

Code Example:

Let’s say we have a custom object called OfficeLocation__c. This object contains a picklist field Country__c.

The first thing we need to do, within our controller is use the getDescribe() method to obtain information on
the Country__c field:

Schema.DescribeFieldResult fieldResult = OfficeLocation__c.Country__c.getDEscribe();

We know that Country__c is a picklist, so we want to retrieve the picklist values:

List<Schema.PicklistEntry> ple = fieldResult.gerPicklistValues();

The only thing left for us to do is map the picklist values into an <apex:selectOptions> tag can use for display. Here is the entire method from our controller to do this:

public List<SelectOption> getCountries()
{
  List<SelectOption> options = new List<SelectOption>();
        
   Schema.DescribeFieldResult fieldResult =
 OfficeLocation__c.Country__c.getDescribe();
   List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
        
   for( Schema.PicklistEntry f : ple)
   {
      options.add(new SelectOption(f.getLabel(), f.getValue()));
   }       
   return options;
}

With our controller logic all complete, we can call the getCountries() method from our Visualforce page,  and populate the <apex:selectList> tag:

<apex:selectList id="countries" value="{!Office_Location__c.Country__c}"
         size="1" required="true">
  <apex:selectOptions value="{!countries}"/>
</apex:selectList>


367. What are the types of controller in visual force?

There are basically two types of Controller in Visual force page.

1.     Standard Controller and
2.      Custom Controller

368. How many Controllers can be used on single VF page?


Only one controller can be used salesforce. Other than them, Controller extension can be used.
There may be more than one Controller extension.
Example:
<apex:page standardController="Account"
extensions="ExtOne,ExtTwo" showHeader="false">
<apex:outputText value="{!foo}" />
</apex:page>

if ExtOne and ExtTwo, both have the method getFoo() then the method of ExtOne will be executed.
A controller extension is any Apex class that contains a constructor that takes a single argument of typeApexPages.StandardController or CustomControllerName, where CustomControllerName is the name of a custom controller that you want to extend.

369. Explain System.runAs()

Generally, all Apex code runs in system mode, and the permissions and record sharing of the current user are not taken into account. The system method, System.runAs(), lets you write test methods that change user contexts to either an existing user or a new user. All of that user’s record sharing is then enforced. You can only use runAs in a test method. The original system context is started again after all runAs() test methods complete.
Example :


System.runAs(u) {
// The following code runs as user 'u'
System.debug('Current User: ' + UserInfo.getUserName());
System.debug('Current Profile: ' + UserInfo.getProfileId()); }
// Run some code that checks record sharing
}

370. Explain Test.setPage().

It is used to set the context to current page, normally used for testing the visual force controller.

371. Difference between SOSL and SOQL in Salesforce ?

SOSL

SOQL
Stands for "Salesforce object search language".
Stands for "Salesforce object query language".
Works on multiple object at a same time.
Need to write different SOQL for different object.
All fields are already text indexed.
SOQL against same field will be slow.
Cannot used in Triggers. Can only be used in Apex class and anonymous block.
Can be used in Apex class and Triggers.

372. How to round the double to two decimal places in Apex?

Decimal d = 100/3;
Double ans = d.setScale(2) ;


372. In how many ways we can invoke the Apex class?

1.     Visualforce page
2.     Trigger
3.      Web Services
4.      Email Services

373. Can we create Master Detail relationship on existing records?

No. As discussed above, first we have to create the lookup relationship then populate the value on all existing record and then convert it.

374. How validation rules executed? is it page layout / Visualforce dependent?

The validation rules run at the data model level, so they are not affected by the UI. Any record that is saved in Salesforce will run through the validation rules.

375. What is the difference between database.insert and insert?

insert is the DML statement which is same as databse.insert.
However, database.insert gives more flexibility like rollback, default assignment rules etc. we can achieve the database.insert behavior in insert by using the method setOptions(Database.DMLOptions)
Important Difference:

·         If we use the DML statement (insert), then in bulk operation if error occurs, the execution will stop and Apex code throws an error which can be handled in try catch block.
·         If DML database methods (Database.insert) used, then if error occurs the remaining records will be inserted / updated means partial DML operation will be done


376. What is the scope of static variable?

When you declare a method or variable as static, it’s initialized only once when a class is loaded. Static variables aren’t transmitted as part of the view state for a Visualforce page.
Static variables are only static within the scope of the request. They are not static across the server, or across the entire organization.

377. Other than SOQL and SOSL what is other way to get custom settings?

Other than SOQL or SOSL, Custom settings have their own set of methods to access the record.
For example:If there is custom setting of name ISO_Country,


SO_Country__c code = ISO_Country__c.getInstance(‘INDIA’);

//To return a map of data sets defined for the custom object (all records in the custom object), //you would use:
Map<String,ISO_Country__c> mapCodes = ISO_Country__c.getAll();
// display the ISO code for India
System.debug(‘ISO Code: ‘+mapCodes.get(‘INDIA’).ISO_Code__c);
//Alternatively you can return the map as a list:
List<String> listCodes = ISO_Country__c.getAll().values();

378. What happens if child have two master records and one is deleted?

Child record will be deleted.

379. What is Difference in render, rerender and renderas attributes of visualforce?

render – It works like “display” property of CSS. Used to show or hide element.
rerender – After Ajax which component should be refreshed – available on commandlink, commandbutton, actionsupport etc.
renderas – render page as pdf, doc and excel.




380. How to get the list of all available sobject in salesforce database using Apex (Dynamic Apex)?
Map<String, Schema.SObjectType> m =  Schema.getGlobalDescribe();
381. How to create instance of sObject dynamically? Normally the sObject is created like “Account a = new Account();”. But if you are in situation that you don’t know which sObject is going to be instantiated? Means it will be decided at runtime, how you will handle it?
public SObject getNewSobject(String t){
    // Call global describe to get the map of string to token.
            Map<String, Schema.SObjectType> gd = Schema.getGlobalDescribe();
    // Get the token for the sobject based on the type.
            Schema.SObjectType st = gd.get(t);
    // Instantiate the sobject from the token.
            Sobject s = st.newSobject();
            return s;
}

382. How to get all the fields of sObject using dynamic Apex?

Map<String, Schema.SObjectType> m  = Schema.getGlobalDescribe() ;
Schema.SObjectType s = m.get('API_Name_Of_SObject') ;
Schema.DescribeSObjectResult r = s.getDescribe() ;
Map<String,Schema.SObjectField> fields = r.fields.getMap() ;

383. How to get all the required fields of sObject dynamically?

There is no direct property available in Apex dynamic API to represent the required field. However there is another way to know about it.
If any fields have below three properties then it is mandatory field.

1.     If it is Creatable
2.     If it is not nillable and
3.      If it does not have any default value

Map<String, Schema.SObjectType> m  = Schema.getGlobalDescribe() ;
Schema.SObjectType s = m.get(so.apiName) ;
Schema.DescribeSObjectResult r = s.getDescribe() ;
Map<String,Schema.SObjectField> fields = r.fields.getMap() ;
for(String f : fields.keyset())
{
    Schema.DescribeFieldResult desribeResult = fields.get(f).getDescribe();
    if( desribeResult.isCreateable()  && !desribeResult.isNillable() && !desribeResult.isDefaultedOnCreate() )
    {
//This is mandatory / required field
    }
}

384. What is property in Apex? Explain with advantages.

Apex mainly consists of the syntax from the well known programming language Java. As a practice of encapsulation in java we declare any variable as private and then create the setters and getters for that variable.
private String name;
public void setName(String n)
{
  name = n;
}
public String getName()
{
 return name;
}
However, the Apex introduced the new concept of property from language C# as shown below:
public String name {get; set;}
As we can see how simple the code is and instead of using nearly 8 to 11 lines all done in 1 line only. It will be very useful when lots of member is declared in Apex class. It has another advantage in “number of lines of code” limit by salesforce which will drastically reduced.

385. What is the controller extension?


Any apex class having a public constructor with Custom Controller or Standard Controller object as a single argument is known as controller extension.

386. Explain the need or importance of the controller extension.

Controller extension is very useful and important concept introduced by the salesforce recently. It gives the power to programmer to extend the functionality of existing custom controller or standard controller.
A Visualforce can have a single Custom controller or standard controller but many controller extensions.
We can say that the custom extension is the supporter of custom or standard controller.


Consider one example: If there is one controller written and used by the multiple visualforce pages and one of them needs some extra logic. Then instead of writing that logic to controller class (Which is used by many visualforce pages) we can create a controller extension and apply to that page only.

387. How to read the parameter value from the URL in Apex?

Consider that the parameter name is “RecordType”.
String recordType = Apexpages.currentPage().getParameters().get('RecordType');

388. If one object in Salesforce have 2 triggers which runs “before insert”. Is there any way to control the sequence of execution of these triggers?
Salesforce.com has documented that trigger sequence cannot be predefined. As a best practice create one trigger per object and use comment blocks to separate different logic blocks. By having all logic in one trigger you may also be able to optimize on your SOQL queries.
389. What is the difference between trigger.new and trigger.old in Apex – SFDC?
Trigger.new:
Returns a list of the new versions of the sObject records
Note that this sObject list is only available in insert and update triggers
i.e., Trigger.new is available in before insert, after insert, before update and after update
In Trigger.new the records can only be modified in before triggers.
Trigger.old:
Returns a list of the old versions of the sObject records
Note that this sObject list is only available in update and delete triggers.
i.e., Trigger.old is available in after insert, after update, before delete and after update.  
390. How to restrict any Trigger to fire only once?
Triggers can fire twice, once before workflows and once after workflows.
“The before and after triggers fire one more time only if something needs to be updated, If the fields have already been set to a value, the triggers are not fired again.”
Workaround:
public class HelperClass {
   public static boolean firstRun = true;
}
trigger affectedTrigger on Account (before delete, after delete, after undelete) {
    if(Trigger.isBefore){
        if(Trigger.isDelete){
            if(HelperClass.firstRun){
                        Trigger.old[0].addError('Before Account Delete Error');
                        HelperClass.firstRun=false;
                        }
             }
      }
}
394. What are Global variables explain with examples?
Global variables are the variables used to reference the general information about the current user or your organization on a page.
Example:
Global variables must be referenced using Visualforce expression syntax to be evaluated, for example, {!$User.Name}.
List of available global variables are as below
1.     $Action
2.     $Api
3.     $Component
4.     $ComponentLabel
5.     $CurrentPage
6.     $Label
7.     $Label.Site
8.     $ObjectType
9.     $Organization
10.  $Page
11.  $Profile
12.  $Resource
13.  $SControl
14.  $Setup
15.  $Site
16.  $User
17.  $UserRole
18.  $System.OriginDateTime 
19.  $ User.UITheme and $User.UIThemeDisplayed 


395. How to create Many to Many relationships between object?
Creating Many to Many relationship in salesforce is little tricky. You cannot create this type of relationship directly. Follow below steps to create this type of relationship.
Create both objects which should be interlinked.
Create one custom object (also called as junction object), which should have auto number as unique identification and create two master relationships for both objects, no need create tab for this object.
Now on both objects, add this field as related list.
396. In which sequence Trigger and automation rules run in Salesforce.com?
The following is the order salesforce logic is applied to a record.
1.     Old record loaded from database (or initialized for new inserts)
2.     New record values overwrite old values
3.     System Validation Rules
4.     All Apex “before” triggers (EE / UE only)
5.     Custom Validation Rules
6.     Record saved to database (but not committed)
7.     Record reloaded from database
8.     All Apex “after” triggers (EE / UE only)
9.     Assignment rules
10.  Auto-response rules
11.  Workflow rules
12.  Escalation rules
13.  Parent Rollup Summary Formula value updated (if present)
14.  Database commit
15.  Post-commit logic (sending email)

Additional notes: There is no way to control the order of execution within each group above.
397. What is S-Control?
S-Controls are the predominant salesforce.com widgets which are completely based on Javascript. These are hosted by salesforce but executed at client side. S-Controls are superseded by Visualforce now.
398.  What is a Visualforce Page?
Visualforce is the new markup language from salesforce, by using which, We can render the standard styles of salesforce. We can still use HTML here in Visualforce. Each visualforce tag always begins with “apex” namespace. All the design part can be acomplished by using Visualforce Markup Language and the business logic can be written in custom controllers associated with the Page.
399.  Will Visual force still supports the merge fields usage like S-control?
Just like S-Controls, Visualforce Pages support embedded merge fields, like the {!$User.FirstName} used in the example.
400. What are Merge fields? Explain with example?
Merge fields are fields that we can put in Email templates, mail merge templates, custom link or formula fields to incorporate values from a record.
Example: {!CustomObject.FieldName__c}
401.  Where to write Visualforce code?
You can write the code basically in 3 ways.
1.     setup->App Setup->Develop->Pages and create new Visulaforce page.
2.     Setup -> My Personal Information -> Personal Information -> Edit check the checkbox development mode. When you run the page like this, https://ap1.salesforce.com/apex/MyTestPage.you will find the Page editor at the bottom of the page. You can write you page as well as the controller class associated with it, there itself.
3.     Using Eclipse IDE you can create the Visulaforce page and write the code.

402. What is difference in ISNULL and ISBLANK?
ISNULL:
·         Determines if an expression is null (blank) and returns TRUE if it is. If it contains a value, this function returns FALSE.
·         Text fields are never null, so using this function with a text field always returns false. For example, the formula field IF(ISNULL(new__c) 1, 0) is always zero regardless of the value in the New field. For text fields, use the ISBLANK function instead.
·         Multi-select picklist fields are never null in s-controls, buttons, and email templates, so using this function with a multi-select picklist field in those contexts always returns false.
·         Empty date and date/time fields always return true when referenced in ISNULL functions.
·         Choose Treat blank fields as blanks for your formula when referencing a number, percent, or currency field in an ISNULL function. Choosing Treat blank fields as zeroes gives blank fields the value of zero so none of them will be null.
·         Merge fields can be handled as blanks, which can affect the results of components like s-controls because they can call this function.
·         When using a validation rule to ensure that a number field contains a specific value, use the ISNULL function to include fields that do not contain any value. For example, to validate that a custom field contains a value of ’1,’ use the following validation rule to display an error if the field is blank or any other number: OR(ISNULL(field__c), field__c<>1)
ISBLANK:
·         Determines if an expression has a value and returns TRUE if it does not. If it contains a value, this function returns FALSE.
·         Use ISBLANK instead of ISNULL in new formulas. ISBLANK has the same functionality as ISNULL, but also supports text fields. Salesforce.com will continue to support ISNULL, so you do not need to change any existing formulas.
·         A field is not empty if it contains a character, blank space, or zero. For example, a field that contains a space inserted with the spacebar is not empty.
·         Use the BLANKVALUE function to return a specified string if the field does not have a value; use the ISBLANK function if you only want to check if the field has a value.

·         If you use this function with a numeric field, the function only returns TRUE if the field has no value and is not configured to treat blank fields as zeroes.

403. How to schedule a class in Apex?
To invoke Apex classes to run at specific times, first implement the Schedulable interface for the class, then specify the schedule using either the Schedule Apex page in the Salesforce user interface, or the System.schedule method.
After you implement a class with the Schedulable interface, use the System.Schedule method to execute it. The scheduler runs as system: all classes are executed, whether the user has permission to execute the class or not.
The System.Schedule method takes three arguments: a name for the job, an expression used to represent the time and date the job is scheduled to run, and the name of the class. 
Salesforce only adds the process to the queue at the scheduled time. Actual execution may be delayed based on service availability. The System.Schedule method uses the user's time zone for the basis of all schedules. You can only have 25 classes scheduled at one time.
Example Code:
String CRON_EXP = '0 0 * * * ?';
clsScheduledHourly sch = new clsScheduledHourly();
system.schedule('Hourly Sync', CRON_EXP, sch);

404. What are different APIs in salesforce.com?

REST API:
REST API provides a powerful, convenient, and simple REST-based Web services interface for interacting with Salesforce. Its advantages include ease of integration and development, and it’s an excellent choice of technology for use with mobile applications and Web projects. However, if you have a large number of records to process, you may wish to use Bulk API, which is based on REST principles and optimized for large sets of data.
SOAP API:
SOAP API provides a powerful, convenient, and simple SOAP-based Web services interface for interacting with Salesforce.You can use SOAP API to create, retrieve, update, or delete records. You can also use SOAP API to perform searches and much more. Use SOAP API in any language that supports Web services.
For example, you can use SOAP API to integrate Salesforce with your organization’s ERP and finance systems, deliver real-time sales and support information to company portals, and populate critical business systems with customer information.
Chatter API:
Chatter API is a REST API that provides programmatic access to Chatter feeds and social data such as users, groups, followers, and files. It's used by developers who want to integrate Chatter into a variety of applications such as mobile applications, intranet sites, and third-party Web applications. Chatter API is similar to APIs offered by other companies with feeds, such as Facebook and Twitter. Its advantages include ease of integration and development.
Bulk API:
Bulk API is based on REST principles and is optimized for loading or deleting large sets of data. You can use it to query, insert, update, upsert, or delete a large number of records asynchronously by submitting batches which are processed in the background by Salesforce.
SOAP API, in contrast, is optimized for real-time client applications that update small numbers of records at a time. Although SOAP API can also be used for processing large numbers of records, when the data sets contain hundreds of thousands of records, it becomes less practical. Bulk API is designed to make it simple to process data from a few thousand to millions of records.
The easiest way to use Bulk API is to enable it for processing records in Data Loader using CSV files. This avoids the need to write your own client application.
Metadata API:
Use Metadata API to retrieve, deploy, create, update, or delete customizations for your organization. The most common use is to migrate changes from a sandbox or testing organization to your production environment. Metadata API is intended for managing customizations and for building tools that can manage the metadata model, not the data itself.
The easiest way to access the functionality in Metadata API is to use the Force.com IDE or Force.com Migration Tool. These tools are built on top of Metadata API and use the standard Eclipse and Ant tools respectively to simplify the task of working with Metadata API. Built on the Eclipse platform, the Force.com IDE provides a comfortable environment for programmers familiar with integrated development environments, allowing you to code, compile, test, and deploy all from within the IDE itself. The Force.com Migration Tool is ideal if you want to use a script or a command-line utility for moving metadata between a local directory and a Salesforce organization.
Streaming API:
Use Streaming API to receive notifications for changes to data that match a SOQL query that you define.
Streaming API is useful when you want notifications to be pushed from the server to the client. Consider Streaming API for applications that poll frequently. Applications that have constant polling action against the Salesforce infrastructure, consuming unnecessary API call and processing time, would benefit from this API which reduces the number of requests that return no data. Streaming API is also ideal for applications that require general notification of data changes. This enables you to reduce the number of API calls and improve performance.
Apex REST API:
Use Apex REST API when you want to expose your Apex classes and methods so that external applications can access your code through REST architecture. Apex REST API supports both OAuth 2.0 and Session ID for authorization.
Apex SOAP API:
Use Apex SOAP API when you want to expose your Apex methods as SOAP Web service APIs so that external applications can access your code through SOAP. Apex SOAP API supports both OAuth 2.0 and Session ID for authorization.
405. How to display error message on Visualforce page?
In the Visualforce page add the tag:
 <apex:pageMessages />
 In the controller class add the error message where required
if ( requiredFieldName == null){

            ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR, 'Please enter a value in the Required Field'));
}

406. What is Visualforce View State? And what are best practices to reduce the view state size?
Visualforce pages that contain a form component also contain an encrypted, hidden form field that encapsulates the view state of the page. This view state is automatically created, and as its name suggests, it holds the state of the page – state that includes the components, field values and controller state.

Best Practices to reduce the view state size

·         Minimize number of form on a page.  Use apex:actionRegion instead of using 2 or more forms.
·         Refine your SOQL to only retrieve the data needed by the page.
·         All public and private data members present in Standard, Custom and Controller extensions are saved.
·         Mark any Apex variables that are not necessary to the view state as Transient. (The transient variables are not passed to view state and therefore not stored in View State)
·         Create wizards with as few pages as possible
·         Use outputLink components instead of commandLink or commandButton components where possible as they don’t need to be nested in a form.

407. What are custom settings?
Custom settings are similar to custom objects and enable application developers to create custom sets of data, as well as create and associate custom data for an organization, profile, or specific user. All custom settings data is exposed in the application cache, which enables efficient access without the cost of repeated queries to the database. This data can then be used by formula fields, validation rules, Apex, and the SOAP API.
There are two types of custom settings:
List Custom Settings
A type of custom setting that provides a reusable set of static data that can be accessed across your organization. If you use a particular set of data frequently within your application, putting that data in a list custom setting streamlines access to it. Data in list settings does not vary with profile or user, but is available organization-wide. Because the data is cached, access is low-cost and efficient: you don't have to use SOQL queries that count against your governor limits.
Hierarchy Custom Settings
A type of custom setting that uses a built-in hierarchical logic that lets you “personalize” settings for specific profiles or users. The hierarchy logic checks the organization, profile, and user settings for the current user and returns the most specific, or “lowest,” value. In the hierarchy, settings for an organization are overridden by profile settings, which, in turn, are overridden by user settings.
408. What is APEX?
It is the in-house technology of salesforce.com which is similar to Java programming with object oriented concepts and to write our own custom logic.
• Apex is a procedural scripting language in discrete and executed by the Force.com platform.

• It runs natively on the Salesforce servers, making it more powerful and faster than non-server code, such as JavaScript/AJAX.
• It uses syntax that looks like Java
• Apex can written in triggers that act like database stored procedures.
• Apex allows developers to attach business logic to the record save process.
• It has built-in support for unit test creation and execution.

Apex provides built-in support for common Force.com platform idioms, including:

• Data manipulation language (DML) calls, such as INSERT, UPDATE, and DELETE, that include built-in DmlException handling
• Inline Salesforce Object Query Language (SOQL) and Salesforce Object Search Language (SOSL) queries that return lists of sObject records
- Looping that allows for bulk processing of multiple records at a time
- Locking syntax that prevents record update conflicts
- Custom public Force.com API calls that can be built from stored Apex methods
- Warnings and errors issued when a user tries to edit or delete a custom object or field that is referenced by Apex

Note: Apex is included in Unlimited Edition, Developer Edition, Enterprise Edition, and Database.com
Apex vs. Java: Commonalities

• Both have classes, inheritance, polymorphism, and other common OOP features.
• Both have the same name variable, expression, and looping syntax.
• Both have the same block and conditional statement syntax.
• Both use the same object, array, and comment notation.
• Both are compiled, strongly-typed, and transactional.

Apex vs. Java: Differences

• Apex runs in a multi-tenant environment and is very controlled in its invocation and governor limits.
• To avoid confusion with case-insensitive SOQL queries, Apex is also case-insensitive.
• Apex is on-demand and is compiled and executed in cloud.
• Apex is not a general purpose programming language, but is instead a proprietary language used for specific business logic functions.
• Apex requires unit testing for development into a production environment.

409. Explain the Apex Data Manipulation Language (DML) Operations?
Use data manipulation language (DML) operations to insert, update, delete, and restore data in a database.
You can execute DML operations using two different forms:
Apex DML statements, such as:
insertSObject[]
Apex DML database methods, such as:
Database.SaveResult[] result = Database.Insert(SObject[])
While most DML operations are available in either form, some exist only in one form or the other.
The different DML operation forms enable different types of exception processing:
·     Use DML statements if you want any error that occurs during bulk DML processing to be thrown as an Apex exception that immediately interrupts control flow (by using try. . .catch blocks). This behavior is similar to the way exceptions are handled in most database procedural languages.


·         Use DML database methods if you want to allow partial success of a bulk DML operation—if a record fails, the remainder of the DML operation can still succeed. Your application can then inspect the rejected records and possibly retry the operation. When using this form, you can write code that never throws DML exception errors. Instead, your code can use the appropriate results array to judge success or failure. Note that DML database methods also include a syntax that supports thrown exceptions, similar to DML statements


54 comments:

  1. Awesome i was looking for something like this and i got it here Thanx btw........

    ReplyDelete
  2. Awesome blog for interview questions. Thank You so much and appreciate your work.

    ReplyDelete
  3. Excellent work, I have readied at least eight posts of your website and let me tell you, your website provides the most fascinating information. It’s really helpful who want to crack Salesforce interviews. Salesforce is a highly complex application that can be configured to do practically anything. For More Info: https://goo.gl/H8i2lC

    ReplyDelete
  4. Thank you for taking the time to provide us with your valuable information. We strive to provide our candidates with excellent care and we take your comments to heart.As always, we appreciate your confidence and trust in us.

    Java Training in Chennai

    Salesforce Training in Chennai

    ReplyDelete
  5. The visual force interview questions shared are very much useful My sincere thanks for sharing this post and please continue to share this kind of post
    Salesforce Training in Chennai

    ReplyDelete
  6. Awesome Blog...Keep posting

    ReplyDelete
  7. Hello,
    Very nice collection of questions thank you for sharing. Know more about Salesforce Apex Interview Questions.

    ReplyDelete
  8. This comment has been removed by the author.

    ReplyDelete
  9. Thanks for such a great article here. I was searching for something like this for quite a long time and at last I’ve found it on your blog. It was definitely interesting for me to read  about their market situation nowadays.
    angularjs Training in chennai

    angularjs Training in chennai

    angularjs-Training in tambaram

    angularjs-Training in sholinganallur

    angularjs-Training in velachery

    angularjs-Training in pune

    ReplyDelete
  10. Tevida in the form of a safe daily supplement. The improvements of men are always necessary for many men in the world. But the problem is that many people think that taking pills will not do anything to help the
    https://www.supplementsforfitness.com/tevida/

    ReplyDelete
  11. This comment has been removed by the author.

    ReplyDelete
  12. Ken Academy is the premier institute for SAP courses London. Ken offer a practical industry-led approach. Ken has emerged as a destination of choice among the students. We have trained enormous students individual as well as corporates who are looking for excelling and building a career in SAP.

    ReplyDelete
  13. Maple Hill Outsourcing services is a specialist outsourcing provider working specifically for Uk businesses of all size. Our team is qualified and highly trained in almost every software used in the accounting world.

    ReplyDelete
  14. Keto Pure Diet - There is a rich number of opinions on this matter. You have to start thinking like a weight loss pro. I ought to call foul. There are all kinds of conditions that you have to ponder. We should be able to do it without any of the stress yet get somebody you know and trust to drop hints about your weight loss. I'm a well-known leader in that region. Agreed, having a weight loss is not a dream, it's real. This is a required program for engineering more weight loss. The big picture is obvious, but weight loss goes far beyond that point. When using this weight loss strategy in this context it makes weight loss possible. Weight loss isn't simple.

    http://www.wellnesstrials.com/keto-pure-diet/

    http://www.wellnesstrials.com/

    https://www.pinterest.com/claimwellnesstrials/

    https://www.instagram.com/claimwellnesstrials/

    http://claimwellnesstrials.over-blog.com/

    https://works.bepress.com/wellness-trials2/

    ReplyDelete
  15. Life Nutra Keto -This is just one of the residual benefits. I started using weight loss at an early age. This is my financial guidance as it relates to weight loss. In a couple of cultures weight loss isn't used that way. How can you expect your weight loss to progress? In my research, these are the realities with regard to weight loss.

    https://www.herbal-heath-review.com/life-nutra-keto/

    ReplyDelete
  16. There are a lot of occasions to be in contact with the job world (workshops, presentations in front of the company, guest speakers, seminars).Along that blogs is helping through learn on different path to move on different career.
    ipod service center in Chennai | Authorized ipod service center in Chennai | ipad service center in chennai | ipod service center in chennai | ipad service center in chennai | apple service center in chennai | iphone unlocking service | Laptop service center in chennai

    ReplyDelete
  17. Enzolast : That's price each dollar I spent. I'll be the primary to admit that. We tend to have a high level of experience. They're a well-known knowledgeable. Penis Enlargement is not paramount currently. They do make good on their advertising claims. As I replicate back on getting my 1st Penis Enlargement I'm astounded at how a lot of has changed so that testosterone could offer you with a spectacular advantage.

    https://www.supplementmegamart.org/enzolast/

    ReplyDelete
  18. Dragons Den Diet is leading company in United Kingdom which sells various health related products.it has a vast range of products like weight loss supplement,male enhancement,muscle related products & skin care.we are offering the best discount in the market and selling best quality products.

    For More Information Visit Our Official Website >>> https://www.dragonsdendiet.com/

    https://www.dragonsdendiet.com/nitro-strength/

    ReplyDelete
  19. 9 Ways Facebook Destroyed My Forex Duality Without Me Noticing - https://www.reviewengin.com/forex-duality-review/

    ReplyDelete
  20. Overnight Freedom Review by Mark Ling is an online affiliate marketing training program that teaches its students the intricacies of affiliate marketing. It tutors the students to achieve a 6 to 7 figure income through affiliate marketing.

    ReplyDelete
  21. Hello, I am Abelard From Germany (DE). I want to tell you a interesting game DUNDER CASINO. Its amazing & when you register before play this game. You get Free Spins & $100 also. We believe that the player experience is everything, and an outstanding support team is key. We are human beings, but more importantly casino enthusiasts. If you want to play DUNDER CASINO and earn money then Click Here & Get BONUS % FREE SPINS.
    VISIT HERE :https://casinoforgambling.blogspot.com/2019/10/dunder-casino-de.html
    https://casinoforgambling.blogspot.com/
    https://casinoforgambling.blogspot.com/2019/10/dunder-casino-germany.html

    ReplyDelete
  22. Nice Blog, Thanks for sharing an amazing information with us salesforce client portal

    ReplyDelete
  23. Alpha Titan Testo :-When a product uses the best quality ingredients, only then can you be sure that the results will also be the best? All the other supplements out there use old techniques and copied recipe while we have made something original, and use only the best. Alpha Titan Testo Reviews canada has used many ingredients, but we would like to tell you about a few of them because they do a lot more than others.

    Alpha Titan Testo Reviews
    Bed Boosters

    ReplyDelete
  24. Do I have to explain everything out for you? I can't change the past. Some day your ship will come in. This joke has come full circle. It was a tantalizing taste of things to come. In a recent poll, participants were asked to select the Weight Loss that best fit their description of Keto BodyTone Diet. My concept is crucial. Let's see if we can't stir up the ants' nest so that leaving just one Weight Loss out could prove disastrous.

    Prostate 911
    Empowered Boost
    Keto Plus latam
    Nolatreve Anti Aging
    Peau Jeune Creme
    BitCoin Era Chile
    Crypto Engine Reviews
    OkoWatt Energy Saver
    OxyBreath Pro Mask

    ReplyDelete
  25. Animal Crossing is an extremely popular game now. If you need Nook miles Tickets, why do n’t you consider buying at IGGM, Link:

    Because I have purchased many times, I believe this website can help you. Because they are the most professional. And their safety factor is very high, which of course is the unanimous evaluation of countless customers including me.

    Because they run a lot of games, they can do better than other stores, Animal Crossing is the game. They provide lower prices, more choices and better customer service than most malls in the market. If you are rich enough, you can buy anything here. This website has been in business for many years, and I have purchased it many times, so you do n’t have to worry about being scammed. Only sometimes you need patience and communication, because they have too many customers, and the supply may not be enough.At https://www.iggm.com/animal-crossing-nook-miles-ticket

    ReplyDelete
  26. I'd give this a try if I were you. I achieved an adaquate arrangement. Confused yet? This is how to get rid of worrying thoughts. Don't use too much where a little

    will do. It is due to conditions beyond my control. Your Ecommerce is worth as much as Ecommerce. The first item to know would be the fundamental differences between

    Ecommerce and Tech Products. When I suppose about my own experiences with Tech Products, I have a persuasion concerning Tech Products.



    AOL support number
    powervolt energy saver

    ReplyDelete

  27. I was grouped with someone I didn't care for that much. That is a trend that is echoed nationwide. What can I say in reference to Gadgets to be rather painful? If you can't figure out Ecommerce from your ability of it, then search for it on Yahoo.



    PowerPro Energy Saver
    Mosquitron
    Buzz B Gone

    ReplyDelete
  28. Thank you for sharing such useful information. I really enjoyed while reading your article and it is good to know the latest updates. Do post more. And also read about leadingSalesforce Service Cloud Consultant

    ReplyDelete

  29. I've kind of zig zagged through the maze of Burn Fat today. That begs the question, I realize this and realize this. Through what agency do teachers lay fingers on magnificent Weight Loss deals?

    https://www.nutrahealthpro.com/
    https://www.facebook.com/nutrahealthpro/
    https://twitter.com/nutrahealthpro

    ReplyDelete

  30. Do you need to push healthy skin aside? The end perhaps that in all actuality some place in the center yet on the off chance that you won't

    comprehend that you're as visually impaired. That may when it is comparable to skin health management however can likewise show a significant

    issue sooner rather than later. In principle I, by and by, kind of expel that staggering estimate. Unquestionably, we'll return to the current

    point. Do you have an arrangement for tonight? We'll spill the beans.


    https://www.nutrahealthpro.comhttps:

    www.facebook.com/nutrahealthpro

    https://twitter.com/nutrahealthpro

    https://in.pinterest.com/nutrahealthpro1





    ReplyDelete
  31. The combination of paid search and content advertising provides you a cohesive web marketing whole. When you finally start creating content, you have to know who you’re speaking to and tailor your model voice to enchantment to them uniquely. If you aren’t targeting the best viewers (these people who will lean in to hear what you’re saying), you won’t discover success. And, when you can’t find a method to stand out, you’ll mix into the hordes of other brands competing for consideration in your industry. Multicultural advertising is devising and executing a marketing marketing campaign that targets folks of different ethnicities and cultures inside a model’s overarching viewers.
    Being a digital advertising manager involves an intimate information of social media advertising, web optimization and eCommerce, amongst different areas. Creative administrators make sure that the inventive juices are flowing in the advertising and advertising departments. Creative administrators must be good at working with a variety of individuals from different profession backgrounds, including graphic designers, copywriters, marketers and sales groups.
    When a consumer varieties in a certain keyword, SEM permits your business to look as a high end result for that search query. The two forms of SEM embrace search engine marketing for organic search results and pay-per-click on advertising for sponsored SERPs. You can even do market analysis to establish whether or not your niche is possible in the long term as a money-making gig or not.
    Offer other digital services like SEO consulting, SEO writing, PPC management, or content material marketing providers. The quantity of people that wish to make their properties look genuine is growing exponentially, and so is the enterprise opportunity. You can get business by contacting local properties and listing your products on platforms like eBay and Amazon. Startups, small businesses, and influencers are all the time looking to scale up their online presence by promoting high-high quality, participating content. You can begin by cooking something so simple as your mother’s excellent recipe for cookies to excellent your skills.
    Word of mouth advertising is clients’ recommendations of a model, which is probably the most trusted type of advertising at present. To create as a lot word of mouth marketing as possible, you should keep laser-centered on developing the best services or products possible and offering top-notch customer service. In other phrases, you have to serve your prospects' needs before your own.
    First and foremost, you want all of your online content material to add worth to your customers'’s lives. This is the one means you’ll entice quality leads and build deep relationships along with your online neighborhood for the lengthy-term. https://www.reviewengin.com/6-tips-on-strategic-instagram-marketing/

    ReplyDelete
  32. They can use their substantial foreign exchange reserves to try and stabilize the market. In the end, it’s up to you to decide whether or not you can afford to take the high risk of losing money in pursuit of a big payday, especially in the case of CFDs. If you decide to proceed in trading forex currency pairs, we hope our reviews will help you find the best forex broker for your needs. Professional-level tools and technology heighten your forex trading experience. Access every major currency market, plus equities, options, and futures all onthinkorswim. An online forex broker acts as an intermediary, enabling retail traders to access online trading platforms to speculate on currencies and their price movements. The foreign exchange market, also known as the forex market, is the world’s most traded financial market.

    The Forex market remains open around the world for 24 hours a day with the exception of weekends. It is estimated that in the UK, 14% of currency transfers/payments are made via Foreign Exchange Companies. These companies' selling point is usually that they will offer better exchange rates or cheaper payments than the customer's bank. These companies differ from Money Transfer/Remittance Companies in that they generally offer higher-value services. Around 25% of currency transfers/payments in India are made via non-bank Foreign Exchange Companies.

    If money is more expensive to borrow, investing is harder, and currencies may weaken. IG offers competitive spreads of 0.8 pips for EUR/USD and USD/JPY, and 1 pip on GBP/USD, AUD/USD and EUR/GBP.

    In most cases, you simply need to fill out a short online currency-trading application. If you're opening a new forex account, you'll begin by making a small deposit. Calculating your target forex pair's pip value for a given trade can be complex. Key variables are evolving margin requirements, unique position sizes and base currency. Fortunately, FXCM provides access to a pip calculator to help you stay on top of any trade's liabilities. Trading lower leverage ensures that you have enough capital to become experienced in the market.

    Due to a migration of services, access to your personal client area is temporarily disabled. An alternative Alpari website offers services that are better suited to your location. Forex trading can be highly profitable but also brings significant risks of loss. They seek to profit from changes in different currencies' values in relation to one another. https://www.reviewengin.com/trade-command-center-review/

    ReplyDelete
  33. This comment has been removed by the author.

    ReplyDelete
  34. Excellent information with unique content and it is very useful to know about the information based on blogs.Salesforce Training in Chennai|FITA Academy

    ReplyDelete
  35. Through this Digital Marketing Institute in Panchkula, you will become an expert in modules such as SEO, Social Media Marketing, PPC, Analytics, Content, Mobile, and Email Marketing. Our Social Media Marketing and PPC courses in Panchkula have trained end number of students. Work on real-world projects, learn the latest tools, and attend masterclasses led by the Google and Facebook certified team.

    - Get hands-on training on live projects!
    - Upgrade your resume
    - Get prepared for your dream job.
    - 120+ hours of high-quality training.
    - 10+ live projects.
    - 25+ digital marketing tools and platforms.

    ReplyDelete
  36. Thanks for this wonderful blog it is really informative to all.keep update more information about this...
    Tally Course in Bangalore
    Tally Training in Bangalore

    ReplyDelete
  37. This post is so interactive and informative.keep update more information...
    Oracle Training in Bangalore
    Oracle Course in Bangalore

    ReplyDelete
  38. Nice blog, informative content. I really enjoyed while reading this blog. I bookmarked your site for further reads. Keep sharing more.
    Data Science Course Training Institute in Hyderabad
    Data Science Course Training Institute in Hyderabad with Placements

    ReplyDelete
  39. This post is so useful and informative. Keep updating with more information.....
    Angular JS Features
    Angular JS Job

    ReplyDelete
  40. Thanks for sharing Nice post Apex Tutorial in Details.

    ReplyDelete
  41. Nice Post!!
    Please look into this - Introducing the Business Analytics Certification Program at upGrad Campus - your gateway to unlocking the power of data-driven decision-making! Elevate your career prospects and gain a competitive edge in the dynamic world of business analytics with this comprehensive program.

    ReplyDelete
  42. AWS certifications have become essential in the field, and your detailed guide on how to get started and the resources available is a great roadmap for anyone on this journey. I appreciate the emphasis on setting clear goals and the reminder to continue learning even after certification. Please visit our website:- aws training and certification

    ReplyDelete