Menu Bar

ADD ON'Z

Loading...

Tuesday, 21 August 2012

Salesforce Interview Questions Part 1

SALESFORCE INTERVIEW QUESTIONS 

1. What is Apex

Ans: 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.




2. What is S-Control ?
Ans: 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.




3. What is a Visualforce Page ?
Ans: 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.




4. Will Visual force still supports the merge fields usage like S-control ?
Ans: Yes. Just like S-Controls, Visualforce Pages support embedded merge fields, like the {!$User.FirstName} used in the example.




5. Where to write Visualforce code ?
Ans: 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 it self.

3.        Using EclipseIDE you can create the Visulaforce page and write the code.




6.What are Apex Governor Limits?

Governor limits are runtime limits enforced by the Apex runtime engine. Because Apex runs in a shared, multitenant environment, the Apex runtime engine strictly enforces a number of limits to ensure that code does not monopolize shared resources. Types of limits that Apex enforces are resources like memory, database resources, number of script statements to avoid infinite loops, and number of records being processed. If code exceeds a limit, the associated governor issues a runtime exception.




7. How to create and host S Control in Salesforce ?






8. Difference between Sandbox and Development environment?





9. How to schedule export or take the backup of salesforce?




10. Do governor limits apply to sandbox instances?

Ans : Governor limits do apply to all Salesforce instances (trial, developer, production or sandbox environments). However code coverage and successful execution of test classes is only enforced when deploying to a production environment.





11. 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.





12. Is it possible to write the Apex code from user Interface?

You can add, edit, or delete Apex using the Salesforce.com user interface only in a Developer Edition organization, a Salesforce.com Enterprise Edition trial organization, or sandboxorganization. In a Salesforce.com production organization, you can only make changes to Apex by using the Metadata API ,

deploycall, the Force.com IDE, or theForce.com Migration Tool. The Force.com IDE and Force.com Migration Tool are free resources provided by salesforce.com to support its users and partners, but are not considered part of our Services for purposes of the salesforce.com Master Subscription Agreement.




13. When you can’t add Time dependent action in Workflow rule?
You can’t add time-dependent actions to a rule if you choose Every time a record is created or edited.





14. What are the types of email templates available in salesforce.com?

1.        Text

2.        HTML with Letter Head

3.        Custom HTML

4.        Visual force





15. What are the different Salesforce.com Editions and Limits?





16. What is Roll up summary field in Salesforce?

Roll up summary field in salesforce calculates the Count, Sum, Min or Max of particular field of any child record. Thus, we can say that Roll up summary field can only be created on Master object. To read further, please check this URL




17. What will happen if the Account is deleted?

If the Account is deleted then Contact, Opportunity will also be deleted from Salesforce which are related to that Account.

From the database perspective, check below image of child relationships of Account:


Account Child relationship in salesforce

If we use schema builder, released in Winter 12 it would look like:


Account Contact and Opportunity of salesforce in schema builder




18. How many types of the relationship fields available in Salesforce?

Ans :

1.        Master Detail

2.        Many to Many

3.        Lookup

4.        Hierarchical (It is available only on User Object, we cannot create this relationship)





19. 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 autonumber as unique identification and create two master relationships for both objects, no need create tab for this object.

Now on both object, add this field as related list.





20. 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.




21. 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?

Ans : 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.




22. How to delete the User from Salesforce?

Ans : As per now, salesforce does not allow to delete any user, however you can deactivate the user.





23. How to delete the users data from Salesforce?

Ans : To delete the Users Data go to Setup | Administration Setup | Data Management |  Mass Delete Record, from there select the objects like Account, Lead etc and in criteria select the users name and delete all records of that user related to particular object.




24. How to restrict the user to see any record, lets say opportunity?

Ans : set up opportunity sharing to be private.  If both users are admins or have view all records on opportunity, then that overrides private sharing.




25. What is the difference between trigger.new and trigger.old in Apex – SFDC?

Ans :

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, and the records can only be modified in

beforetriggers.

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.




26. How to restrict any Trigger to fire only once ?

Ans:

