Monday 2 December 2013

avoid recursive trigger salesforce

Recursion occurs when the code gets called again and again and goes into a infinite loop. It is always advisable to write a code that does not call itself. However, sometimes we are left with no choice. Recursion occurs in trigger if your trigger has a same DML statement and the same dml condition is used in trigger firing condition on the same object(on which trigger has been written)
For example, if your trigger fires on after update on contact and you update any contact record in your trigger then the same trigger will be called and will lead to a infinite loop.
To avoid this kind of recursion and call the trigger only once we can use global class static variable.
As an example let says you have following trigger on contact:
trigger recursiveTrigger on Contact (after update) {
Id recordId ;
 for(contact con : trigger.new){
     recordId = con.id; 
 }
 Contact conRec =[select id,name,email from contact where id !=: recordId limit 1];

 conRec.email = 'testemail@kmail.com';
 update conRec;
 }
}
As you can see the trigger is getting called on after update and as the trigger has a DML update statement on the same object, same trigger will be called again leading to recursion.
To avoid this, just create one global class with a static global boolean variable as below.
global Class recusrssionPreventController{
Global static boolean flag = true;
 Public recusrssionPreventController(){
 }
}
And set this boolean variable in your trigger and then set this boolean variable to false as done in the trigger below
trigger recursiveTrigger on Contact (after update) {
Id recordId ;
if(
recusrssionPreventController.flag == true){
   
recusrssionPreventController.flag = false;
 for(contact con : trigger.new){
     recordId = con.id; 
 }
 Contact conRec =[select id,name,email from contact where id !=: recordId limit 1];

 conRec.email = 'testemail@kmail.com';
 update conRec;
 }
}
This will call the trigger only once and hence avoid recursion.

salesforce best practices for developers

Coding in apex requires that you follow all the best practices, as you may hit the governers limit imposed by salesforce.
Let us discuss some of the best practices that you should follow in order to avoid production failures and exceptions
1. Avoid writing select queries within for loop.
   This is something which you should avoid in all cases as this could very easily give "101 soql error"
   You can fire only 100 queries in one instance of apex code run, if more than 100 queries get executed you get the  above exception. Hence write your logic in such a way that you do not use select query within for loop
2. Use collections to store you data in apex, use map list set appropriately.
3.Bulkify your trigger, most often developers write triggers considering only one record would fire the trigger. But, in reality your trigger could be fired by many records at a time. Make sure you write a logic in such a way that it runs considering many records would fire the trigger at a time
4. Clear collections that are no longer required in apex code.Use transient key word where ever possible. View state error can be avoided by doing this.
5. Try to use limit clause in you select query, a select query can return only 50k records.
6. sosl query can return only up to 2000 records hence before using sosl you have to be 100% sure that the returned records will be less in number.
7. No dmls within for loop.
  Avoid updating,inserting or any other dmlon records in for loops. Instead run your dmls on collections. You can issue only 150 dml statements.
8. Write your code logic with minimum statements. Try to reduce number of lines of apex code if possible.
  There's limit for number of lines too.
9. Do not write your logic in trigger, write it in a class method and call that method in trigger.
10. Use access modifiers appropriately.
11. try to re-use code that has been already developed
12. Put your code in try and catch blocks appropriately and catch the exceptions
13. Follow this: One object, one trigger.
14. Follow naming conventions throughout your org, this keeps your codes organised and easily understandable.
15. Develop generic components for functionality that are used in many vf pages.
16. For Test coverage, make sure all the triggers in your org are covered with at least 1%.
    Total coverage needs to be > 75%, classes can have 0% but trigger should have minimum of     1%

get all objects in salesforce org

In order to get all the object names in your org, use Schema.getGlobalDescribe() method. This would return a map of object names and object types. Keyset would be all the object names. Following visualforce page uses this method to display all the objects in an org.



Visualforce page
<apex:page controller="AllObjectsinOrg">
 <apex:form >
   <apex:pageBlock id="pgblck">
    <apex:outputlabel value="Object Name" for="ObjPickList"/>      
    <apex:selectList value="{!ObjectSelected}" multiselect="false" id="ObjPickList" size="1">
       <apex:selectOptions value="{!ObjList}"/>
    </apex:selectList>
 </apex:pageBlock>
 </apex:form>
</apex:page>

