WhoId Vs WhatId
| WhoId |
WhatId |
| WhoId represents the person type things. |
WhatId represents object type things. |
| LeadId and ContactId are categorized under the whoId. |
WhatId are typically categorized as an Account ID or an Opportunity ID. |
| WhoId is equivalent to a contact’s ID or a lead’s ID. The label is Name ID. |
WhatId is equivalent to the ID of a related object. The label is Related To ID. |
Standard Controller Vs Custom Controller
| Standard Controller |
Custom Controller |
| Standard Controller consists of similar logics and functionality which are been used for the Standard salesforce page. |
Custom Controller is a class where page logic and functionality is written in Apex language. |
| Standard Controller is considered as standard and custom objects that are available in Salesforce. |
Standard Controller is not objects in Salesforce but Apex classes that are used to frame page logics and functionality. |
| The standard controller is auto-generated by SF for all objects. |
Custom controllers are written by you and do what your code tells them to do. |
Note: Other than Standard and Custom controller we also have Controller Extensions through which we can extend the standard or custom controller functionality. controller extension class executes in system mode if a controller extension extends a standard controller, the logic from the standard controller does not execute in system mode.
User Mode Vs System Mode
| System Mode |
User Mode |
| In System Mode apex code is running by ignoring the user's permission. |
In User Mode, the Apex Code is running by following user permissions and sharing records. |
| In System Mode an apex code has access to all objects and fields and object permissions, field-level security, sharing rules won't be applied there for the current user. |
In User Mode logged in users don't have to create permission and so they are not able to create a record. |
| All apex code runs in System Mode. |
Standard controllers and Anonymous block windows run in user mode. |
Custom Setting Vs Custom Object
| Custom Setting |
Custom Object |
| Custom settings are used for those resources which can either be used frequently. We can directly fetch data by using getAll() and getValues(dataSetName) methods. |
Custom Object is used to create for general purpose of resources in Salesforce. |
| One can create custom setting by Setup-> Develop-> Custom Setting. |
For Creating custom Object Setup -> Objects-> New Custom Object |
| Data under the custom setting get exposed into the cache. |
Data under the custom object is not exposed into the cache for which one can query to fetch data. |
| We can't define validation in custom settings. |
We can define validation in a custom object. |
| We can’t define workflow rules or triggers on a Custom Setting |
We can define workflow rules or triggers on a Custom Object. |
| We can’t re-arrange fields on the page layout for Custom Settings. |
We can re-arrange fields on the page layout for Custom Object. |
15 Digit ID Vs 18 Digit ID
| 15 Digit ID |
18 Digit ID |
| 15 Digit CRM ID is reference in the UI. |
18 Digit CRM ID is reference through API calls. |
| 15 digit CRM ID is case-sensitive. |
18 digitCRM ID is case-insensitive. |
System Log Vs Debug Log
| System Log |
Debug Log |
| System logs contain all the system-related information. |
Debug logs are used to recognize only about the debug statements and program executions which are related to user for which the debug is logged. |
| System Logs are used to refer all the recorded logs like workflows, test class executions etc. |
Debug logs are used to display only statements under debug in Apex class code. |
Standard Picklist Vs Custom Picklist Vs Dynamic Picklist
| Standard Picklist |
Custom Picklist |
Dynamic Picklist |
| Standard Picklist are standard fields that already exist in the Salesforce org in standard format. |
Custom Picklist are those which has been created as a custom field on any object with their respective custom values. |
Dynamic Picklist are those picklist that makes available on visualforce page by using and components. |
| For Example Lead Source and Opportunity Stage fields |
For Example Any custom picklist field |
For Example please follow below code: |
Dynamic Picklist Code Example:
Visualforce Page:
<apex:page controller="DisplayData">
<apex:form>
<apex:pageblock title="Search Here">
<b>Object : </b>
<apex:selectlist size="1" value="{!selectObject}">
<apex:selectoption itemvalue="None" itemlabel="-None-"></apex:selectoption>
<apex:selectoption itemvalue="Account" itemlabel="Account"></apex:selectoption>
<apex:selectoption itemvalue="Contact" itemlabel="Contact"></apex:selectoption>
</apex:selectlist>
<apex:commandbutton value="Display" action="{!SearchObject}"></apex:commandbutton>
</apex:pageblock>
<apex:pageblock title="Search Result">
<apex:pageblocktable value="{!resultList}" var="res">
<apex:column value="{!res['Name']}"></apex:column>
</apex:pageblocktable>
</apex:pageblock>
</apex:form>
Controller:
public class DisplayData {
Public list<sobject> resultList{get;set;}
public string selectObject{get;set;}
public DisplayData() {
resultList = new list<sobject>();
}
public void SearchObject() {
if(selectObject != 'None')
resultList = Database.query('SELECT Name FROM '+selectObject+' LIMIT 20');
}
}
Thanks For Reading !!
Happy Salesforce!!