Triggers can fire twice, once before workflows and once after workflows, this is documented at


“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:

Add a static boolean variable to a class, and check its value within the affected triggers.


1

public class HelperClass {

2

   public static boolean firstRun = true;




3

}

4

trigger affectedTrigger on Account (before delete, after delete, after undelete) {




5

    if(Trigger.isBefore){

6

        if(Trigger.isDelete){




7

            if(HelperClass.firstRun){

8

                Trigger.old[0].addError('Before Account Delete Error');




9

                HelperClass.firstRun=false;

10

            }




11

        }

12

    }




13

}




27.  What is difference between WhoId and WhatId in the Data Model of Task ?

Ans :

WhoID refers to people things. So that would be typically a Lead ID or a Contact ID
WhatID refers to object type things. That would typically be an Account ID or an Opportunity ID





28. Where is the option of the report for the “Custom Object with related object” and what are the condition to generate related reports?
Ans :

If the parent object is the standard object provided by the salesforce like “Account”, “Contact” then the report will be in there section with related custom object.
If both objects are the custom then the report will be in “
Other Reports” Sections.

Following are the conditions to get the report of related objects:

·         On both the objects, Reports option must be enable.

·         The relationship between both of them must be “Master – detail relationship”.





29. How you can provide the User Login (Authentication) in Public sites created by Salesforce.

Answer : We can provide the authentication on public sites using “Customer Portal”.

This part of the interview question mainly focus on the dynamic Apex feature of the salesforce.com .

30 : What is the dynamic Apex?
Ans :
Dynamic Apex enables developers to create more flexible applications by providing them with the ability to
 “Access sObject and field describe information”, “Write Dynamic SOQL Queries”, “Write Dynamic SOSL Queries” and “Dynamic DML”.




31 : How to get the list of all available sobject in salesforce database using Apex (Dynamic Apex)?
Ans:



1

Map<String, Schema.SObjectType> m =  Schema.getGlobalDescribe();




32 : 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? Hint : Use Dynamic Apex.
Ans:


1

public SObject getNewSobject(String t)

2

{




3



4

    // Call global describe to get the map of string to token.




5

    Map<String, Schema.SObjectType> gd = Schema.getGlobalDescribe();

6






7

    // Get the token for the sobject based on the type.

8

    Schema.SObjectType st = gd.get(t);




9



10

    // Instantiate the sobject from the token.




11

    Sobject s = st.newSobject();

12






13

    return s;

14

}




33 : How to get all the fields of sObject using dynamic Apex?
Ans:


1

Map<String, Schema.SObjectType> m  = Schema.getGlobalDescribe() ;

2

Schema.SObjectType s = m.get('API_Name_Of_SObject') ;




3

Schema.DescribeSObjectResult r = s.getDescribe() ;

4

Map<String,Schema.SObjectField> fields = r.fields.getMap() ;




34 : How to get all the required fields of sObject dynamically?
Ans:
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 field 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


1

Map<String, Schema.SObjectType> m  = Schema.getGlobalDescribe() ;

2

Schema.SObjectType s = m.get(so.apiName) ;




3

Schema.DescribeSObjectResult r = s.getDescribe() ;

4

Map<String,Schema.SObjectField> fields = r.fields.getMap() ;




5



6

for(String f : fields.keyset())




7

{

8

    Schema.DescribeFieldResult desribeResult = fields.get(f).getDescribe();




9

    if( desribeResult.isCreateable()  && !desribeResult.isNillable() && !desribeResult.isDefaultedOnCreate() )

10

    {




11

//This is mandatory / required field

12

    }




13

}




35 : How to display error messages in the visualforce page ?
Ans:
In Apex use below code to create the error message for visualforce.


1

Apexpages.addMessage( new ApexPages.Message (ApexPages.Severity.ERROR,'Required fields are missing. '));

in Visualforce page add below tag where you want to display the error message.

<apex:pageMessages ></apex:pageMessages>




36 : What is property in Apex? Explain with advantages.
Ans: 
Apex mainly consist 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 creates the setters and getters for that variable.


1

private String name;

2

public void setName(String n)