Controller
public class AllObjectsinOrg {
 Public string ObjectSelected{get;set;}
 Public Map<String, Schema.SObjectTypeAllObjmap;
 Public AllObjectsinOrg(){
    AllObjmap = New Map<String, Schema.SObjectType>();
    AllObjmap = Schema.getGlobalDescribe();
    System.debug('******All object Names :'+ AllObjmap.keyset());
}
Public List<selectoption> getObjList(){
    List<selectoption> objList = new List<selectoption>();
    for(string s:AllObjmap.keyset()){
        objList.add(new selectoption(s,s));
    }
  return objList;   
 }
}

Salesforce Tools

Some good tools for developers

Salesforce Force.com Explore: 

This is the very first tool which comes in my mind for salesforce.com developers. Its a tool where you can explore salesforce Meta Data ( standard / custom objects, field and others.). I think as of now its best tool to write and execute SOQL queries. You can view your query history and export data to your m/c too.

Write / execute and test your SOQL queries in this tool before adding it to your apex code:

Download salesforce Force.com Explore : 

Installation Guide :

http://wiki.developerforce.com/page/ForceExplorer

Make sure you have Adobe AIR installed
Then download the latest release of Force.com Explorer 



Force.com IDE: 

The Force.com IDE is a full-featured, Eclipse-based coding environment, with capabilities like code completion, version control, collaborative development, and project sharing. 

Using this plugin, development, maintain code become very easy. Also you can deploy code&metadata ( like email templates, reports, objects etc) from your Sandbox to production easily. ( note: deployment activities varies from one Org/individual to other. There are different ways to deploy to production e.g. ANT, Eclipse Force.com plugin or salesforce application deployment interface ).

http://wiki.developerforce.com/page/Force.com_IDE_Installation

Workbench :   

Workbench is a powerful, web-based suite of tools designed for administrators and developers to interact with Salesforce.com.  


https://workbench.developerforce.com/login.php


http://wiki.developerforce.com/page/Workbench


Force.com Data Loader:

Using this tool you can export and import data out of salesforce.com instance. This tool is very much used by SFDC admins and developers for data import and export tasks.

you can download the Data Loader from the SFDC Setup menu, under Administration Setup - Data Management. 
find more details on :
http://wiki.developerforce.com/page/Data_Loader

APEX Class with/without sharing keyword

With or Without Sharing Keywords with APEX class  :

Generally Apex code executes in System contexts, means Access to  all objects,fields and records etc.
(beyond current users permissions, field level security or sharing settings).

(Where do I find "Sharing Settings"? its under "Setup" => "Administration Setup" => "Security Controls" => "Sharing Settings") Know More about "Salesforce Sharing Settings"

Note: ( Exception ) Anonymous code blocks always execute with current user permissions :)

So take care while developing code that user doesn't see/process data which he is not suppose to.
E.g. declaring apex class method as webservice ( take a look , kind of data you process or return inside webservice apex method ).
Give suitable access for class ( to suitable profiles) , once accessed by webservice call, then APEX executes in system context.

:) But this is also possible to execute Apex Class with current user's "Sharing settings". using "With Sharing" keyword. ( consider salesforce sharing setting while executing Apex code )

Note: "With sharing" keyword doesn't enforce the user's permissions and field-level security.

E.g.

public with sharing class MyNewClassWithSharing {
// Code here
}

Use the without sharing keywords means sharing rules for the current user are not enforced. For example:

public without sharing class MyNewClassWithOutSharing {
// Code here
}


Points to be noted:
A)  If with or without sharing are not mentioned with class then default is "Without sharing".

B)  If the class is defined with NO "sharing type" and called with in other class then it will execute with calling class's sharing setting accordingly.
    Else executes with with its own settings.
   
B)  The sharing setting applies to all code contained with in the class, including initialization code, constructors, and methods.

C)  Classes inherit this setting from a parent class when one class extends or implements another.

D)  Inner classes do not inherit the sharing setting from their container class.

E)  Class declared as with sharing can call code that operates as without sharing

F)  All SOQL or SOSL queries that use PriceBook2 ignore the with sharing keyword

G)  Using with sharing keyword :
i) SOQL and SOSL queries, may return fewer rows
ii) DML operation may fail due to insufficient privileges for current user.

Thursday 28 November 2013

