Salesforce Guidelines – Part II
51. Universally Required:
a. Always require a value in this field in order to save a record
b. Required across all record types
c. Always display on edit page
52. Universally Required only works in Custom fields
53. Universally Required does not work in Standard fields
54. Unique:
a. Don’t allow duplicate values
b. Treat “ABC” and “abc” as duplicate values (case insenstive)
c. Treat “ABC” and “abc” as different values (case senstive)
55. Textarea can’t be a unique field
56. We can set the External ID of a field only for the TEXT, NUMBER and EMAIL data type for the custom fields. Means External ID can only be for custom fields of type TEXT, NUMBER and EMAIL
57. External IDs is available on all objects which support custom fields
58. User defined cross-referenced field
59. Why it is important:
a. Increases Report and API SOQL performance
b. Used with Upsert to easily integrate app with other systems
60. An object can have 3 external ID fields
61. An external ID contains record IDs from a system outside of Salesforce. You can match against this field during importing or integration, or when using the upsert call. Also, external ID fields are indexed, so selective filters on them should run quickly.
62. Encrypted Fields: Encrypted fields allows for masking data from all the users except those with “View Encrypted Data” permission. This is provisioned feature and you must contact with Salesforce.com to enable it
63. Encrypted custom fields can not be Unique fields
64. Encrypted custom fields can not be External ID fields
65. Encrypted custom fields can not have default values
66. Encrypted fields can be modified regardless of whether the user has “View Encrypted Data” permission
67. How can we prevent user to modify the Encrypted fields:
a. Use validations rules, field level security setting or page layout setting to prevent the user from editing encrypted fields
68. Object Relationship:
a. A relationship is a bi-directional association between two object
b. Relationship allows us to create links between one objects to other
69. Force.com platform support the following 4 types of relationship:
a. Lookup relationship
b. Master-detail relationship
c. Many-to-Many relationship
d. Self
70. Lookup Relationship:
a. Creates a loosely typed relationship between two objects
b. Child row is not automatically deleted when parent row is deleted
c. No inherited sharing and security. Means the child row does not inherit the sharing and security from the parent record
d. 25 lookup relationships can be created per object. We can create maximum 25 lookup on a record
e. Lookup field data on child record is not necessarily required. Means the Lookup field value can be null on child record
71. Mater-Detail relationship:
a. Mater-Detail relationship closely links two objects together such that the master record controls certain behavior of the detail record
b. When a master record is deleted, the detail record is automatically deleted
c. Owner field on the Detail record is not available
d. Owner field on the Detail record is set to the owner of the Master record
e. Owner of the Detail can not be different for Master and Detail record
f. The security setting for the master record controls the detail record
g. Same security and sharing setting are applied on Detail as on the Master record
h. The Master-Detail relationship field (which is the field linking the two objects) is required on the Page Layout of the Detail record
i. Only 2 Master-Detail relationship are allowed per object
72. Many-To-Many Relationship:
a. Allow for the relationship of 2 objects in a Many-To-Many fashion
b. Implementing a Many-To-Many relationship requires a third junction object
73. Junction object: When modeling a many to many relationship, you use a junction object to connect the two object
a. Junction object is a custom object with two master detail relationships
b. When creating a junction object, consider the following things:
i. Name the object with a label that indicates it’s purpose
ii. Use the auto number data type
74. What is a Custom App: A custom application is a logical container for all the objects, tabs, processes and services associated with a business function
a. A force.com app consist of a name, description, an ordered list of tabs, optionally a custom logo and default lending page
b. Salesforce.com provides standard apps like Sales, Marketing, Call Center
c. Custom App display CustomForce logo by default
d. You can insert your own logo, you need to upload it in to the Document object as a JPG or GIF file. The logo size should be less then 20 KB size
e. You can set your landing page from the Default Landing tab drop down menu
75. What is a Custom Tab:
a. A custom Tab is a user interface component, you create to display custom object data or other web content embedded in the application
b. There are 3 types of custom tabs:
i. Custom Object Tab :: display the data of custom object in user interface
ii. Web Tab :: display any external web based application or web page in a user interface
iii. Visualforce Tab::Display any visual force page
c. Universal Container wants to make sure that user will be able to easily access the new custom objects they have created. They need to create new custom tabs that will quickly guide the people
76. Page Layouts:
a. Page Layout defines the organization of
i. Fields
ii. Custom Links
iii. Visual force pages
iv. Custom s-control
v. Related Lists on an object detail page or edit page
b. Page Layout customizations include
i. Field locations
ii. Page section customizations
iii. Field property: Field property can be “read only, required”
c. Page layout standard section names can not be modified for standard page layouts
d. Making a field required on a page layout or through field-level security ensures users must enter a value
e. If you make a user field universally required, you must specify a default value for that field
f. Use field-level security as the means to restrict users’ access to fields; then use page layouts primarily to organize detail and edit pages within tabs. This reduces the number of page layouts for you to maintain
g. Field-level security does not prevent searching on the values in a field. If you do not want users to be able to search and retrieve records that match a value in a field hidden by field-level security, contact salesforce.com Customer Support for assistance with setting up your organization to prevent unwanted access to those field values.
h. Page layouts can specify whether a given field is required, but the API does not enforce such layout-specific field restrictions or validations in create() and update() calls. It is up to the client application to enforce any such constraints, if applicable
i. Means if a field is set to required from page layout, the API will not enforce the user to make it as required
j. Record types can control which picklist values can be chosen in a given record and which page layouts users with different profiles can see. However, such rules that are configured and enforced in the Salesforce user interface are not enforced in the API. For example, the API will not validate whether the value in a picklist field is allowed per any record type restrictions associated with the profile of the logged-in user. Similarly, the API will not prevent a client application from adding data to a particular field simply because that field does not appear in a layout associated with the profile of the logged-in user
k. When a custom object is created, a Tag object related to it is also created. These object names are of the form: MyObjectName__Tag, similar to AccountTag and other standard object tag objects.
l. In the Salesforce user interface, you can mark a custom field as required, and this is also enforced in the API. Every custom field has a field isRequired, with a data type boolean. The default value is false. If set to true, every request must supply a value (or leave the current value) to this field. Otherwise, the request will fail. Once the value is set to true, the next time the field is edited or created, the validation will apply, and if there is no value supplied or default value specified, the request will fail.
m. To edit the isRequired field, you must log in as a user with the “Customize Application” permission.
77. Workflows:
a. Standardize the internal procedure and automated the business processes
b. Event based and time-dependent triggering engine
c. Capabilities of workflow:
i. Field updates: restricted to updates on source object only
ii. Tasks and alerts
iii. Outbound messaging
iv. Approval Process
v. More sophisticated workflows may require use of API
d. Workflow rules are automated processes that trigger criteria based on your business requirements
e. Workflow have two parts:
i. Rule criteria: which records should trigger the rule
ii. Workflow actions: what should happen once the rule is triggered
f. Each workflow rule consist of the following:
i. Criteria that cause Salesforce to apply the workflow rule.
ii. Immediate actions that execute when a record matches the criteria. For example, Salesforce can automatically send an email that notifies the account team when a new high-value opportunity is created
iii. Time-dependent actions that Salesforce queues when a record matches the criteria, and executes according to time triggers. For example, Salesforce can automatically send an email reminder to the account team if a high-value opportunity is still open ten days before the close date.
g. Workflow Evaluate Criteria:
i. When a record is created, or when a record is edited and did not previously meet the rule criteria
ii. Only when a record is created
iii. Every time a record is created or edited
h. Immediate Workflow Actions:
i. New Task
ii. New Email Alert
iii. New Field update
iv. New outbound message
v. Select existing action
i. You can’t add a time-dependent workflow action for “Every time a record is created or edited” evaluation criteria
j. For Email Alert action the Recipient type can be the following items:
i. User
ii. Creater (record creator)
iii. Owner
iv. User
v. Public groups
vi. Role and subordinates
vii. Roles and internal subordinates etc..
k. For Email Alert action we can enter 5 email addresses to be notified in the Additional emails
l. You cannot add time-dependent workflow actions on an active rule. You must de-active that rule and then add the time trigger
78. Formula Fields: A read-only field that derives its value from a formula expression you define. The formula field is updated when any of the source fields change.
a. The output type for a formula field can of these types:
i. Currency (18 decimal places)
ii. Date
iii. Date/Time
iv. Number (18 decimal places)
v. Percent (18 decimal places)
vi. Text
b. Formula field help text displays on the detail page
c. Formula field are not displayed on Edit page and auto calculated
d. Smart custom fields that can be used to build business specific calculations using simple wizards and excel like formula calculations
e. Supported on standard and custom objects
f. Formula fields can reference standard, custom or other formula fields
g. Formula fields can reference fields on related objects
h. Cross object formula fields:
i. Cross objects formula fields enables you to incorporate the merge fields from multiple objects for calculations and display
ii. Create formula that reference fields on parent or grandparent objects up to 5 level
iii. The cross object formula fields can refer the objects up to 5 levels
iv. This enables to display fields from related objects on detail pages
v. Use a simple wizard to browse across objects and insert fields in formula
i. Formula fields only display on detail pages
j. Scenario: the VP of HR at Universal Container is interested in tracking the overall score of each candidate who has been interviewed as well as the number of days a position stays open. What we need to do?
i. We need to create formula fields to accomplish this task
ii. Create a custom formula field that calculate the overall score from the Review object
iii. Create a new custom formula field that calculates the days opened on the position object
k. Cross object formula field Scenario: UC wants to make sure that recruiters views Job Applications have important Candidate information at their fingerprints for example the candidate’s email address and phone. In addition they want to have a candidate’s full name and positions they are applying on the offer records
i. Answer: you can use cross-object formula fields to accomplish that
ii. Create a formula field to pull the Name information from the Candidate object on Job Application object
l. There are total 18 data types in Salesforce.com
m. only 6 data types are supported by formula fields (Number, Currency, Percent, Text, Date, Date&Time)
79. Roll-up summary fields: A read only formula field that display the sum, maximum or minimum value of a field in a related list or the record count of all the records listed in a related list
a. Roll-Up summary field is available only for Master-Detail relationship
b. Roll-Up summary fields are available for all custom relationships
c. Roll-Up summary fields are available only limited standard relationships like Account-Opportunity
d. There is an option to include all records in the roll-up or records that meets certain criteria
e. Scenarios: to help the hire stand out candidates, the HR director of UC wants to see a list of all the combined reviews scores on each job application. You can use a roll-up summary field to calculate this information
i. Create a roll-up summary field for Total Reviews on the Job Application object
ii. Create a roll-up summary field for Total Review Score on the Job Application object
iii. Create a formula field that calculates the average review score for a job application
80. Validation Rules: Validation Rules help improve data quality by preventing users from saving incorrect data. You can define one or more validation rules that consist of error condition and corresponding error message. Validation Rules are executed at record save time. If an error condition is met, the save is aborted and an error message is displayed
a. Uses of Validation Rules:
i. Make fields conditionally required, depending on the value of another fields
ii. Ensure that number are within a specific range, such as discount is less than 30%
iii. Enforce that the date fields are the correct chronological sequence such as start date is before the end date
b. Validation rules verify that the data a user enters in a records meets the standards you specify before the user can save the records
c. A validation rule can contains a formula expressions that evaluates the data in one or more fields and return a value of true or false
d. The validation rule also include an error message to display to the user when the rule returns the TRUE due to an invalid value
e. Error message can be displayed directly below field or top of the page
i. Multiple error messages can be displayed at one time
f. Record Type Name and ID can be formula merge fields
g. Standard and Custom user merge fields for the current user are also available
h. IsChanged(field) function allows validation to be conditional based on whether a specific field value has changed
i. PriorValue(field) allows access to the previous value of a field
j. IsNew() allows different validation rules for create vs. update actions
k. Scenario: UC wants to ensure that reviewer provide an explanation if they give someone a low score for Cultural Fit on the Review object
i. Answer: Add a validation rule to require that if someone gives a candidate a Cultural Fit score of <2 they must include an explanation
l. Scenario: UC also want reviewers to always provide specific details if they are recommending someone to hire
i. Answer: Add a validation rule that require the reviewers to fill the Reason Recommended box if they check Recommended for Hire
m. Scenario: UC employee should not be able to save a position record if the Hiring Manager field is filled out
i. Answer: Add a validation rule to require that all positions must have Hiring Manager filled out
81. Salesforce License Type:
a. All users must have a license
b. You may have one than one type of user licenses in salesforce
c. Different types of licenses allow different level of access
d. Every profile is tied up with a license type
e. License Types:
i. Salesforce Users:
1. Salesforce
2. Salesforce Platform
3. Salesforce Platform Light
4. Force.com – one App
5. Force.com – free
ii. Customer Portal Users:
1. Customer Portal Manager Standard
2. Customer Portal Manager Custom
iii. Partner Portal Users: Users with a partner user license can only access Salesforce using the Partner Portal.
1. Bronze Partner
2. Silver Partner
3. Gold Partner
iv. Additional license type give access to other applications including: Mobile, Content, Ideas
82. Profiles:
a. Profiles defines a user’s permission to perform different functions
b. Profiles also defines how a user sees records to which s/he has access
c. Every user has a profile. Single user can assigned to a single profile
d. There are 6 standard profiles
e. Permissions on standard profiles can’t be customized
f. Developer can create custom profiles
g. When creating a new profile, developer need to select a profile from which to copy over permissions and settings
h. Each profile is associated with a User License type
i. Typically organizations will have one profile for each actor
j. Profiles control Administrative permissions like “Converts Lead”, “Imports personal Contacts”, “Create and Customize Reports”
k. Few Permissions to Note:
i. View all data
ii. Modify all data
iii. Customize applications
iv. API only user
v. Password never expired
vi. API enabled
vii. View set up and configurations
l. Object permission determines what user can do to the records which they have access
m. If you donot have Read access for an object, you will not able to Create, Edit or Delete that records
n. In addition to controlling access to fields, profiles also control access to objects
o. The profile control whether a user has the ability to read, create, edit and delete each object
p. Lacking the Read permission for an object means users will not be able to access it all
i. No access in the application
ii. No access in the reports
iii. No access through search
iv. No access through the API
q. Administrators can change a user’s profile by editing that user’s personal information.
r. A system Administrator can not modify a standard profile permission
s. There are 4 types of permissions for a Profile:
i. Administrative Permissions
1. API enabled
2. View Set up and configuration
3. View all data
ii. General User Permission
1. Convert leads
2. Import personal contacts
3. Import leads
4. Send email
iii. Standard object permissions
1. Permissions for all standard for Read, Create, Edit, Delete, View All, Modify All
iv. Custom object permissions
1. Object level permissions on object level
t. A System Administrator can only modify the custom profile permissions
83. Field level security:
a. Restricts user’s access to view and edit fields
b. Overrides any less-restrictive field access settings in page layouts and search layouts
c. Field level security controls which fields user can access in related lists, list views, reports, force.com connect offline, mail merge and email templates, importing personal data
d. Scenario: UC wants to completely lock down edit access to compensation access information from hiring managers through all ways the users access the Recruiting application
i. Answer: Use field level security to make Min Pay and Max Pay fields on the Positions object to read only for hiring mangers
e. Scenario: Use field level security to restrict user access the fields. UC wants to make sure that interviewers have sufficient information to conduct interviews, but needs to limit what they see and edit on positions and candidates
i. Set field level security for Position object: remove the ability for interviewers to see any compensation details
ii. Set field level security for Candidate object: remove the ability to view all the fields except for the candidate’s First Name and Last Name
84. Record Types: Record Types allow developers to associate different business processes and subsets of picklist values to different users based on their profile
a. Used to drive which page layout user see when viewing records based on their profile
b. Benefits of Record Types:
i. Tailors user interaction experience to specific business needs
ii. Easier Administration
c. Record Type only affects the way that data is displayed in UI.
85. Controlling access of Records:
a. There are number of different settings that influence whether a user can see or edit records:
i. Users with “View All Data” can see all the records, regardless of other security settings
ii. Users with “Modify All Data” can modify all records, regardless of other security settings
iii. Field level specifies which fields user can see and edit
iv. All of these setting determines to access an object not any specific record
b. Other settings that determines whether a user can see or edit are part of the sharing model
c. Sharing model determines which record a user can see and edit
d. The sharing hierarchy is as following order:
i. Owner (record owner)
ii. OWD (organization wide default)
iii. Role Hierarchy
iv. Sharing Rules
v. Manual sharing
e. Compare Profile and Sharing Model:
i. Profiles control access to objects like Account, Contact, Lead, Opportunity and Sharing model control access to records like Account record Brocade Communication System etc.
ii. Profile controls access to the fields
f. So a user’s profile might specify that a user can see the Candidates but the sharing model specifies which candidate that user can see
g. The sharing model might determines that a user can see Joe Hardle but profiles specifies which fields that user view and edit
h. Record Owner:
i. The user who controls or has rights to that particular data record
ii. An owner has the following special previliges:
1. View and edit capabilities
2. Transfer capability (record ownership)
3. Deletion capability
iii. Important Assumption:
1. Object permissions enabled
iv. Custom objects can be owned by Queues
v. Every record in salesforce has an owner except:
1. Child records of master-details relationship, in this case, the owner of the parent record controls both the parent and child
86. OWD (organization wide defaults): OWD are a security setting that defines the baseline level of access to data records that you do not own
a. Users to restrict access to data
b. Defined for the custom as well as several standard objects
c. Access levels:
i. Public Read/Write (all user can see and modify every record)
ii. Public Read only (all users can see every record)
iii. Private (user can see every record that they own)
d. Considerations:
i. Child records in Master-Detail relationship inherit the OWD from its parent
ii. Child records in lookup relationship have independent organization wide defaults from their parents
iii. Changing organization wide defaults can potentially delete manual sharing if that sharing is no longer needed
iv. Consider your business requirements carefully before setting your OWD
87. Roles:
a. controls the level of visibility that user have to an organization’s data
b. A user may be associated to one role
c. Role Hierarchy:
i. Controls data visibility
ii. Controls records roll up for reporting
88. There are no “Master-details and Lookup type” data type on User object
89. Rollup summary is not on the user object
90. “Hierarchical Relationship” new data type does exist on the User object only
91. Apex sharing reasons are used by developers when adding sharing to a record programatically. Using an apex sharing reason prevents standard users from deleting the sharing, and allows the developer to track why they added the sharing.
92. Standard object is always the master
93. Standard objects can not be a child
94. Custom object can not be a master in a standard-custom master detail relationship
95. Tabular reports are the simplest and fastest way to list your data.
96. Summary reports list your data with subtotals and other summary information.
97. Matrix reports list summaries of your data in a grid against both horizontal and vertical criteria.
98. Debug log categories:
a. None
b. Database
c. Workflow
i. Assignment rules
ii. Auto response rules
iii. Escalation rules
iv. Approval process
d. Validation
e. Callout
f. Apex code
g. Apex profile
99. Apex Code category log levels:
a. Error, warn, info
b. Debug
c. Fine, finer
d. Finest
100. Approval process consist of 5 parts:
a. Process Definition (Global Charac.)
b. Initial submission (workflow actions)
c. Step definition (decision criteria, approval assignment)
d. Final rejection (workflow actions)
e. Final approval (workflow actions)