3

{

4

  name = n;




5

}

6

public String getName()




7

{

8

 return name;




9

}

However, the Apex introduced the new concept of property from language C# as shown below:


1

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.




37 : What is the controller extension ?
Ans:
Any apex class having a public constructor with Custom Controller or Standard Controller object as a single argument is known as controller extension.




38 : Explain the need or importance of the controller extension.
Ans:
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.




39 : How to read the parameter value from the URL in Apex?
Ans:
Consider that the parameter name is “RecordType”.


1

String recordType = Apexpages.currentPage().getParameters().get('RecordType');



40. What is Master Detail relationship and look up relationship in Salesforce?
Ans:
Master Detail relationship is the
 Parent child relationship. In which Master represents Parent and detail represents Child. If Parent is deleted then Child also gets deleted. Rollup summary fields can only be created on Master records which will calculate the SUM, AVG, MIN of the Child records.
Look up relationship is something like
 “has-a” (Containership) relationship. Where one record has reference to other records. When one record is deleted then there is no impact on other records.




41. Can we convert the lookup relationship to Master Detail relationship?
Ans:
We can convert the lookup relationship to master detail relationship if and only if all the existing record has valid lookup field.




42. In How many way we can invoke the Apex class?
Ans:

1.        Visualforce page

2.        Trigger

3.        Web Services

4.        Email Services




43. Can we create Master Detail relationship on existing records?
Ans:
No. As discussed above, first we have to create the lookup relationship then populate the value on all existing record and then convert it.




44. How validation rules executed? is it page layout / Visualforce dependent?
Ans :
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.




45. What is the difference between database.insert and insert ?
Ans:
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.




46. What is the scope of static variable ?
Ans:
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.




47. Other than SOQL and SOSL what is other way to get custom settings?
Ans:
Other than SOQL or SOSL, Custom seting have there own set of methods to access the record.
For example : if there is custom setting of name ISO_Country,


1

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

2

//To return a map of data sets defined for the custom object (all records in the custom object), //you would use:




3

Map<String,ISO_Country__c> mapCodes = ISO_Country__c.getAll();

4

// display the ISO code for India




5

System.debug(‘ISO Code: ‘+mapCodes.get(‘INDIA’).ISO_Code__c);

6

//Alternatively you can return the map as a list:




7

List<String> listCodes = ISO_Country__c.getAll().values();




48. What happen if child have two master records and one is deleted?
Ans :
Child record will be deleted.





49. What is Difference in render, rerender and renderas attributes of visualforce?
Ans:
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.




50. What is Scheduler class in Apex?
Ans:
The Apex class which is programed to run at pre defined interval.
Class must implement
 schedulable interface and it contains method named execute().
There are two ways to invoke schedular :

1.        Using UI

2.        Using System.schedule

The class which implements interface schedulable get the button texted with “Schedule”, when user clicks on that button, new interface opens to schedule the classes which implements that interface.
To see what happened to scheduled job, go to “
Monitoring | Scheduled jobs 

Example of scheduling :


1

scheduledMerge m = new scheduledMerge();

2

String sch = '20 30 8 10 2 ?';




3

system.schedule('Merge Job', sch, m);

To see how to make crone job string – refer this URL.



51. Explain Permission sets released in Winter 12.
Ans :
A permission set is a collection of settings and permissions that give users access to various tools and functions. The settings and permissions in permission sets are also found in profiles, but
 permission sets extend users’ functional access without changing their profiles. For example, to give users access to a custom object, create a permission set, enable the required permissions for the object, and assign the permission set to the users. You never have to change profiles, or create a profile for a single use case. While users can have only one profile, they can have multiple permission sets.




52. What is the difference between External ID and Unique ID?
Ans:
External ID
This is a field that usually references an ID from another (external) system. For instance, if the customer has an Oracle Financials system that they will be linking with salesforce.com, it may be easier for them to be able to refer to the Oracle ID of account records from within salesforce. So they would create an external ID in salesforce.com and they would load the Oracle ID into that field for each account. They can then refer to that ID field, rather than the salesforce.com id.