Salesforce401Question & Answers


  1. In the statement below, controller refers to what type of controller? Select the one correct answer.<apex:page controller="AccountController">
    1. Standard Controller
    2. Custom Controller
    3. Controller Extension
    4. Specific Controller
  2. Which of the following represent correct syntax to display first name from global variable user? Select the one correct answer.
    1. {User.FirstName}
    2. {!User.FirstName}
    3. $User.FirstName
    4. {!$User.FirstName}
  3. Which of these is not a standard profile? Select the one correct answer.
    1. Developer
    2. Contract Manager
    3. Read only
    4. Solution Manager
  4. Name the language Force.com uses to support full-text search in objects. Select the one correct answer.
    1. SQL
    2. VisualForce
    3. SOQL
    4. SOSL
  5. Before a code can be deployed on production what percentage of test coverage must be achieved. Select the one correct answer.
    1. 25%
    2. 50%
    3. 75%
    4. 100%
  6. In Salesforce what is the maximum number of fields that can be added to an object? Select the one correct answer.
    1. There is no such limit on the number of fields
    2. 100
    3. 200
    4. 500
  7. How many characters are there in the Salesforce case-insensitive id field of an object? Select the one correct answer.
    1. id field is not mandatory
    2. The field length is customizable
    3. This depends on the version of Salesforce
    4. 18
  8. Name the prefix used by standard VisualForce markup tags. Select the one correct answer.
    1. vf
    2. apex
    3. c
    4. s

  1. Which of the following cannot be included in a VisualForce page? Select the one correct answer.
    1. Java
    2. JavaScript
    3. HTML
    4. Flash
  2. To create a new VisualForce page HelloWorld in developer mode, which URL should be appended to server address? Select the one correct answer.
    1. /HelloWorld
    2. /vf/HelloWorld
    3. /apex/HelloWorld
    4. /home/HelloWorld
  3. What is the maximum size of a VisualForce page? Select the one correct answer.
    1. 1 MB
    2. 5 MB
    3. 15 MB
    4. There is no limit on the size of a VisualForce page
  4. What is the number of components that can be added to a dashboard? Select the one correct answer.
    1. 20
    2. 25
    3. 50
    4. 100
  5. Which of these represent the correct syntax for custom controllers? Select the one correct answer.
    1. <apex:page controller="MyController">
    2. <apex:page standardController="MyController">
    3. <apex:page customController="MyController">
    4. <apex:page privateController="MyController">
  6. Which is the first step when creating reports? Select the one correct answer.
    1. Select report name
    2. Select object on which report needs to be generated
    3. Select type of report
    4. Select columns to be displayed
  7. Which of these is not a valid report type. Select the one correct answer.
    1. Summary
    2. Matrix
    3. Tabular
    4. Detailed
  8. Which report type is used to group rows of data and show their subtotals. Select the one correct answer.
    1. Summary
    2. Matrix
    3. Tabular
    4. Detailed
  9. Which report type is used to group rows and columns of data and show their subtotals. Select the one correct answer.
    1. Summary
    2. Matrix
    3. Tabular
    4. Detailed
  10. Which report type does not allow generation of charts? Select the one correct answer.
    1. Summary
    2. Matrix
    3. Tabular
    4. Detailed
  11. Which of these are valid data type in Force.com development platform. Select the two correct answers.
    1. Percent
    2. URL
    3. Choicebox
    4. Long
    5. Decimal
  12. When designing an application, a developer needs to make a field editable to all profiles. In field level security what settiings should be used in this situation. Select the one correct answer.
    1. Disable Visible and Read-Only
    2. Disable Visible but Enable Read-Only
    3. Enable Visible but Disable Read-Only
    4. Enable Visible and Read-Only
  13. Which report type does not support analytical snapshot? Select the one correct answer.
    1. Summary
    2. Matrix
    3. Tabular
    4. Detailed
  14. A customer has requested a user interface where list view of four objects can be accessed together with frequent navigation across them. Which feature of Force.com platform can be used to support this requirement? Select the one correct answer.
    1. Console
    2. Dashboards
    3. Analytical Snapshot
    4. Packages
    5. Layout template
  15. In a recruitment application, a dashboard component needs to be built that will display total number of positions. Which dashboard component can be used to implement this feature? Select the one correct answer.
    1. Gauge
    2. Metric
    3. Table
    4. Chart
    5. VisualForce page
  16. Universal Recruiters will like to hire ten employees in two months. In a recruitment application, a dashboard component needs to be built that will display progress towards achieving this goal of hiring of ten employees. Which dashboard component can be used to implement this feature? Select the one correct answer.
    1. Gauge
    2. Metric
    3. Table
    4. Chart
    5. VisualForce page
  17. Universal Recruiters uses an external system for keeping track of exits from the organization. The CEO of the organization will like to view information about exits in the Salesforce application that Universal Recruiters uses. Which dashboard component can be used to implement this feature? Select the one correct answer.
    1. Gauge
    2. Metric
    3. Table
    4. Chart
    5. VisualForce page
  18. Universal Recruiters uses Force.com as its recruitment platform. The Sales VP of Universal Recruiters will like a report that will display progress in recruitment across six months. Which reporting component can be used to implement this feature? Select the one correct answer.
    1. Summary
    2. Matrix
    3. Tabular
    4. Analytic Snapshot
  19. Which two features are supported by Salesforce in developer mode? Select the one correct answer.
    1. Developer mode allows a default user interface to be created for objects.
    2. Developer mode provides a debugger that is used to perform step by step execution.
    3. Developer mode allows developers to create dashboards from reports.
    4. Developer mode allows split screen where user can view Visual Force editor and user interface together
    5. Developer mode allows developers to create new pages by just entering the page name.
  20. Universal Recruiters wants to make access to records in such a way that all managers should be able to access records that are accessible to their team members. Which feature of Force.com's security should be used to implement this requirement. Select the one correct answer.
    1. Object level access to profiles
    2. Field level access to profiles
    3. Organization wide defaults
    4. Role hierarchy
    5. Sharing rules
    6. Manual sharing
  21. Universal Recruiters need to ensure that the Social Security Number and Phone Numbers follow a specific pattern. Which function can be used to implement this functionality. Select the one correct answer.
    1. REGEX
    2. EXPRMATCH
    3. ISNUMBER
    4. PRIORVALUE
    5. VLOOKUP
  22. Universal Recruiters have an object that they use to store all US zip codes and corresponding states. They want to ensure that the zip code and state specified by users are correct. Which function could be used to implement this feature? Select the one correct answer.
    1. REGEX
    2. EXPRMATCH
    3. ISNUMBER
    4. PRIORVALUE
    5. VLOOKUP
  23. Which of these functions is available in formulae field. Select the one correct answer.
    1. ISCHANGED
    2. ISNEW
    3. REGEXC
    4. IF
    5. VLOOKUP
    6. All of these functions are available in a formula field
  24. A Force.com developer needs to execute Apex code snippet and check the resource usage. Which feature of the platform can be used to support this requirement. Select the one correct answer.
    1. Debug Log
    2. System Log
    3. Setup Audit Trail
    4. Field level security
  25. A user at Universal Container has reported an issue with respect to approval process. You need to analyze this issue by reviewing the debug messages that get generated for this particular users. Which feature of the platform can be used to support this requirement. Select the one correct answer.
    1. Debug Log
    2. System Log
    3. Setup Audit Trail
    4. Field level security
  26. While debugging an issue you realize that the field type of an object has changed. You need to find out more details about this change. Which feature of the platform can be used to support this requirement. Select the one correct answer.
    1. Debug Log
    2. System Log
    3. Setup Audit Trail
    4. Field level security
  27. In Universal Recruiter application a developer realizes that the Salary field of an employee is set up to an incorrect value. The developer needs to find out who has set this new value to Salary field. Which feature of the platform can be used to support this requirement. Select the one correct answer.
    1. Debug Log
    2. System Log
    3. Setup Audit Trail
    4. Field level security
  28. Which of the following is correct about custom fields in Salesforce. Select one correct answer.
    1. If a field is set as required it must be entered in the Salesforce generated pages, however it may not be specified when entering information via Force.com API
    2. A required field is always present in an edit page
    3. A unique field is always present in an edit page
    4. A unique field increases report and SOQL performance
  29. Fields of the which of the following type is not allowed to be set as external ids. Select one correct answer.
    1. Date
    2. Number
    3. eMail
    4. Text
  30. The number of master detail relationship that an object can have are
    1. 1
    2. 2
    3. 25
    4. 300
  31. The number of Lookup relationship that an object can have are
    1. 1
    2. 2
    3. 25
    4. 300
  32. Which of these is true about the Lookup Relationship. Select one correct answer.
    1. Parent is not a required field and may be omitted.
    2. Deleting an object deletes its children.
    3. Roll-up summary field can be used to perform basic operations over all children of a parent record.
    4. Security access of the child record is dependent upon the parent record.
  33. Which of the following cannot be used to build a complete Custom Tab. Select one correct answer.
    1. Display an external web page
    2. Display data using a VisualForce page
    3. Show data from a custom object using the native user interface
    4. Display the approval process using an Apex page
  34. Which of the following is not supported by Enhanced Page Layout editor. Select the one correct answer.
    1. Change the field name
    2. Add blank spaces
    3. Make a field required or read-only
    4. Add a new section
    5. Add a new custom field
  35. Which of the following is true about Roll-up summary fields? Select one correct answer.
    1. Roll-up summary can only be set on the parent of a Master-Detail or Lookup relationship.
    2. Roll-up summary can be used to compute SUM,MIN,MAX,AVG over a set of records
    3. The results of the roll-up summary is displayed on the child in a master-detail relationship.
    4. Roll-up summary fields are read only.
  36. Which of the following is true about Validation Rules? Select two correct answers.
    1. Validation rules are executed when the user clicks on the Save button.
    2. Validation rules are not applicable when the data is stored using the API.
    3. If the error condition evaluates to true, then an error message is generated and the record is not saved.
    4. Validation rules are applied only when a new record is created, and not when an existing record is edited.
  37. Which of the following is not a valid return type of a custom formula. Select one correct answer.
    1. Date
    2. Decimal
    3. Text
    4. Array
  38. Which of the following is not a part of a Force.com app. Select one correct answer.
    1. Notes
    2. Tab
    3. Links
    4. Forms
  39. An organization needs to create a public website that displays data from Salesforce.com organization without user registration. Select one correct answer.
    1. Apex
    2. Triggers
    3. Salesforce Knowledgebase
    4. Force.com sites
    5. Formula