Additionally, if you have an external ID field, the field becomes searchable in the sidebar search. You also can use the upsert API call with the extenal ID to refer to records.

You can have multiple records with the same external ID (though it is not reccomended, as it will defeat the purpose of the external id) .

External Id available for Text, Number and Email field types.

External Id is used in upsert operations.

·         If external id is absenor not matched then insert happens.

·         If external id matched once then record will be updated.

·         If external id is matched multiple times then error occurs.

Unique ID field

This is a setting for the field that will prevent you from using the same value in multiple records for the unique field. So if I create a 5 character text field and make it unique, and I create a record with the value “12345″ i will not be able to create another record with that same value in the unique field. If i try to do so, I will get an error saying that the value is already in use.

Often, External Ids are set with the unique property so that the IDs will be unique to each record.


Salesforce – External Id option while creating field




53. How to get the picklist value in Apex class?
Ans :
Using Dynamic apex, we can achieve this.on object of type pickilist, call
 getDescribe(). then call thegetPicklistValues() method. iterate over result and create a list. bind it to <apex:selectOptions>.




54. What are the types of controller in visual force?
Ans :
There are basically two types of Controller in Visual force page.

1.        Standard Controller and

2.        Custom Controller




55. How many Controllers can be used on single VF page?
Ans :

Only one controller can be used salesforce. Other than them, Controller extension can be used. There may be more than one Controller extention.
Example :


1

<apex:page standardController="Account"

2

extensions="ExtOne,ExtTwo" showHeader="false">




3

<apex:outputText value="{!foo}" />

4

</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.




56. Explain System.runAs()
Ans : 
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 :


1

System.runAs(u) {

2

// The following code runs as user 'u'




3

System.debug('Current User: ' + UserInfo.getUserName());

4

System.debug('Current Profile: ' + UserInfo.getProfileId()); }




5

// Run some code that checks record sharing

6

}




57. Explain Test.setPage().
Ans:
It is used to set the context to current page, normally used for testing the visual force controller.




58. What is the custom settings ?
Ans : 
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 Web services API.




59. Types of the custom settings?
Ans : 
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. Examples of list data include two-letter state abbreviations, international dialing prefixes, and catalog numbers for products. 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.




60. Difference between SOSL and SOQL in Salesforce ?
Ans :


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.



61. How to round the double to two decimal places in Apex?
Ans:


1

Decimal d = 100/3;

2

Double ans = d.setScale(2) ;




62.In Profile settings, what is difference between “Modify All Data” and “Modify All” ?
Ans:
Modify All Data : Create, edit, and delete all organization data, regardless of sharing settings.
Modify All : Give All (Read, Create, Add, Delete) permission to selected Object.




63. If i want record level access then what should i use from Salesforce security model?
Ans: Manual Sharing




63. If i want Object level access then what should i use from Salesforce security model?
Ans: Profile




64. In OWD (Organization wide sharing), can i change the setting “Grant Access Using Hierarchies” for Standard Objects ?
Ans: You cannot change it for Standard Objects However for Custom Objects its possible.




65. What is Mandatory while creating User, Role or Profile?
Ans : Its Profile.




66. In case of Master-Detail relationship, on Update of master record can we update the field of child record using workflow rule?
Ans: No




67. In case of Master-Detail relationship, on Update of child record can we update the field of Parent record using workflow rule?
Ans: Yes, the Master fields are also available for “Criteria evaluation”.

68. While setting OWD (Organization wide sharing), can we change/modify the setting of child record in case of Master-Detail relationship?
Ans: No, Child record is controlled by the Parents setting.




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

·         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.




70. 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?
Ans:
Lets 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”.



Part 8 interview question is going to be around reports and profiles related question as i have seen this type of questions in lot of interviews.

71. 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?
Ans : Yes. In profile, there is setting for “Transfer Record”.




72. In Which Scenario share object “MyCustomObject__share” is not available/created for custom object “MyCustomObject” ?
Ans: The object’s organization-wide default access level must not be set to the most permissive access level. For custom objects, this is Public Read/Write. For more information, see
 Access Levels. This object is used for creating Apex based sharing.




73. How to hide the “App Setup” Menu from user’s setup page?
Ans : In Profile, remove access “View Setup and Configuration”.




74. While creating new profile for user, which existing profile should be copied?
Ans: If the new user is not System administrator then copy from “Standard User” profile.




75. Who can run reports?
Ans : Users with permission “Run Report” and access to report folder can only run the report.




76. What is Difference between “printable View” and “Export Details“ button on report?
Ans:
Printable View: formatting, grouping and subtotals are persisted.
Export Details: formatting, grouping and subtotals are lost.


Salesforce Report – Printable view and Export Details




77. What is the use of “floating report header”?
Ans: If you have long tabular report, you can make the column header visible on each pages as you scroll, by enabling floating report headers.




78. How to enable “floating report header”? 
Ans :
Go to “Setup | App Setup | Customize | Report and Dashboard | User Interface Settings “.
Click on checkbox “Enable Floating Report Headers”.


Salesforce Enable Floating Reports Headers




79. Which permission is required to set the running user other than you in dashboard?
Ans: “View All Data” in profile.




80. Who can access “drag and drop dashboard”?
Ans : User with permission “manage dashboard”.



81. Which type of report can be used for dashboard components?
Ans : Summary and matric report.




82. How many types of dashboard components are available?
Ans : Chart, Table, Metric and Gauge.




83. Explain dynamic Dashboard.
Ans : Dashboard which is running under current logged in user permission are known as “dynamic Dasboard”. At the most 3 dynamic dashboards can be built. Available in Unlimited, Enterprise and developer edition. This type of dashboard cannot be scheduled for refresh. IT must be scheduled manually.




84. What is the default timeout period while calling webservice from Apex.
Ans : 10 sec.

Read more at  -





85. A single Apex transaction can make how many callouts to an HTTP request or an API call ?
Ans : Maximum 10 callouts




86. How to increase timeout while calling web service from Apex ?
Ans :


1

docSample.DocSamplePort stub = new docSample.DocSamplePort();

2

stub.timeout_x = 2000; // timeout in milliseconds




87. How to show loading image while Ajax call in Visualforce? OR how to show image in <apex:actionStatus> tag in Visualforce?
Ans:


1

<div style="position:absolute;top:20px;left: 50%;">

2

            <apex:actionStatus id="refreshContent" >




3

               <apex:facet name="start" >

4

                <apex:image url="{!$Resource.LoadingImage}" />




5

               </apex:facet>

6

             </apex:actionStatus>




7

         </div>




88. What is analytic Snapshot in salesforce?
Ans : Analytic snapshot capture and store the data at pre decided intervals. It captures data from report and saves in custom object as per schedule. It only supports tabular and summary report as a source report. It does not support matrix report. The field type in target object must be same as source report object field.


Salesforce Analytic Snapshot – Source Report and Target Object


Salesforce Analytic Snapshot – Field Mapping between Source Report and Target Object




89. What is difference between Mobile Lite and Salesforce Mobile?
Ans :


Feature

Mobile Lite

Salesforce Mobile

Edit capabilities

All standard objects

Any app, any record

Customizations

Supports custom fields

Any - includes custom fields, objects, tabs, configurations

Records

Most recently used records; search only

All records

Objects

Leads, accounts, contacts, opportunities, tasks, events, cases, solutions, assets, and dashboards

All objects

Custom objects

None

Any

Initial set of records

Recently viewed on Web

Fully configurable

Download additional records

Using live search

Using live search

Security

Secured data access and over-the-air management

Secured data access and over-the-air management

Price

Free for all editions of Salesforce

Free for Unlimited Edition customers; available in Professional Edition and Enterprise Edition for a fee

Difference between Mobile lite and Salesforce Mobile

Mobile Lite is a free, restricted version of Salesforce Mobile that is available to any Salesforce user who doesn't have a mobile license.

Mobile lite is not supported by the customer portal and partner portal.

More read at - http://www.salesforce.com/mobile/apps/salesforcemobile/comparison/ 