Answers
  1. B. controller attribute is used for Custom Controller
  2. D. {!$User.FirstName} is the correct syntax to access first name.
  3. A. There is no developer standard profile.
  4. D. Salesforce Object Search Language
  5. C. The code must get a test coverage of 75% before it can be deployed.

  6. D. There can be a maximum of 500 fields in custom objects.
  7. D. object id field can be 15 character case-sensitive or 18 character case-insensitive.
  8. B. The prefix apex is used for standard VisualForce markup tags.
  9. A. It is not possible to include Java code in VisualForce page.
  10. VisualForce page address appears like /apex/HelloWorld.

  11. C. VisualForce pages must be upto 15 MB.
  12. A. A dashboard can have upto 20 components.
  13. A.
  14. B. The first step when creating reports is select the object type.
  15. D. Salesforce does not have a report type named Detailed.

  16. A.
  17. B.
  18. C.
  19. A, B. Percent and URL are valid data types in Salesforce.
  20. C. To make a field editable, enable Visible but disable Read-Only.

  21. B. Matric report cannot be used to generate Analytical snapshot.
  22. A. Console tab allows easy navigation across multiple object types.
  23. B. Metric dashboard type is used to display
  24. A. A gauge is used to display progress towards a goal.
  25. E. VisualForce pages can be used to draw dashboard components that extract data from another source.

  26. D. Analytic Snapshot feature of Salesforce is used to perform trend analysis over a period of time.
  27. D, E. Last two statements about developer mode are correct.
  28. D. Role Hierarchy feature of Force.com platform can be used to implement this functionality.
  29. A. REGEX function is used to check a text field matches the regular expression.
  30. E. VLOOKUP is used to return the value for a unique key in an object.

  31. D. IF function is available in the formula field. Other functions are not available in the formula field.
  32. B. System Log can be used to run code snippets.
  33. A. Debug Log can be used to view the debug/error messages generated for a particular user.
  34. C. Setup Audit Trail can be used to track changes made in the configuration.
  35. D. Field History Tracking can be used to find out changes in field values.

  36. B. A field set as required must always be present in the edit page.
  37. A. Fields of type external id can be defined as Text, Number or Email.
  38. B. An object can have maximum of 2 Master detail relationship
  39. C. An object can have maximum of 25 Lookup relationship
  40. A. Parent is not a required field in Lookup relationship

  41. D. Custom tabs can be used to display a VisualForce page, data from an external page, data from a custom object.
  42. E. Enhanced Page Layout editor cannot be used to create new fields.
  43. D. Only option D is correct. Rollup summary field can only be applied in Master-detail. Hence A is incorrect. AVG is not supported in Rollup summary fields.Rollup Summary is defined at the parent level of a Master-Detail relationship.
  44. A and C. Validation rules are applicable when the record is saved using the API, hence the option B is incorrect. Validation rules are applied every time the record is saved, hence D is incorrect.
  45. D. Array is not a valid return type of custom formula.

  46. A. Key element of a Salesforce app are Tab, Links and Forms.
  47. D. Force.com sites is used to build public facing sites.
  1. 1.  ID's are identical in :
  2. A. Production, full copy sandbox, developer
  3. B. Production and full copy sandbox only
  4. C. Production , developer
  5. 2.  If you want to look at trends in a report which report would you use:
  6. A. Matrix
  7. B. Summary
  8. 3.  If you want the a list of positions what dashboard would you use:
  9. A. metric
  10. B. table
  11. C. chart
  12. D. gauge
  13. 4.  how many master detail relationships can you have on an object:
  14. A. 4
  15. B. 2
  16. C. 1
  17. D. 3
  18. 5.  What would you use an apex trigger for...
  19. A. have a zip code object and in the city and state of the
  20. candidate position to check the zip code table and see if that
  21. city exist in the state
  22. B. create new record, have it update a field
  23. 6.  What is a Mini page layout or related list?
  24. 7.  Know everything about an external id.
  25. 8.  Know the ins and out of the search component on the side bar
  26. 9. What versions have apex and vf both active:
  27. 10. For the user object what can you do in the page layout:
  28. A. custom link
  29. B. inline vf page
  30. C. custom button
  31. D. custom field 
  32.  
  33. 11. A CEO does not want to log into salesforce.com but would
  34. like see the dashboards.
  35. How would one accomplish this? How would one set this up?
  36. 12. When one wants to lock the records:
  37. A. is this process automated
  38. B. One needs to choose this option when doing an approval process.
  39. 13. Profiles and what do they give access to?
  40. 14. Sharing and revoking grant access
  41. 15. The import wizard and user object
  42. 16. Force.com metadata api
  43. 17. What represents the view in MVC
  44. 18. Organization wide defaults
  45. 19. Public read/write, public read only
  46. 20. If the approval process sents out 3 emails simultaneously to managers.
  47. What is the next step in the approval process and how does it get to
  48. the next step?
  49. 21. Parent child relationship
  50. 22. Many many replationship
  51. 23. Manager wants to give access to data reporting to his team
  52. what access is required for this to happen:
  53. A. reports, dashboard folder
  54. B. reports dashboard user running
  55. 24. Encryted field not good for :
  56. 25. Workflow rules
  57. 26. Today()-Datevalue(CreatedDate)
  58. 27. For approval process what groups can you have:
  59. A. profiles
  60. B. roles and subordicates
  61. C. active team members
  62. 28. Org wide defaults / hierarchy turned off
  63. 29. Page Layout can you add inline vf
  64. 30. Record types
  65. 31. Is there such a thing called minipagelayout
  66. 32. Who can change the owner of a record
  67. 33. How does a developer test out the time trigger workflow rule
  68. does he do it through:
  69. A. debug log.
  70. B. sign in as the developer name, create new record,
  71. go to the time trigger queue
  72. 34. Creating a lookup relationship
  73. 35. What are the three actions for a workflow process the beggining steps
  74. 36. Do you give permissions to submit for approval button,
  75. Or is it added on automatically?
  76. 37. Dataloader: 50,000 more records at a time. True or False
  77. 38. Developer used dataloader and try to load into sandbox
  78. but had an issue had authentication issue
  79. What could it be:
  80. A. Password encryption
  81. B. Chk username
  82. C. chk endpoint
  83. 39. What is a Declarative interface?
  84. 40. What is localize and internationalize?
  85. 41. What does out of the box salesforce give you?
  86. A. data warehouse
  87. B. approval process
  88. C. workflow rules
  89. D. validation rules
  90. 42. Know this page.Inside out.
  91. 43. Apex Dataloader and Import wizard through salesforce.com
  92. For Apex Dataloader Go Into:
  93. Setup|Administrative Setup|Data Management| DataLoader (See Below)
     http://forceprepare.com/developermock.html