90. What is features of “Manage Members” in campaign records?
Ans :

Campaign members are created from lead, contact, or person account records. Salesforce provides a variety of ways in which you can manage your campaign members. You can add and update up to 50,000 campaign members at a time through lead, contact, and person account reports; you can search for and add or edit multiple leads and contacts from the Manage Members page; you can add an unlimited number of leads and contacts using a CSV import file; or you can add members to a campaign one at a time from contact or lead detail pages.
Read More:




This Part of Salesforce interview question series depict on browser compatibility issue (Internet Explorer 9) and Visualforce normally for AJAX, Group By and Having Clause.




91. How to add the Document Header in Visualforce page?
Ans : Directly there is no way to add the document type in visualforce. However in most of the cases IE9 does not work with Visualforce pleasantly. And then we need to add the Document type in header. So following workaround will work.


1

<apex:outputText

2

escape="false"




3

value="{!'<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">'}"/>

4

<html>




5

    <head>

6

        <title>test</title>




7

    </head>

8

    <body>test</body>




9

</html>

10

</apex:page>





92. Onchange event does not work with <apex:actionsupport> in IE9. How to resolve this error?
Ans: If we hide 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 Headre by using “showHeader=true” in Apex page.
Read more in detail in below thread URL : http://boards.developerforce.com/t5/Apex-Code-Development/IE9-requires-header-in-VF-Page/td-p/402997




93. If IE9 is not working with your custom visualforce page then how to tell your visualforce code to run in IE8 compatibility mode?
Ans:
Add following metatag to pages:


1

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />




94. It may happen that above tips will not work as lots of time the page header already sent. then how to achieve same result using Apex?
Ans:
Add below line of code in Apex (Constructor)


1

Apexpages.currentPage().getHeaders().put('X-UA-Compatible', 'IE=8');





95. How to display the formatted number / date in Visualforce ? Which component should be used?
Ans : Use component “<apex:outputText>”.
Example : Format the number into currency.


1

<apex:outputtext value="{0, number, 000,000.00}">

2

   <apex:param value="{!valFromController}" />




3

</apex:outputtext>

OR


1

<apex:outputtext value="{0, number, ###,###.00}">

2

   <apex:param value="{!valFromController}" />




3

</apex:outputtext>





96. You want to display the Encrypted field on Visualforce and you are using component apex:outputText. Will it work for Encrypted fields?
Ans : 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.




Below Questions related to Group by clause in SOQL

97. Will below query work? Explain.


1

SELECT COUNT(Id), Name, Address__c FROM Opportunity GROUP BY Name

Ans :
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”.





98. Explain difference in COUNT() and COUNT(fieldname) in SOQL.
Ans :

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.





99. How to write the “Where” clause in SOQL when GroupBy is used ?
Ans : We cannot use the “Where” clause with GroupBy 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”.


1

SELECT COUNT(Id) , Name FROM Opportunity GROUP BY Name  Having COUNT(Id) > 1 AND Name like '%ABC%'





100. Lets 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?
Ans :

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


1

<span id="focusDistraction"></span>

2

<script type="text/javascript">




3

    /* prevent autopup of the date inputfield by the default focus behavoir */

4

    window.onload=function() {




5

    document.getElementById('focusDistraction').focus();

6

    }




7

</script>



101. How to force lead assignment rule via Apex while updating or adding the Lead?
Ans : 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.

Example:


1

// to turn ON the Assignment Rules in Apex

2

Database.DMLOptions dmlOptn = new Database.DMLOptions();




3

dmlOptn.assignmentRuleHeader.useDefaultRule = true;

4

leadObj.setOptions(dmlOptn);




102. How to implement the pagination in SOQL ?

Ans:
In spring 12, Salesforce has come up with ability of SOQL to get records from position “X” instead of position “1” every time to help creating pagination feature.


Pagination in SOQL using keyword Offset

Example:


1

Select Id, Name from Lead LIMIT 5 OFFSET 2

Above query will return 5 Lead records starting from record number 10 (5×2).





103. Access custom controller-defined enum in custom component ?
Ans :

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:


1

global with sharing class My_Controller {

2

  public Case currCase {get; set; }




3

  public enum StatusValue {RED, YELLOW, GREEN}

4






5

  public StatusValues getColorStatus() {

6

    return StatusValue.RED;  //demo code - just return red




7

  }

8

}

Visualforce page:


1

<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:


1

public String currentStatusValue { get{ return getColorStatus().name(); }}

and change Visualforce code to


1

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





104. How to generate the random string or random password using Apex?
Ans:


1

Integer len = 10;

2

Blob blobKey = crypto.generateAesKey(128);




3

String key = EncodingUtil.convertToHex(blobKey);

4

String pwd = key.substring(0,len);




105. What is dynamic binding in salesforce?
Ans:

Dynamic Visualforce bindings are a way of writing generic Visualforce pages that display information about records without necessarily knowing which fields to show. In other words, fields on the page are determined at run time, rather than compile time. This allows a developer to design a single page that renders differently for various audiences, based on their permissions or preferences. Dynamic bindings are useful for Visualforce pages included in managed packages since they allow for the presentation of data specific to each subscriber with very little coding.

Example 1:
Access the Account name from Contact.


1

{!myContact['Account'][fieldname]}

Example 2:

Consider Data type in Apex


1

public Map<String, List<Account>> accountsMap {get; set;}

Visualforce page:


1

<apex:variable value="A" var="selectedKey" />

2

<apex:pageBlockTable value="{!accountsMap[selectedKey]}" var="acc">




3

   <apex:column value="{!acc.name}"/>

4

   <apex:column value="{!acc.BillingStreet}"/>




5

   <apex:column value="{!acc.BillingCity}"/>

6

   <apex:column value="{!acc.BillingPostalCode}"/>




7

</apex:pageBlockTable>





106. How to convert lead using Apex?
Ans:


1

Lead myLead = new Lead(LastName = 'Foo', Company='Foo Bar');

2

insert myLead;




3



4

Database.LeadConvert lc = new database.LeadConvert();




5

lc.setLeadId(myLead.id);

6






7

LeadStatus convertStatus = [SELECT Id, MasterLabel FROM LeadStatus WHERE IsConverted=true LIMIT 1];

8

lc.setConvertedStatus(convertStatus.MasterLabel);




9



10

Database.LeadConvertResult lcr = Database.convertLead(lc);




11

System.assert(lcr.isSuccess());




107. Consider total 90k records present in Salesforce and you have used the count() method of soql. What will be output of it?
Ans :
It will throw an error something like “Too many query rows: 50001”, as the record limit in SOQL is 50,000.
Although the count() returns only one row however it processes each record and thus hit the allowed governor limit.




108. How can you determine that email is actually sent or not from the salesforce?
Ans:

There is an Email log that you could use. It’s available in the setup menu under Monitoring.

It’s only for the past 30 days and you would have to manually check it.

From the email log page: “Email logs describe all emails sent through salesforce.com and can be used to help identify the status of an email delivery. Email logs are CSV files that provide information such as the email address of each email sender and its recipient, the date and time each email was sent, and any error code associated with each email. Logs are only available for the past 30 days.”




109. In salesforce which fields are indexed automatically?
Ans :

The following fields are indexed by default:

  • primary keys (Id, Name and Owner fields),
  • foreign keys (lookup or master-detail relationship fields),
  • audit dates (such as LastModifiedDate),
  • Custom fields marked as External ID or Unique.





110 : Give any scenario when you cannot change the currency field type to numeric type.
Ans :
When the field is used either in Apex class or trigger.





5 comments:

Fred Smith said...

Very nice post it's contains a bunch of great tips on salesforce questions and salesforce answers.

Fred Smith said...

Very nice post it's contains a bunch of great tips on salesforce questions and salesforce answers.

Vadla Vijaya Amarnath said...

Nice Very Good job and lot of effort, Thank you

Priyadarshan Suke said...

Salesforce Cloud Computing

http://www.sfdccrm.blogspot.in

dilram yadav said...

Find More Interview Questions:
http://salesforcecloudcrm.blogspot.in/