What is Salesforce
Salesforce is a very powerful cloud computing technology.
It runs on the force.com platform. It is one of the most flexible and powerful
web based databases available on the market. Salesforce is a centralized place
where we can track everything we need to run our organisation. To get started
with Salesforce, all you need is a computer and internet connection as it runs
on the cloud. It requires no hardware other than computer. Users of salesforce.com can develop their own applications or if they need any
application on demand, they can buy it from AppExchange where large
number of free applications are available.
It is important to understand the basics of how are our Salesforce works. So, we will look at some important terms often used in Salesforce.
It is important to understand the basics of how are our Salesforce works. So, we will look at some important terms often used in Salesforce.
Salesforce Terminology
1. An App in Salesforce is a container for all the objects, tabs
and other functionalities. It consists of a name, logo and a set of ordered
tabs.
2. An Object is a heart of any app and is very much similar to a database table. It not only provides a structure for storing data but also power the interface elements like tab, fields or records that allow users to interact with the data.
Objects are of two types Custom objects and Standard objects where Standard objects are present by default in Salesforce instance such as Accounts, Contacts, or Opportunities but you can create your own Custom objects. Standard object Account represents a Household Account in NPSP.
3. A Tab corresponds to a single object. It act as the starting point for viewing, editing and entering information for a particular object.
4. Fields are the properties that define the object. A field is like a database column and can be different datatype like text, number, picklist, addresses etc.
5. Opportunities are the sales and pending deals that you want to track. In NPSP, it represents a donation received by a Non-Profit.
6. Record Types are a feature of Salesforce CRM. It is a set of types defined for a specific object. For example, Opportunity object has record types like Donation, Grant etc.
7. Page Layouts for an object determines how the page looks. So, we can move the fields around and present it to user in a way that is relevant to the business.
2. An Object is a heart of any app and is very much similar to a database table. It not only provides a structure for storing data but also power the interface elements like tab, fields or records that allow users to interact with the data.
Objects are of two types Custom objects and Standard objects where Standard objects are present by default in Salesforce instance such as Accounts, Contacts, or Opportunities but you can create your own Custom objects. Standard object Account represents a Household Account in NPSP.
3. A Tab corresponds to a single object. It act as the starting point for viewing, editing and entering information for a particular object.
4. Fields are the properties that define the object. A field is like a database column and can be different datatype like text, number, picklist, addresses etc.
5. Opportunities are the sales and pending deals that you want to track. In NPSP, it represents a donation received by a Non-Profit.
6. Record Types are a feature of Salesforce CRM. It is a set of types defined for a specific object. For example, Opportunity object has record types like Donation, Grant etc.
7. Page Layouts for an object determines how the page looks. So, we can move the fields around and present it to user in a way that is relevant to the business.
Following content helps you
to understand basic concepts of Salesforce.
I. Application Essentials
1.Building
Your Data Model
·
Id is indexed, 15 char
case sensitive, 18 char, case insensitive, first 3 chars consist of code that
identify type of object
·
Name is indexed,
required field, text (need not be unique)/auto number (usually unique), appear
as first column by default in list/related views
·
owner can represent
group/user, has additional previliges, default owner is creator
·
limit on custom fields
depend on Salesforce edition
·
Data types:
o Numeric – number, currency, percent
o Calendar – Date, DateTime
o Limited Option – checkbox, picklist, picklist (multi-select)
o Formatted Text – Email, Phone, URL
o Text – Text, Text Area (255), Text Area
(Long-32768), Text Area (Rich-32768,images,links, formatted), Encrypted – any
amount
o Calculation – Auto-Number (system generated),
Formula, Roll-up summary (created on master object, allows calculations on
details)
·
Properties
o Name – used programmatically
o Label – used in UI
o Universally required field – required field
for all record types and will always display on the edit page
o Unique field – cannot contain duplicate values,
can be case sensitive/insensitive
o External Id – record id from another system.
Fields of type: Text, Number, Email. Can have upto 3. Will have custom index,
increases report & SOQL performance
o Default Value – can be based on formula
·
Standard picklist fields can be
controlling fields, but not dependent fields, max # allowed in controlling
field is 300. In addition, if a field represents both a controlling field and
dependent field, it cannot contain more than 300 values
·
A custom multi-select
picklist cannot be the controlling field for a dependent field
·
Encrypted fields – the
value of the encrypted field is visible to users who has ‘View Encrypted Data’
permission. Contact Salesforce to get this access. cannot be unique, an
external id or have default value
·
Lookup Relationship
o links custom or standard, independent
ownership, security, each object can have upto max of 25 lookup relationships,
made required/optional, for optional,
o if field is optional, can use one of the
following actions when a lookup record is deleted:
§ clear value of this field (default)
§ don’t allow deletion that is part of lookup
relationship
§ delete this records also. cascade delete
bypasses security & sharing settings, allowing users to delete records they
don’t have access to.
·
master-detail
relationship
o tightly coupled
o parent field is always required
o automatically deletes the child
o when parent is deleted, ownership & access
to child record determined by parent
o cannot have sharing rules
o manual sharing or queues, on detail objects
because these rules and queues require the owner field
o cannot contain a standard object on the detail
side of the relationship
o master-detail can be configured so that child
records on the custome objects can be reparented
o cannot create master-detail relationship to
users & lead objects
o page layout should include a field in the
child object for the associated master record
·
Difference between Lookup &
Master-Detail Relationship
o Lookup
§ max 25 objects
§ parent required or optional
§ security & access are independent for
objects
§ deleting parent object may delete the child,
if the child field is required
§ link objects across multiple layers
§ lookup field on page layout depends on
required/optional choice
§ cross-object field updates and roll-up summary
fields cannot be done
o Master-Detail
§ max 2 objects
§ parent field on child required
§ access to parent determines access to children
§ deleting a parent automatically deletes the
child
§ deleting a parent automatically deletes the
child
§ the # depends on whether the master object is
standard or a custom object (linking objects across multiple layers)
§ lookup field on page layouts is required
§ cross-object field updates and roll-up summary
fields can be done
·
Special relationships
o self relationship (lookup) & many to many
relationships (master detail relationship)
o junction object
§ custom object with 2 relationships
§ also referred as intersection object
§ moved to recycle bin when any of the
associated master reocrds are deleted, however deleted permenantly and cannot
be restored when both associated master records are deleted
·
Lookup Filters
o to limit the search results for related fields
(lookup, master-detail or hierarchical)
o filters can be required or optional, value
must match the criteria, if it is required
2.
Building Your User Interface
·
3 different ways to
customize UI: custom apps, custom tabs, custom layouts
·
file size for custom
logo is 20 kb, 300 wide by 55 pixels high, add file to documents tab to have it
as a header
·
3 types of custom tabs
o custom object tabs – display data from any custom
object
o web tabs – display any external web app in UI
tab
o visualforce tabs – display vf page in UI tab
·
Page Layouts
o defines organization of fields, custom links,
field locations, page section customizaions, field properties.
3.
Introduction to Business Logic
·
Cross object formula
o can be created from objects that are linked
either by a master-detail or a lookup relationship
o can contain objects that span across multiple
levels of relationships
o limit: 10 unique relationships per object
across all formulas and rules
o exceptions:
§ cannot reference in rollup summary fields
§ cannot reference merge fields for objects
related to activites
§ cannot reference record owner merge fields for
any object
§ If a standard and custom field have identical
names or labels, the merge field displays the custom field value.
§ If two custom fields have identical names or
labels, the merge field may display an unexpected value.
§ If you create a field label called Email and a
standard field labeled Email already exists, the merge field may be unable to
distinguish between the fields. Adding a character to the custom field name
makes it unique. For example, Email2.)
·
Roll-up summary fields
o read-only formula fields that can display sum,
min, max or record count
o can add for all custom master-detail
relationships & some standard master-detail relationships including account
opportunity, and opportunityproduct
4.
Migrating Configuration Changes
·
Configuration changes
are stored as metadata
o (new sandboxes that are not activated within
30 days & the sandboxes that have been locked for 30 days will be deleted)
·
3 tools to move metadata:
change sets, force.com IDE, force.com migration took (ANT based)
·
like email, you send a
changeset to org
·
apex code should meet
75% of covering test cases
·
system detects incompatibilities
bet versions
·
ability to work with
change sets is controlled by profile permissions
·
change sets cannot be
modified once it is created.
Salesforce
Applications
1. To
access Force.com platform visit the URL https://login.salesforce.com and click on the Setup link in the top nav bar.
2. To
access apps, select Create|Apps menu in the left navbar.
3. To
create a new Application, a developer needs to specify App Label, App name,
description, custom app logo and a list of tabs. App Label is displayed to
users, and App name is the internal name referred in code.
4. An
application is a set of tabs.
5. Tabs
are of three types
A. Custom
object Tab
B. Web
Tab
C. Visual
force Tab
6. Tabs
are used to organize objects and records. Each tab is associated with a unique
object. A tab also lets you specify a color and an image.
7. One
of the tabs in the application is a default landing page.
8. Saved
applications appear in the Apps menu on the top left navbar
9. Salesforce
provides a Force.com IDE. This is an eclipse plugin application that provides a
development environment for VisualForce and Apex.
10. In
Salesforce code without desired test coverage cannot be deployed. A minimum of
75% test coverage must be achieved before deployment.
11. Native
User Interface refers to the default user interface that Salesforce provides
Approvals and
Workflow in Salesforce
Salesforce
provides extensive support for implementation of workflow and approvals.
1. A
queue can hold a predefined set of objects and consists of a set of users. Any
of the queue members can pick up tasks assigned to the queue. Users or Queues
can be owners of records.
Approval
processes
Salesforce supports wizard based easy to configure approval
process. After an object is selected, the wizard guides the user through a
step-by-step setup. Approval process is triggered when a user clicks on the
"Submit for approval" button.
2. The
approval process consists of the following steps -
A. Process
definition
B. Initial
submission actions
C. Step
definitions
D. Final
Rejection actions
E. Final
Approval actions
F. Final
Recall actions
3. The
Process Definition step consists of the following sub-steps:
A. Provide
the name of process
B. Specify
entry criteria for records
C. Specify
who is going to approve
D. Specify
email template
E. Fields
to be displayed in the approver page
F. Specify
who is going to send approval mail
4. Workflow
rules are like triggers. Action is triggered when a record meets an evaluation
criteria. Workflow rules definition does not impact existing records. Workflow
rule gets applied to new record creation or edits.
5. Workflow
rule consists of three steps
A. Select
the object
B. Specify
evaluation criteria (when should the workflow rule be executed, example for new
records are created)
C. Define
rule criteria (example when status of job applicant is approved)
6. Workflow
actions can include sending an email, setting values to fields, sending an
external message or creating a task.
7. There
are two differences between Workflows and Approval process
Workflow
|
Approval
process
|
They
are activated when a record is saved.
|
approval
process are triggered by explicitly clicking the "Submit for
Approval" button.
|
Workflow
consists of single step and single action
|
Approval
process consists of multiple steps. Also different action is taken based upon
whether the record is approved or rejected.
|
Workflows
can be modified or deleted.
|
In
approvals some attributes cannot be modified. Processes must be deactivated
before approvals can be deleted.
|
8. Time-based
workflow allows action to be triggered after a delay. As an example we could
implement following business logic using time-based workflow: In a recruitment
application if for no high priority position no candidates are assigned in a
week, then send a mail to Recruitment Manager.
9. Time-based
workflow cannot be executed when evaluation is set to "Every time a record
is created or updated".
10. Approval
processes can be single or multiselect process. Multi-select processes require
end user authorization for record promotion.
11. Approval
process is unique for object type.
12. Parallel
approval process allows specifying (upto 25) multiple approvers simultaneously.
The approver setting could be set to unanimous or first action. In unanimous
parallel approval process, all approvers must approve a request, before it is
considered as approved.
13. Possible
actions of workflow and approval process are -
A. Creating
a task
B. Sending
a message to external system (outbound message)
C. Updating
a field value
D. Sending
an email
E. Locking
a record
14. Outbound
message helps keeping salesforce coordinated with other applications.
15. Dynamic
approval process is used to route approval requests to users listed in lookup
fields on the record requiring approval. In this, approver names are defined
dynamically from an object.
16. Process
Visualizer provides Read only visual of an Approval process. It can be accessed
by clicking on “View Diagram” button.
Salesforce
Business Logic
Business logic is a set of rules and calculations that handle information
exchange between User Interface and Database. Declarative Business Logic
includes: Queues, Workflows, Validation and Assignment Rules, Rollup summary
fields, Cross Object fields.
Programmatic Business Logic includes Apex, Visualforce
Controllers, Web Services API. Automated processes are:
o Validation
Rules
o Assignment
Rules
o Auto
Response Rules
o Workflow
Rules
o Escalation
Rules
Queues are used to manage a shared workload more effectively.
2. Validation
rules can be attached to fields. They are executed when a record is created or
updated.
3. When
defining a validation rule, an error condition and error message are defined.
If evaluation of error condition results in true value, record is not saved,
and the error message is generated. To get more knowledge on Validation Rules
visit www.npsphelper.com/admin
4. Some
fields are of type Formula. They are derived from other fields. Validation
rules and formula follow the same expression language.
5. A
set of functions used in Formulae are included below.
Formulae
|
Description
|
TODAY()
|
Returns
todays date
|
IF(expr,x,y)
|
if
expr is evaluated to true, x is returned, else y is returned
|
TEXT(field)
|
Returns
the text value of a picklist
|
ISPICKVAL(field,value)
|
Checks
whether value of field matches the input parameter. Returns true if there is
a match
|
ISBLANK(field)
|
Returns
true if field is blank
|
AND(expr1,expr2)
|
Performs
a logical AND
|
OR(expr1,expr2)
|
Performs
a logical OR
|
HYPERLINK(url,text)
|
Creates
a link to the specified url
|
ISCHANGED(field)
|
Checks
id the field's value has changed
|
PRIORVALUE(field)
|
Returns
the previous value of field
|
ISNEW()
|
Returns
true if a new record is being created.
|
INUMBER()
|
Returns
true if the field is a number
|
IMAGE()
|
Used
to display an image
|
REGEX()
|
Compares
a text field to a regular expression and returns true if there is a match
|
VLOOKUP()
|
In
an object consisting of key value pair, VLOOKUP returns value for a key
|
6. A
few things on these functions:
o Case(),
If() and IsNumber() are available for all features like approval, workflow,
validation and formula.
o Image()
is only for Formula fields.
o Vlookup()
is for Validation rules.
o IsChanged()
and PriorValue() are for workflow, only when “everytime a record is created or
updated”.
You can make your own formula. Go through the Formulas in Salesforce video at www.npsphelper.com/admin
7. Methods
are used in Formulae fields, Validation rules, Workflow rules, Field updates,
Default values and Approval process. Some of these methods are only available
in certain areas. CASE, IF, ISNUMBER are available in all places. IMAGE is
available only in formulae fields. VLOOKUP is available only in validation
rules.
8. Cross-object
formula span two or more objects by referencing merge fields.
9. Difference
between Roll Up and Cross Object Fields:
1. In
cross object formulas, we navigate from child object to parent or grand parent
object(up to 5 levels). Field is displayed on child object. While in Roll Up
Summary Fields, we navigate from Parent to Child object.
2. Formula
fields do not store the value on the record but Roll Up Summary fields stores
the value and changes can be seen on parent.
Limitations of Cross Object Fields:-
0. You
can’t reference cross obect formula in roll up summary field.
1. You
cannot reference merge field for objects related to activities.
2. You
cannot reference record owner merge field for any object.
Debugging
Tools
View Setup Audit Trail is used to view list of configuration
changes. It is available in Security Controls menu in the Setup area. Examples
of audit trail are creation of object, adding a new field, changing field type
or setting up a new approval process. By default 20 last configuration changes
are displayed. Changes made in last 180 days can be exported into a csv file.
It can be configured by admin or developer.
Field history tracking can be enabled at object level at the time
of creation of objects. Up to 20 fields can be tracked for one object. As an
example, any changes in field values are stored as part of Field history
tracking. During Field history tracking, Time of change, user who made the
change, prior value and new values are stored. For data types Multiselect
Picklist and text area (long), previous and new values are not saved.
In the Custom
Fields and Relationship area of Object configuration, "Set History
Tracking", is used to enable field level tracking. Review History related
list can then be added to page layout to view changes to fields.
Force.com platform provides three main mechanisms for debugging
errors. These are also known as Auditing tools:-
.
Field history allows developers to track changes to
field values of up to 20 fields for any object.
A. Debug
Logs is a
persistent store in which logs are stored for transactions performed by up to
20 users.
B. System
Logs allows
developers to run apex commands and view the logs
C. Setup
Audit trail allows
developers to view all configuration changes (example creation of object,
changing field type, creating a workflow etc.) made in last 180 days.
Setup Audit Trail of Salesforce is used to track configuration
changes made. Example of configuration changes are date of change, description
of the change, user who made the change. Twenty most recent changes are
displayed in the audit trail. Last 180 days changes can be exported into a csv
file. View Setup Audit Trail feature is available via the Security Control
menu.
There is a link to System Log at the upper right corner of the
page. System Log allows developers to enter Apex code and see the results of
running this code. System Log display information about workflow rules,
validation rules, debugging information and resource utilization.
To control quantum of logging, system log takes two parameters Log
category and Log level. Log categories can take the following values -
o None
o Database
o Workflow
o Validation
o Callout
o Apex
code
o Apex
profiling
Log level indicates level of detail in the message. It takes the
following values
o None
o Error
o Warn
o Info
o Debug
o Fine
o Finer
o Finest
Debug log is an organization-wide persistent log. It can store
debug log for transactions performed by specific users. Logs for up to 20 users
can be persisted. Debug Log is available via the Monitoring menu.
Salesforce supports history tracking on change in values of
fields. This can be enabled for up to 20 fields in an object. In Custom Fields
and Relationship, set history tracking is enabled for a set of fields. Review
history can be added to page layout. Information stored includes - changes to
field values, time of change, user who changed the field. Old and new values of
fields are not stored for multi-select picklist and long text area.
Salesforce
DataLoader
1. Every
object has a standard field called id. There is no need to define an explicit
primary key in custom objects. The standard id field can be used as primary
key.
2. The
id is alphanumeric. id can be either 18 digit case-insensitive or 15 digit
case-sensitive.
3. The
first three characters of the id identify the object. Ids can be identified in
three ways -
o From
the URL when a record is displayed in Salesforce
o From
reports
o Through
the web services api. Data Loader uses web services api to display the ids.
4. The
id displayed by a report is the 15-digit case-sensitive id. The ids returned by
web services api are 18-digit id. For updates web service accept both the
15-digit and 18-digit ids.
5. 15-digit
id can be converted to 18-digit id and vice-versa.
6. There
are two types of Data Loader logs:
o sd1.log
o sd1_out.log
7. When
loading data into a salesforce application dependencies between objects
determine the order in which objects are loaded. If there is a one-to-many
relationship between A and B, the data for A should be loaded before the data
for B.
8. Data
Management is an ongoing process to keep data in your application up-to-date,
accurate and clean whereas Data Migration is one time task.
9. External
ids option can be specified on custom fields for fields of type text, number or
email. This creates custom index in database. A maximum of three fields can be
set as external ids. Specifying a field as external ids, leads to improved
reporting and SOQL performance. External ids prevent duplicate entries when
exporting data. Both upsert and external ids are used for migration and
integration of data.
10. If
"Modifiable System Field" configuration is enabled, then system
fields (like creation date) can be set to any value during initial data load.
These values can however not be updated after the initial upload. These fields
are accessible through the API. These are backward compatible with all SOAP
based APIs available for all custom objects. These are Read only fields.
11. Salesforce
determines an operation Upsert. Upsert stands for update + insert. When an
upsert is performed, if a record exists it gets updated. If the record does not
exist, it gets inserted. This is useful in large data uploads, and if the
connectivity is not stable. Matching of record can be performed on the basis of
Salesforce id or External id. When performing an upsert, only single external
id field is used.
12. Import
wizard are available via the standard Salesforce application using easy to use
interface and do not require programming. Import wizard can be used to load up
to 50,000 records. Import wizard can be used for de-duplication of data. Import
wizard can be used to import accounts, contacts, leads, solutions and custom
objects.
13. Web
Services API based tools can load more than 50,000 records and can support all
object types. It also allows developers to schedule regular data loads. These
support nightly feeds. APIs can delete multiple objects at the same time.
14. Data
Loader is an API based product by Salesforce. It can be run from command-line.
It can generate and import from csv (Comma Separated values) files. It supports
custom relations imports using upserts. It also support loading from JDBC.
15. Data
Loader can be installed on a desktop from the Salesforce Data Management menu.
Operations supported by data loader are -
o Extract
o Upsert
o Insert
o Delete
o Update
16. Command-line
version of data-loader supports regular scheduling of loads.
17. Mass
Transfer Tool is used to transfer multiple objects data from one user to
another. User should have the following permissions:
o Transfer
record permission
o Edit
permissions
The tool can be used to change the ownership of the record.
Force.com
development platform
1. Salesforce
provides two type of licenses
1. Salesforce:
full access to CRM standards, Force.com custom and application exchange apps
2. Salesforce
platform:. Salesforce platform license allows access to custom apps, it does
not allow access to online CRM product.
Feature licenses can be purchased for additional features such as
Marketing User, offline user, Apex mobile user etc. CRM access means access to
Standard objects like Cases, Campaigns, Opportunities etc. Platform access
means access to Custom and Standard objects.
2. Force.com
platform uses the standard Model View Controller design pattern. The MVC
pattern is implemented as below in Force.com platform.
Pattern
|
Force.com
implementation
|
Model
|
Object
(custom or standard)
|
View
|
VisualForce
pages
|
Controller
|
Logic
written in Apex that controls navigation
|
3. The
Create menu is used to provide the declarative framework of Force.com platform.
The Develop menu is used to provide the programmable framework.
4. Page
Builder is used to generate user interface for CRUD (Create, Read, Update,
Delete) operations of objects. This user interface is created automatically by
Salesforce and can be used to create reasonably complex applications withot
writing VisualForce or Apex code.
5. Salesforce
allows data types of existing fields to be changed, however this may lead to
loss of data.
6. When
you add a custom object tab, all the following will be accessible with the
object:
o Recent
items
o Sidebar
search
o Added
to new link/ Create new object drop down
To make a field required, there are a few different ways.
o Check
the box for required on Object Definition
o Create
a Validation Rule
o Specify
that the field is required in the Page layout
Page Layout supports a drag-and-drop interface to develop screens.
It allows addition of space and sections, and moving of fields across the
screen. It supports making a field read-only or required.
There are two type of activities:
o Task:
It is related to a record , assigning a task
o Events:
Any calendaring event, meeting etc
A deleted record is stored in recycle bin with an expiry date.
Deleted records can be recovered for upto 45 days.
SOQL stands for Salesforce Object Query Language. SOQL is used for
performing queryies on objects.
SOSL stands for Salesforce Object Search Language. SOSL is used
for performing full text search.
S-controls were used to upload contents such as java applets or
active X controls for use in dynamic custom links or web tabs. These have been
superseded by visualforce pages. S-controls provide client side programming.
Salesforce provides sandboxes that may be used for development and
testing. Full Copy Sandbox allows copies of metadata/configuration along with
all the application data to be copied from production to a sandbox environment.
The sandbox can then be used for testing and simulating reported problems.
Record ids in production and full copy sandbox are also same.
Configuration only sandbox copies all your production
organisation’s reports, dashboards but exclude all your organisation’s standard
and custom object records, documents and attachments. There is a size limit of
500MB(250,000 records)
Developer sandbox is a special configuration sandbox only
for single developer. It also allows copying of metadata and configuration, but
not copying of application data. Changes from the active development can be
isolated until they are ready to be shared. Size limit is 10MB(5000 records)
Developer edition license does not allow copying of
configuration from production developer environment.
Territory Management: It is used to define more than 1 role
hierarchy.
Force.com's
objects, fields and relationships
1. Objects
logically correspond to database tables in a relational database. Fields of an
object is similar in concept to column in relational database.
2. Objects
can be standard or custom. Standard are objects are predefined by Salesforce
like Accounts, Case, Contact etc. Custom objects are created by developers
based upon application requirements.
3. Custom
objects have the following characteristics
1. Custom
objects store information that is unique and important to your organization.
2. Custom
objects are reportable and search-able.
3. Custom
objects have configurable access control features.
4. Force.com
provides undelete functionality on objects. Deleted objects go to a recycle bin
with an expiry date of 45 days. An administrator may delete objects from
recycle bin.
5. Fields
of type Picklist cannot be made required.
6. There
are three type of page layouts:
1. Detail
2. Mini
3. Console
7. Objects
have following fields that need to be entered by developers -
o Label
o Plural
Label
o Object
Name
o Description
o Record
Name
o Record
Type
The field for record name is displayed by default when the object
has to be displayed (for example in search results). The record type can be
text or auto-number. Auto-number can take values like A-{0001}, A-{0002} etc.
The Object name is used to access the object programmatically. __c
is added as a suffix to the custom object names. The label name is used for
display of the object.
The standard fields are added automatically. Examples of standard
fields are Created By, Owner etc.
Custom Fields are added to an object by developers. In the custom
object definition detail screen there is a section of custom fields. Click New
to create new custom fields in this area.
Read through the Salesforce customizations at www.npsphelper.com/admin
Read through the Salesforce customizations at www.npsphelper.com/admin
Custom Fields have properties like:
o Data
Type
o Field
Label
o Field
Name
o Required
checkbox
o Description
o Default
Value
Examples of valid field types are
Field
Type
|
Comments
|
Text
|
Text
can be upto 255 characters
|
Text
Area
|
Text
Area can be either 255 characters or 32K characters
|
URL
|
|
Picklist
|
Can
be single select or mult-select. The developer needs to provide valid values
|
Currency
|
|
Checkbox
|
|
Percent
|
|
Number
|
The field types are aligned to user interface elements like
picklist and checkbox.
Changing the data type of existing custom fields is possible, but
doing so may cause data loss.
Fields can be set as unique, required or as external id. A
required field is always displayed in the edit page. A field of type external
id is a record id from another system. The performance of reports and SOQL is
better for fields defined as external ids. Fields of type number, text and
email can be set as external id. Each object can have up to three external ids.
A field defined as encrypted is not visible to users. Typical
usage of encrypted field is for password. Only users with "View Encrypted
Data" can view the encrypted fields. Encrypted fields are editable.
0. This
is a provisioned feature, so you must contact Salesforce to enable it.
1. Encrypted
custom field cannot be unique, an external ID, or have default values.
Objects can have upto 500 custom fields.
When an object is created, a user interface is created
automatically for Create, Update, Read and Delete operations.
Fields of two Picklists can be made dependent on each other. As an
example consider an application with customers in US and Canada. If there are
two picklists - one for country and the other for state. Based upon user's
selections of country, the state settings need to get updated. This is
implemented by defining controlling and dependent picklists. In the above
scenario, country becomes the controlling picklist and state becomes dependent
picklist. The controlling and dependent picklists are defined using "Field
Dependency" button in "Custom Field and Relationship" section.
Standard picklist can be controlling picklist but not dependent
picklist. Maximum number of values allowed in controlling field is 300. A
custom multi-select picklist cannot be controlling field in a picklist.
Merge fields are fields that display values based upon formula
calculations.
Salesforce supports history tracking on change in values of
fields. This can be enabled for up to 20 fields in an object.
Custom objects can be represented using a Metadata XML.
Deleted data and metadata is stored in recycle bin.
Database tuning is managed by Salesforce. How Objects and fields
are stored in the database is internal to Salesforce.
Object
Relationships
Force.com allows you to create relationship between objects. The
"Custom Fields & Relationship" section of objects is used to
define relationship between objects.
There are a two types of object relationships that Salesforce
supports -
.
Lookup relationship
A. Master-detail
relationship
These relationships are used to implement one-to-many
relationship. They are created as fields in the child record. As an example in
a recruitment application if one applicant can have many interviewFeedbacks, we
could create a lookup (or master detail) relationship in the interviewFeedback
object pointing to the applicant object.
Read through the Relationships at www.npsphelper.com/admin
Read through the Relationships at www.npsphelper.com/admin
In Master Detail relationship, if the parent record is deleted, then
all its children records are deleted.
Child records in master-detail relationship do not have owners.
They inherit ownership from the parent record.
In Master detail relationship, the parent field is required. Also
the parent field once specified cannot be changed.
Standard Object cannot be on detail side of Master-Detail
relationship.
In the related list section of parent objects, only one field of
the child object is displayed by default. This is the field specified as Record
Name in the child object. To add more fields, search lookup layout needs to be
updated.
Rollup-summary fields are supported in master detail relationship.
The parent object can use roll-up summary field type to perform operations of
sum, maximum, minimum, count among its children records. These fields are read
only fields and are used to calculate values from a set of records.
Many-to-Many relationships are implemented using two master-detail
objects. One Junction object is used as the child of the objects between which
many-to-many relationship needs to be established.
Read through the Junction Objects at www.npsphelper.com/admin
Read through the Junction Objects at www.npsphelper.com/admin
The table below compares Master Detail and Lookup relationship
Lookup
relationship
|
Master
Detail relationship
|
|
Is
Parent a required field
|
No
|
Yes
|
Maximum
number of relationship in an object
|
25
|
2
|
Security
of parent determines child record's access
|
No
|
Yes
|
Deleting
parent record deletes children
|
No
|
Yes
|
Parent
can be a child in another relationship
|
Yes
|
No
|
Roll-up
summary in parent supported
|
No
|
Yes
|
Self relationship is a lookup relationship to itself. An example
usage could be organization chart where an employee's manager is also an
employee.
Hierarchy Relationship exists only for User object. In this,
developers create a manager field in User object to relate to another object.
Reports
and Dashboards in Salesforce
Salesforce provides powerful reporting and generation tools
on the data stored in the objects.
1. In
reports data displayed is as per running user's security access. Reports can be
run on both standard and custom objects. Reports are stored in folders. Users
with access to these folders can run the reports.
2. Reports
data is always generated in real time. When a report is saved, reports
configuration parameters are stored - but the generated data is not stored.
3. There
are three type of reports
A. Tabular
report. This is the most basic report. It displays just the row of records in a
table like format with grand total. Tabular reports cannot be used for
generating dashboards.
B. Summary
report. This is the most commonly type of report. It allows grouping of rows of
data. It supports sorting and displaying subtotals. For example in a recruiting
app, a summary report could be used to display open positions classified by
department name.
C. Matrix
report. This is the most complex report format. Matrix report summarize
information in a grid format. Matrix reports allows records to be grouped by
both columns and rows.
Summary and Matrix reports can be used to generate dashboards.
4. Reports
provide two options of exporting data into Excel.
A. Printable
View - Export report with formatting into Excel
B. Export
Details - Export raw data
5. Reports
present in public folders can be emailed to SalesForce users.
6. Report
display upto 2000 rows of data. Larger reports can be emailed to Excel.
7. Generation
of reports requires following steps.
A. Selection
of object
B. Selection
of report type
C. Select
type of information to be displayed (example count, average)
D. For summary
and matrix reports, specify how fields should be grouped
E. Select
columns on the report
F. Select
column order on the report
G. Specify
filtering criteria which should be used to select records
8. Custom
reports let the developers define which all fields should be available in a
report. Custom report allows user to change field names. Custom reports allow
developers to select related fields (upto four levels). The custom reports also
allow developers to add sections to group fields. Once a custom report is created
it is available in reports tab and user may create reports from it.
9. Object
relationships that are supported by Custom Report Types are -
A. Include
all records that have children
B. Include
all records that may or may not have children
As an example consider a recruiting application with two custom
objects Position and InterviewFeedback. Also assume that InterviewFeedback is
the child of Position object. The first option above will display only those
Position objects that have at least one InterviewFeedback as their child. The
second option will display all Positions. It is not possible to display
Positions that do not have any InterviewFeedback using Salesforce's reporting
mechanism.
10. There
are three steps in creating custom reports -
A. Select
an object, folder and report label.
B. Select
related objects that need to be included.
C. Select
fields available for report using a drag-and-drop layout editor.
11. Custom
report types are available via the menu option Create-->Report Types
12. Analytical
snapshot allows reports run at scheduled time to be stored as objects.
Analytical snapshots are used to perform trend analysis. As an example if we
want to view how monthly sales are growing, fields in a report with sales
figure can be stored in a custom object every month using Analytical snapshot.
Data in this custom object can then be used to perform trend analysis.
13. Analytical
snapshot are available from the Data Management menu option. Source report in
Analytical snapshot can be of the type Tabular or Summary.
14. Setup
Analytical reports require a four step process
1. Select
source report
2. Select
custom object
3. Map
source report fields to custom object fields
4. Schedule
the frequency for taking the snapshots
There are two type of Reports
0. Standard
Report type
§ Created
when a object is created
§ created
when relationships between objects are created
§ Always
inner joins
§ Cannot
be modified.
1. Custom
Report type
§ Created
by Admin or users with “Manager Custom Report types”.
§ Used
to streamline the reporting process.
Key concepts on Custom Report Type
0. Saving
a custom report only saves the parameters of the report. The data is always
real time.
1. CRTs
are reporting templates that admin or users create to streamline the reporting
process.
Dashboard
Dashboards are graphical representation of reports. Dashboards can
be generated for summary or matrix reports (and not for tabular reports).
Dashboards display data as per last time report was run.
A dashboard can have upto 20 components
There are five type of dashboards
Chart
|
Used
for comparisons
|
Table
|
Good
for showing top five, bottom five lists.
|
Gauge
|
Used
to show progress towards a goal
|
Metric
|
Shows
a single number
|
VisualForce
page
|
used
to pull data from other sources
|
Further there are six type of charts
.
Vertical column
A. Horizontal
bar
B. Line
C. Donut
D. Funnel
E. Pie
Funnel is used to show proportion of values against each
other. Pie is used to demonstrate proportion of single value against total.
Donut is used to demonstrate proportion of single value against total and also
show the total value.
The folder in which dashboards are stored determines which user
has access to running the dashboard. The dashboard data is based upon the
reports data. When a user views the drill-down report for a dashboard
component. running user's access permissions determine what data is displayed
on the drilldown report. Hence it is possible that the data in the drill down
report does not match the cumulative dashboard data.
Dashboard also support automatic refresh and email. The refresh
and email can also be scheduled at intervals - daily, weekly, monthly.
Two things that determine access to dashboards:
o Dashboard
Folder
o Running
User
Limitations
of Salesforce reports
Although fairly powerful, Salesforce reports have certain
limitations. These are explained below.
.
Support for trend analysis in Salesforce is fairly limited.
A. User
Interface of Salesforce reports and dashboards is fixed. Salesforce does not
support pixel perfect report.
B. Salesforce
reports do not support importing data from other sources
C. When
displaying objects and their children, Salesforce does not support reporting on
objects that do not have any children.
D. If
an object has two different related lists, then Salesforce reporting does not
support displaying both these related lists together.
To work-around these limitations, Salesforce customers have the
following three options.
.
Reporting as a service: Data resides on Salesforce. New Reports
get generated from same data source
A. BI
as a service: Data is moved to a different destination on cloud. Reporting is
performed on this new data server.
B. Datawarehousing
as a service: Data is exported to the customers server and reports are
generated from the server located at customers location.
Overview
of Security in Force.com development platform
1. Every
user in Salesforce has a profile. Profiles are of two types.
A. Standard
profile
B. Custom
profile
A user's profiles determines access to objects, and fields in
objects.
2. There
are six type of standard profiles -
A. Standard
user
B. System
Administrator
C. Contract
Manager
D. Marketing
User
E. Read
Only
F. Solution
Manager
3. Profiles
control-
A. The
objects the user can access
B. The
fields of the object the user can access
C. The
tabs the user can access
D. The
apps the user can access
E. The
page layout that is assigned to the user
F. The
record types available to the user
4. Standard
profiles cannot be deleted. Access permissions to objects (and their fields) of
standard profiles cannot be edited. Standard profiles have access to all standard
objects. Read-only profile have read-only access to objects. However access to
tabs and applications can be configured for standard profiles.
5. Access
permissions of Custom profiles can be edited. Custom Profiles are created by
developers by cloning from a standard profile.
6. For
each profile one application has default status.
7. Record
Types are associated with profiles. Record type play two important roles in
Salesforce -
A. They
help define values to be shown in picklist for different profiles.
B. They
are used to define a mapping between page layout and profiles. This ensures
that different users are displayed different views of the same page, depending
upon the layout template selected.
8. A
record is an instance of an object. To create record types and profiles check
out this link www.npsphelper.com/admin
9. Removing
a field from page layout does not ensure that security of that field. The field
may still be accessible using the API.
10. Security
in Salesforce is defined at multiple levels. These levels are -
A. Security
at object level
B. Security
at field level
C. Security
at record level
i.
Organization-wide defaults
ii.
Role-hierarchy
iii.
Sharing rules
iv.
Manual Sharing
11. Object
level security is given to profile level. Object level security is set up via
Manage Users-->Profile section. Access for Read, Create, Edit & Delete
can be set at standard and custom objects.
12. Field-level
security is also applied at profile level. The field-level security is
available via the "Set Field-level security" button in the field
definition page. At field level, for each profile valid settings are Visible
and Read-only.
When a user logs in the list of objects that are displayed
to her is determined by object level security, and list of fields that are
displayed to the user is determined by field level security settings of that
profile.
13. The
next set of security concepts work at record level. These constraints determine
which records should be displayed to the users. The four constraints that
determine record level access are - organization-wide defaults, role-hierarchy,
sharing rules and manual sharing.
14. OWD
stands for Organization wide defaults. This setting is defined at object level.
OWD defined the default record level sharing for objects. All profiles get at
least the privileges defined in OWD. OWD takes three different values -
A. Private
(Cant view and edit)
B. Public
Read only (Can view)
C. Public
Read-Write (Can view and edit)
15. Key
concepts about Organization wide default -
1. To
find out what should be set as OWD for an object, first find out which user
requires least access to an object. OWD is set based upon this users access
requirement.
2. Most
restrictive record access is defined using OWD. Access to additional records is
made available through Role hierarchy, Sharing rules, Manual sharing.
3. We
can set OWD settings for both Standard and Custom Objects.
4. Changing
OWD settings can delete Manual Sharing if that sharing is no longer needed.
5. Public
Read/Write is default OWD settings.
Role Hierarchy allows additional users access to records. A
hierarchy of roles is defined based upon access requirements at record level.
Each user belongs to a unique role. If a role has access to some record, than
its parent and ancestors will also have access to this record. Roles can be
created using the Manager Users menu. Roles are used to control record access,
where as profiles are used to specify access at object and field level.
Public group used in a sharing rule. It is used to give access to folders.
It consists of users, roles or "roles and subordinates". The default
Public Group is “Entire Organization”. We cannot assign Public Groups to
profiles.
Another related concept that Salesforce defines is Public group.
Public group consists of users, roles or "roles and subordinates".
Sharing rule is defined using public groups. Record that match
certain condition can be assigned to users in public groups using Sharing
Rules. Sharing rules functionality is available via the menu Sharing Settings.
Manual Sharing is used to grant one-off access. Manual sharing can
be granted by record owner, any one above the owner in role hierarchy and
System Administrator. Manual sharing is used to handle exception cases where
access to a particular record needs to be given to a specific user. There is a
Sharing button on the records page. This is used to provide manual sharing. The
Ownership of the record can be transferred to any user who has at least Read
permission on the record.
If the Read permission for the object is revoked from the users
profile, the user will not be able to see their own record.
Full access to the records means user can View, Edit, Transfer
Ownership, Delete and Share the record. Full access is granted to:
o Record
Owner
o Users
above record owner in role hierarchy.
o Users
with “Modify All Data “ permission i.e. Admin
Apex Sharing Reasons can have upto 10 Apex Sharing Reasons. It can
only be given for Custom Objects.
Salesforce
Sites
1. User
Interface can be private (internal Salesforce users) or public. Public
interfaces are provided to anonymous users using Sites - anyone could access a
website built on Sites without having a Salesforce login.
2. If
Sites is licensed, the functionality of Sites is available at
Develop-->Sites.
3. A
sites user has a unique domain name. One domain name can be used to support
multiple websites. Example domain name could be -
http://ap1.mydomain.salesforce.com/siteName . The domain name must be unique
among all site users and can represent the organization's name.
4. Creation
of sites requires specifying fields like Site label, Site Name, Site contact,
Default web address, active site home page, inactive site home page.
5. Once
an organization has registered a domain name with a domain name registrar, it
can point the url to sites url.
6. Site
template is a VisualForce page that defines the default look-and-feel of the
sites page.
7. Force.com
sites are
1. Public,
unauthenticated websites
2. Accessed
from branded domain names
3. Build
with VF pages
4. From
data and content in a Salesforce application
8. Creating
a Force.com Site requires performing the following steps
1. Build
a Force.com App
2. Design
your web interface in visual force
3. Create
a Force.com site
4. Activate
the Force.com site
9. Key
concepts about Force.com Sites security
1. Security
for your site is controlled through public Access Settings
2. Access
can also be restricted by specifying an IP range.
VisualForce
1. SalesForce
provides two ways to build user interfaces. These are Page Builder and
VisualForce. PageBuilder automatically generates pages with default
look-and-feel. VisualForce allows developers to define their own user
interface.
2. VisualForce
plays the role of JSP or ASP in SalesForce. It is used to develop user
interface for SalesForce applications.
3. Standard
tags are included in VisualForce using apex keyword. As an example the top
level tag in VisualForce is <apex:page>.Rest of the code is included in
<apex:page>. Custom tags use tags use the prefix c:.
4. The
syntax to access fields in VisualForce is {!object.Field}. The expression in
between {!} is evaluated. $User gives the details of the user that is logged
in. {!$User.FirstName} displays the first name of the logged in user.
5. A
VisualForce page contains HTML, VisualForce components, JavaScript, Flash and text.
All elements need to be well-formed. Visual Force gets converted into HTML at
the server.
6. VisualForce
can be used to support other devices like phones, PDAs.
7.
<apex:inputfield
value="{!account.name}"/>
generates an input element. Based upon
the data type of account,name field, appropriate user interface element is
displayed (such as text box, pick list). This is an example of data binding.
The value of the name field is displayed in the user interface, and changes are
saved back to the object.
8.
<apex:form>
is used to display a form. Other
VisualForce display elements like text box, checkbox are included in a form.
9.
<apex:detail/>
is used to print the details page for an
object. If the attribute "relatedlist" is set to false, then related
lists are not displayed. Specific related lists can be added using the
VisualForce component <apex:relatedlist>
10. VisualForce
supports development mode. Development mode can be enabled using Setup|My
Personal Information}Personal Information. In development mode, VisualForce
provides two main features.
A. Split
screen development: In this the browser window is divided into two parts. The
bottom part is used to show VisualForce code. Changes can be saved and
resulting page is displayed on the same browser window.
B. Creation
of new pages by just typing the URL www.servername.com/apex/PageName where
servername is the SalesForce server that is allocated to you.
11. Page
layouts support one or two columns. VisualForce can support more than two
columns.
12. Previous
version of VisualForce is S-controls. It is now being phased out. Visual force
two advantages over S-control
A. Visual
force having much better performance as compared to S - control.
B. Visual
force is a tag Markup language and S - controls are a javascript procedural code
language.
13. VisualForce
components and pages have version numbers. SalesForce stores the version
numbers along with pages. All older versions are supported.
14. VisualForce
elements take attributes similar to XML format. As an example in the statement
below, sidebars and top headers are not displayed.
<apex:page
showHeader="false">
</apex:page>
<apex:page>
also takes an attribute renderAs
as input which supports pdf
generation.
15. Record's
id is sent via request parameter, and made available to the page. In the above
example the id identifies the account for which name has to be displayed.
16. VisualForce
consists of three type of elements
A. VisualForce
pages: These are used to define the user interface. VisualForce pages support
multiple devices
B. VisualForce
components: Standard prebuilt or custom user interface components available
through a tag library
C. VisualForce
controllers:<="" li="">
17. There
are three type of controllers -
Standard Controller
The standard controllers provide access to standard Salesforce.com
behavior.
<:apex:page
standardController="Account">
They are available for all API
entities/objects, such as Account, Contact, Opportunity etc as well as custom
objects. They Provide access to standard Salesforce data and behavior -
Standard object record data and Standard actions like save, edit , delete.
Custom Controller
Custom Controllers is used for custom behavior or non-standard
data-sets.
<:apex:page
controller="MyAccount">
They can be used to create wizards or
leverage call outs.
Controller Extensions
Controller Extensions extend the behavior of standard controllers.
<:apex:page
standardController="Contact" extensions="ClassA,
ClassB">
They
are used to add custom behaviour or additional data to controllers
18. Static
resources are accessible through global variables
$Resource
.
It can be used to access CSS stylesheets, images, flash movies and JavaScript
libraries.
19. Error
messages are displayed in pageMessages component and can be displayed by the
statement <apex:pageMessages/>
20. To
perform the save operation, the save() method can be invoked on the object.
This is an example of action binding. <apex:commandButton
value="Save" action={!save}"/>
21. The
look-and-feel of VisualForce is managed using StyleSheets. Default SalesForce
look-and-feel can be changed.
22. The
size of VisualForce page cannot be more than 15MB.
23. Web
Services can also be invoked from VisualForce.
Layout
Editors
24. Layout
editor provides a drag-and-drop interface to define the user interface. Using
Layout editor, fields of a page can be moved around, sections and space can be
added.
25. Layout
editor supports one-column and two-column layout.
26. Double-clicking
on a field allows fields to be made read-only and required.
II. Analytics as a
Service:
1. Introduction to Reports
- Reports
can include both standard & custom objects
- two
users with different access levels see different data with the same report
- objects
& fields are available immediately after they get created
- reports
run in real-time data
- reports
are saved in folder, report security is determined by folder where report
is stored.
- System
administrator and users with ‘Manage public reports’ permissions can
manage the folders
- Custom
Report
- 3
panes – fields, fitlers & preview
- 4
types of reports:
- tabular
– simple listing of data
- summary
– sorting and sub totalling
- matrix
– summarizes data in grid (to compare related totals)
- joined
– can contain data from multiple standard or custom report types
- can customize by adding more columns, but cannot deselect
action & name columns
- the
way the type of report to be created can be identified by:
- Select
Data
- Select
Report Type
- Select
Summaries
- Select
Groupings
- Select
Filters
- scheduled reports run at user’s timezone who scheduled it
- to
run a report, the report must be in a public folder and the user has to
have access to it
- Hide
Details – will show only summary rows, Show Details will show all the
data
- report
shows only upto 2000 reports, beyond that the user can export to excel
- Printable
view – exports data to excel with the report formatting
- Export
Details – exports raw data to excel (no report format will be retained)
2. Introduction to Dashboards
- Dashboard
– contains components based on report or chart, can use VF pages to
present data, shows data as of the last time it refreshed, can be
refreshed manually
- dashboard
can have upto 20 components
- can
choose either 2 or 3 columns
- dashboard
components
- chart
– good for comparisons, is based on report data and the field which you
summarize the report is the field that you see on the dashboard
- table
– shows the top/bottom n records, can be used to display totals also, can
include upto 4 columns
- guage
– shows progress towards goals, display percentage or total
- metric
– shows single number (grand total)
- visual
force page – pulls data from another source
- can follow individual components through dashboard alerts and
snapshots
- can
post component’s snapshot to dashboard feed to chatter or dashboard feed
- chart
types
- vertical
column – summary report with single grouping. variations: vertical col:
grouped, stacked, stacked 200%, good for showing dates
- horizontal
bar – good for summary with single grouping. horizontal grouped, stacked,
stacked 200%
- line
– specially used to show data over time
- donut
chart – good for multiple groupings with total amount
- funnel
– good for datasets for multiple groupings in ordered sets and want to
show the proportions among them
- pie
– multiple groupings and want to show proportion of single value for each
groupings against total
- scatter
– illustrate degree of correlation between two axis
- combination
charts – that includes different sets of data
- dashboard security
- dashboard
folder – controls who sees the folder
- running
user – controls what data is displayed on the dashboard
- clicking a dashboard component takes users to underlying
source report, filtered source report or another url that the dashboard
creator specifies
- can drill down to single record, but user will see that the
security model will allow to see
- report access is determined by folders
- it is possible to see a dashboard component, but not the
underlying report
- Dashboard filters
- let
users chose which data to chose
- each
filter based on single field, can specify upto 10 filter options
- enables
users to view different subsets of data on the same dashboard
- each
dashboard can have upto 3 filters
- filters
can be created on date, datetime, currency, pickup, lookup and text
fields
- filters
cannot be added with visual force components, scontrol conponents
- cannot
use filters for bucket fields, filter components cannot be followed on
chatter
- scheduling
or emailing a filtered dashboard will return unfiltered data
- Dashboard display info as of date
- can
be refreshed daily, weekly, monthly
3. Custom Report Types
- Standard Report Types
- created, when an object is
created, allows to report relationships between objects are created
(similar to inner joins)
- the report types cannot be
modified
- Custom Report Types (CRT)
- unique templates for creating
reports, created by administrators or users with ‘Manage Custom Report
Types’
- can include standard or custom
objects, allows users to select the objects and fields that should be
related for reporting purposes
- Enable the creation of “with or
without” reports
- Three steps to create a report
based on CRT:
- select the primary object
- select related records from
other objects (optional)
- can chose upto 4 objects,
chose “with or without” for each related object (similar to outer join)
- Add fields related via lookup
(optional)
- traverse multiple objects
- use lookups to join other
objects
- can go upto 4 levels deep,
supports many to many relationships
- primary object cannot be
changed after the CRT is created
- there is a limit on # of
CRTs (depends on SF edition)
- counting rows
- standard reports show all rows
from both the objects (positions & job applications)
- what if you want to see only
unique rows so that within a report of both job applications &
positions, you could see how many job apps you have or how many positions
you have.
- in this case, need to create a
report that uses custom field to count the # of records
- two step process
- create a new formula field
- run a report that utilizes
this new field
- to create custom summary
formula: 3 steps
- create formula fields to count
the number of records for each object
- create custom summary formula
to calculate the ratio between the number of records for each object
- optional: create a dashboard
component that will show the ratio between the two numbers
- Bucketing – helps
qualifying the data (for e.g. Not qualified, Qualified, Highly Qualified –
for candidates)
- create a new formula field to
group the information
- create or update a report that
utilizes the new field
- create or update a dashboard
component using the new or updated report
4. Analytic Snapshots
- provides trending, can be
scheduled
- schedule the report and capture
the data in custom object and report on the data in the custom object to
view historical data and analyze trends
- can be created in 3 steps:
- create source report
(tab/summary)
- create the target object
(custom). Fields in target object should have same type as in the source
object that included in the source report
- setup the analytic snapshot
- select the source report,
select the target object, map the fields on the report to the fields on
the custom object and schedule the frequency for taking the snapshot
5.Going Beyond Salesforce Reports
- exception reports are available
in a few places, but not everywhere
- no reporting on multiple
related lists (using crt, you can include custom objects that are
hierarchically related
- there is only one layout or UI
for the reports
- Salesforce reports don’t
provide trending capabilities beyond analytic snapshots
- Salesforce reports provide
limited analysis of what changed bet two dates
- can’t include data in sf report
from another source
- RaaS -that uses Salesforce as a
source – then reports on the data by running multiple queries
- BIaaS – copies all data to
local repository, then runs queries off of the copy of the data
(data repository is provided as a service)
- Data Warehousing – similary to
BIaaS, but you own the servers.
III. Data Management
1. Data Management Overview
- Id – first 3 chars identify the
object – account ,contact, custom obj, …
- can access id through – URL,
Report, Web Services API, Formulas
- Format of record ids:
- 15 digit case sensitive
- a column in report is
displayed as 15 digit
- 18 digit case insensitive
- web services api always return
18 digit
- the api always returns 18
digit
- the report framework doesn’t
expose IDs for all objects
- System fields
- Created Date, Created By, Last
Modified Date, Last Modified By – these fields can be set only during the
initial setup
- only accessible through API
and backward compatible with all SOAP based APIs
- available to all custom
objects, but restricted to account, opportunity, contact, lead, case,
task and event standard objects
- for updates, api will accept
either the 15 digit or 18 digit
2. Basics of Upsert & External ID
- Upsert – insert + update
- External Id
- user defined cross reference
field
- can be created for any custom
field of type text, number or email
- helps improve report & API
SOQL performance
- each object can have upto 3
external ids
- if the external id is
matched multiple times, an error is reported
3. Data Management Tools
- Tools to migrate data
- application importing wizards
- web service APIs
- Data Loader, Partner Tools,
Custom-built Tools, Open Source Tools
- import wizards
- can load upto 50,000 records –
accounts, contacts, leads, solutions or custom objects
- prevent duplication of data
contact, leads, custom objects
- API based tools
- can load data to any object
supported by API
- can load more than 50,000
records
- can schedule regular data
loads
- export data for backup
- delete multiple supported
objects at the same time
- Data Loader
- can be run from command line
- support custom relationships
for upsert
- supports importing from and
exporting data to a CSV file
- supports loading from and
exporting data to a database through JDBC
- available for downlaod in
Unlimided Edition, Enterprise Edition & Developer Edition, also available
as open source but no support
- Export – uses SOQL to
export records from SF to CSV
- Insert – inserts new
records
- Update – updates existing
records and matches records based on the Salesforce id
- Upsert – insert + update,
matches based on either Salesforce id or external id
- delete – deletes records from,
matches based on Salesforce id
4. Managing Data
- command line
- can set the config directory
- data loader runs whatever
operation, file or map that is specified in the config file
- runs the current directory if
no config diretory is specified
- default config file location:
c:\program files\salesforce.com\dataloader\version\samples\conf
- if you
use process-conf.xml, setting process.name to the name of
a process specifies a process to run. Otherwise, the config.properties
file is used for parameter settings
- supports extract, insert,
update, upsert, delete
- offers encryption utility:
Run\bin\encrypt.bat
- Generate a key: key text is
generated onscreen from the text provided
- Encrypt text: (key file can
be provided optionally)
- Verify encrypted text
- mass transfer tool to
upsert mass data – can be used to transfer multiple accounts, leads from
one user to another
- need ‘Transfer record’ and
‘Edit’ permissions
- to transfer a record that a
user doesn’t own, the user needs to have the required user permissions
and read sharing acces on the record
IV: Designing
Applications for Multiple Users
1. Design Considerations
- need to know the users or
actors of the app
- need to identify
- data that can be accessed by
users
- data restrictions and revoke
access from such sensitive data
- users who should be allowed to
customize the app and assign the necessary permissions
2. Managing your user’s experience
- Types
of licenses
- every
user must have a user license
- defines
the fucntionality permitted for the user and determines the profile
available to the user
- can
have only type of user license, but may have many feature licenses
- Two types of license
- Salesforce
- full
access to CRM, force.com appexchange apps, standard or custom
apps
- full
access to CRM, force.com appexchange apps, standard or custom
apps
- Salesforce Platform
- custom
apps, force.com appexchange apps, no access to CRM
functionality, can still use accounts, leads, contacts, reports,
dashboards and documents
- can
have add-on features, such as apex mobile user, sf crm content user,
marketing user
- can have more than one type of feature license
- Profiles
- define user permissions to perform different functions
- each
profile is associated with a license type
- profile
work with sharing models or role hierarchy
- profiles control permissions, access to data and the UI
- Permissions
- define
all actions that a user in a profile can perform
- access to data
- controlled
by field level security settings which allow to define object and field
level permissions
- user interface
- page
layouts, tabs, applications available for each user, record types for
each profile determine what the users will see when they login
- two types of profiles
- standard
- can’t
be created or deleted and permissions cannot be customized
- custom
- create
or clone the standard profile and modify the settings
- types
of permissions
- Administrative
- can grant some administrative permissions to custom
profile
- General
User
- control the ability that standard user can do like editing
tasks
- Standard
Object
- control read, create, edit and delete action on standard
objects
- Custom
Object
- control read, create, edit and delete actions on custom
objects
- View
All Data allows administrators to view all records regardless of all
other security settings
- Modify all Data – allows administratos to modify all
records
- Customize Application permits administrators to administer
the application
- API only user cannot login to sf.com. such users can only
use the application through API calls
- Password Never Expires prevents password expiring
- Permission
Sets
- collection
of settings and permissions
- represent
a concept like job title
- handle
the system requirements that previously existed on the profiles
- user can have only one profile, but can have multiple permission
sets
- while
assigning permissiosn to users, use profile to assign most restrictive
settings and assign additional permissions using permission sets
- an
org can have upto 1000 permission sets
- permission
sets can be used assign additional permissions, but not to deny
permissions
- permissions
can be revoked by
- removing
permission from permission set
- changing
a user’s profile
- disabling
a permission set
- use permission sets to grant permissions for
- applications,
objects, fields, tabs, apex classes, service provider, visual force
pages
- permissions that are not available in permission sets must
be set through profiles (login hours, ip access, etc)
- revoking
delete permission for a child object in master child relationship will
not prevent deleting the child record if parent record is deleted
- Field-Level Security
- restricts
access to fields
- list
views, reports, force.com, conenct offline, custom links, mail
merge, related lists
- overrides less restrictive page layout settings
- set
at profile level
- each
profile can have different level of access to object
- doesn’t
allow conditional security of records
- all
users can edit any accessible fields
- Customizing UI and Profiles
- Record
types
- define
the manner in which data is displayed according to business needs
- determine
the page layout and limit the picklist options based on the profile
- not
security tools – do not subclass or partition the data, they work at the
UI level and not at the data level
- users
can change the record type of an existing record and it does not affect
the values in the record
3. Controlling access to records
- Record
ownership
- has
a owner, sharing based on owner of a record, can be transferred to any
user who atleast has read access
- child
records in master detail relationship do not have owner, they inherit
from parent record
- Types of owners
- users
– full access if a user is owner. if read permission revoked, then they
can’t see their own record
- queues
– allows multiple ownership, assigned manually or thru assignment rules
- Record Access
- read
only access, read-write access, full access
- Ways to obtain record access
- Full
access: owner, above the owner in role hierarchy, contains modify all
data permission in profile
- Read/Write
or Read only: owd, role hierarchy, sharing rules, manual sharing, apex
sharing, view all data
- Profiles vs Sharing Models
- profiles
- control
access to objects and fields
- whether
user can view positions
- which
fields the user can view
- Sharing models
- control
access to records
- control
the positions to view
- OWD
- security
settings that define the base line level of access to records that the
user doesn’t own
- only
way to restricts access to data in sharing model
- 3
level of settings
- public
read-write
- public
read only
- private
- Determining OWD
- identify
the most restricted user of this object
- will
there be an instance of object that this user is not allowed to view
- if
yes, then owd is private
- else,
- will
there be an instance of object that this user is not allowed to edit
- if
yes, then owd is public read only
- else, then
owd is public read-write
- setting
owd for child records in master-detail relationship – child
inherits owd from parents
- child
records in lookup will not inherit owd
- it
is possible to change owd any time, but it may have consequences
- owd
can be set for both standard & custom objects
- Roles
- control
the level of visibility to org data
- every
user associated to role
- assuming
no sharing rules created, users in the same role cannot access each
other’s records
- Role Hierarchy
- defines
data access rights granted to users at higher roles
- users
access to all records they own and their sub-ordinates
- record access rolls up with role hierarchy with all standard
objects
- with
custom objects, a setting named ‘Grant Access using Role Hierarchy’, this
can be prevented
- Public
Groups
- Roles
are two dimensional structures. Public groups are way of grouping users
together to grant them record access.
- Groups
are good way to extend access across the nodes in hierarchy tree
- ‘All
Internal users’ is a default public group. Public groups can be made up
of any combination of users, roles and subordinates and other public
groups.
- Can
use public groups in a sharing rule to reduce the number of sharing rules
- Public
groups can also be used for folder access.
- Sharing rules
- are
created to grant access to records between users when access does not
roll up
- Using
sharing rules, read only and read/write access can be granted to users
- Sharing
rules cannot be more restrictive than owd settings.
- Manual Sharing
- used
to grant access to records on a one-off basis when randon users require
record access.
- Access
rights can be granted by the owner of a record, anyone above the owner in
the role hierarchy and by the system adminsitrator
- It
is granted at the record level and is not used to grant access at the
organization level
- Apex sharing reasons
- allow
developers to define the reason why a user or group of users have access
to record
- apex
sharing reasons exist only for custom objects and they are defined for
individual objects.
- each
object can have up to 10 apex sharing reasons
- sharing
rule has to be created manually using new manual sharing rules
- deleting
apex sharing reasons will delete all manual sharing rules associated with
it
- Users
with ‘Modify all data’ permission can change sharing using apex sharing
reasons
- apex
sharing reasons should be used programatically and not through the
application
4. Designing Data Access Security
- Establishing
Data Access
- When
you want to determine data access for a object,
- consider
the OWD default
- the
owner of the records
- uses
who need access
- rules
governing data access
- When determining access to sensitive data, you need to
analyze the access requirements and restrictions for each profile
Exam Outline for Implementing Business Process
Business
Logic
|
23 %
|
List and describe how to create
formulas, validation rules, and workflow rules
|
|
Given a scenario, determine
which Force.com feature to use to solve a business requirement
and/or describe how to apply the solution
|
|
List and describe the capabilities
of the Force.com approval processes
|
|
Given a scenario, select the
appropriate features of Force.com approval processes to satisfy
business requirements
|
|
List and describe the features of
the Force.com platform for debugging and monitoring automated
business processes
|
|
Describe use cases for extending
business logic through Force.com code
|
V. Implementing
Business Process
1. Implenting Business Processes
- can
be used for
- preserving
data quality
- automatic
processes
- keeping
processes from getting ‘stuck’
- keeping
systems in sync
- auditing
- Features
- Formula
fields
- Validation
rules
- Approval
process
- Workflow
Rules
- Outbound
Messaging
- Field
History Tracking
- Setup
Audit Trail
- Functions
- ischanged
– compares with previous value and returns true if it is changed
- priorvalue
– returns the previous value of the field
- isnew
– checks if a formula is running during creation of new record and
returns true if it is
- ispickval
– determines if the value of pickuplist is equal to specified string
- regex
– string used to describe the format of the string according to certain
syntax rules. It compares a text field to regular expression and returns
true, if there is a match
- vlookup
– returns value by looking up a record value in a custom object. It
checks against a key and returns value from that key.
- isnumber
– returns true if a text value is number
- case
– checks against a series of values
- image
– inserts an image
- htmlencode
– encodes text stings and merge field values for use in html (e.g.
‘<‘)
- jsencode
– encodes text strings and merge field values for use in javascript (e.g.
apostrophe)
- jsinhtmlencode
– encodes text strings and merge field values for use in javascript
within html tags
- urlencode
– encodes text strings and merge field values for use in URLs
- System Logs
- display
logging info, cumulative limits and source code of transaction
- used
for debugging code snippets
- used
to view debug log or execute anonymous code blocks
- display
system resource info
- Log levels
- from
lowest to highest
- Error
– lowest, produces distinct results and only error messages
- warn
– warn and error
- info
– info, warn and error
- debug
– includes low level and calls to system.debug
- Fine/Finer
– system.debug, dml, soql/sosl, entrance and exit
- Finest
– includes all messages in previous levels and on apex scripts
- Debug Logs
- contain
info on database changes, automated workflow processes, validation rules
- request-response
xml, apex script errors, and resources used by an apex script
- records
errors and system processes that occur in an org
- can
be retained and managed for specific users
- 20
logs can be retained for an org, when max is reached, oldest one is
overwritten
- debug
log is different system log
- system
log refers to console link at the top of the page
- underlying
logging system is same
- sysetm
log is live console, debug log is persistent store
2. Preserving Data Quality
- Validation
Rules
- used
to verify that the data entered meets the standards before the user saves
the record.
- Can
contain formulas or expressions that evaluate the data in one or more
fields
- return
true or false
- are
executed for fields that are stored in the object, but not part of the
displayed page layout
- can be used for
- enforce
conditionally required fields
- enforce
required data formats
- enforce
data consistency
- prevent
data loss
- can be used in conjunction with a roll-up summary field can
be used to prevent users from adding or deleting records
3. Automating Business Processes with Workflow
- Workflow
Rules
- Entry
Criteria then Immediate Actions or Time dependent actions
- Steps
- Specify
the object (both standard & custom objects are ok)
- Select
Evaluation Criteria
- only
when a record is created
- when
it’s created or edited and now meets the cirteria
- every
single time the record is created or updated
- Define rule criteria
- filters
or formulas
- Workflow Actions: immediate or later time
- Tasks
– can be assigned to user, role or record owner
- Email
Alerts – can send email to one or more recipients (from address can be
current user address or org wide address)
- Field
Updates – can update a field value on a record (including record
type/owner)
- Outbound
Messages – can send specific info to designated endpoint in form of
API/SOAP message
- Time-Dependent Workflow
- triggered
depending on elapsed time (evaluated off of any date field in
Salesforce)
- time-dependent
actions have a time trigger
- the
action is queued to fire
- Some considerations
- cannot
use time-dependent workflow when a rule is set for evaluation, every
time a record is created or updated
- when
a new workflow rule is created, it does not affect existing records
- can
monitor and remove pending actions by viewing the time-dependent
workflow queue
- if
a record that has an action pending against it in the time-based
workflow queue is modified so that the record no longer meets the
criteria or the timing changes, the action will be updated in the queue
- if
a record no longer meets the time-based workflow rule criteria, the
action is removed from queue
4. Automating business processes with Approval
Processes
- automates
routing of records for approval
- contain
one or more steps and can be logically split into 6 steps
- not
automatically sent for approval, user has to submit
- steps
- process
definition
- it
is determined which records should enter the process and what settings
should apply to the whole process.
- initial submission actions
- developers
decide what happens to a record after it is submitted for approval –
actions are locking a record, assigning a task, sending an email,
updating a field, sending an outbound message
- step definition
- developers
determine whether all records should enter the step or whether records
only meeting the criteria are chosen.
- if
later is chosen, developer defines the criteria for entry to the step.
developer also assigns the approver and determine whether the approver
can delegate
- if
there are multiple steps, developers can decide what should happen if a
record is rejected at a step after the first step: should it go back
one step, or should it be considered a final rejection
- final
rejection actions
- developers
define the actions to be taken when a record is rejected
- actions
are: unlock a record, assign a task, send an email, update a field, send
an outbound message
- final approval actions
- developers
define actions to be taken when a record is approved
- actions
are: unlock a record, assign a task, send an email, update a field, send
an outbound message
- recall actions
- developers
define actions to be taken when a record is recalled from the process.
- Workflow
Rule vs Approval Process
- Workflow
rule
- are
triggered upon save
- consist
of one set of criteria and actions
- can
be modified or deleted
- Approval process
- triggered
only when a user clicks submit for approval
- consist
of multiple steps, have entry criteria, step criteria and step actions;
have initial submission actions, rejection and approval actions and
actions for each step
- some
attributes can’t be modified, processes must be deactivated before they
can be deleted
- Skipping
steps
- allows
developers to skip steps within an approval process based on specific
criteria
- skip
step is a step that has criteria defined to determine whether or not
approval is required
- 3
options
- go
to next step
- approve
record
- reject
record
- considerations
- Go
to next step” option is only available when editing a step that already
has an ensuing step (so first create ensuing step)
- selection
the “go to next step” option in a step and subsequently delete all
ensuing steps, sf changes the step to automatically reject record, if
the step criteria are not met
- selecting
the “go to next step” in the first step when the record does not meet
the criteria for any of the steps in the approval process, rejects the
record
- Parallel
approval process
- can send approval upto 25 different users simultaneously
- Dynamic
Approval Process
- Used to route records for approval based on complex approval
matrices
- Used to route approval requests to users listed in lookup
fields on the record requiring approval
- Steps
- create a lookup fields on the object beign approved
- uses
lookup relationship
- if
it requires 3 approvers, then create 3 lookup relationships
- Create a custom object as an approval matrix
- Populate
the approval matrix
- Create
Apex code to fill in the lookup fields from the approval matrix
- Create
or update an approval process to utilize the new lookup fields
- Automated
processes occur in the following order
- Validation
Rules->Assignment rules->Auto-Response rules->Workflow
rules->Escalation rules
5. Auditing Processes
- Setup
Audit Trail
- tracks
changes made to the setup of an org
- lists
the date of the change, the name of the user who made the change and a
description of the change
- displays
20 most recent changes
- tracks
changes for 180 days
- can
choose upto 20 fields per object for tracking changes
- Field History Tracking
- allows
to track the history related lists for cases, contacts, leads, opportunities,
solutions, accounts, contracts, and custom objects
- modification
to any standard or custom field, whose history is set to be tracked,
results in a new entry in the History related list
- for
most field types, both the old and new values are captured in the History
related list; however those values are not tracked for long text area and
multi-select picklist type fields
- tracks
changes for upto 20 fields
- 3 tools
- debug
logs, setup audit trail, field history
Exam Outline for Visual Force Pages
User Interface
|
15%
|
List and describe
the components of any Force.com application user interface (e.g.,
tabs, applications, detail pages, list views)
|
|
Given a scenario,
determine the capabilities and constraints of the declarative framework for
building a user interface (e.g., what can and can’t be done in a page layout)
|
|
Describe use cases
for how Force.com pages can extend the user interface in the
declarative framework and when to do so
|
|
Describe the
capabilities and functionality of Force.com sites
|
VI. Visual Force Pages
1. Introduction to Visualforce Pages
- 2
types of UI
- Page
Builder
- UI
generated automatically
- limited/no
control of UI behavior
- limited
control over look and feel, but all UIs are consistent
- Visualforce
- UI
generated by developer/technologist
- full
control of UI behavior
- full
‘pixel level’ control over UI
- Visualforce
& Apex
- closely
tied
- PE/GE
edition limitations prevent from authoring own apex (app exchange apps is
okay)
- Visualforce inline editor
- auto-completion
- full
syntax highlighting
- online
doc
- can
be edited through force.com id
- Developers can include
- VF
tags, Force.com expressions, HTML, Javascript, Flash
- VF
pages are limited to 15 MB
- view State
- maintains
state across multiple pages or server calls
- view
state inspector
- shows
components contributing to view state
- must
be enabled on user profile
- is
displayed only when using <apex:form>
- view state limit is 135 kb
- vf pages
- understand
Salesforce metadata
- display
the same performance as statndard sf pages
- are
automatically upgraded to the next sf release
- vf
conforms to mvc development patter
- MVC
- Model
– standard or custom object
- View
– pages that are presented to the end user
- Controller
– that determines the logic what happens initates an action such as clicking
on a tab, etc.
- 3 key elements
- Visualforce
pages
- design
definition of an app’s user interface
- implemented using standard web technologies like HTML &
javascript
- can
dynamically detect device and associate them with specific design
definitions
- Visualforce components
- can
be standard or custom UI components
- over
65 standard sf ui elements available at G
- referenced
via a tag library model
- Visualforce controllers
- ability
to reuse any standard Salesforce UI behavior like new, edit, save, etc
(standard controller) and have access to Salesforce data
- ability
to define new UI behaviors and navigation using apex (custom controller)
- Visualforce
Components
- pre-built
UI constructs which reference standard elements in the Salesforce UI
- referenced
in a VF page using an XML tag
- dynamic
visualforce components
- are
designed in apex
- allows
to create pages that render based on variety of states, such as user’s:
- permissions,
behavior, org preferences, data attributes
- are not intended to be the primary way to create new vf
pages
- Controllers
- contain
the logic and data references a page uses
- can
be used to maintain state across page interactions
- are
refernced or used by pages, through components that call data or actions
- each
page can reference or use standard controller, custom controller or
custom controller extensions
- each
vf page references one main controller
- types of visualforce components
- standard
controllers
- are
available for all API entities/objects as well as custom objects
- provide
access to standard sf data and behavior
- are
referenced by using <apex:page standardController=”Contact”>
- custom controllers
- are
coded to create custom behaviors or non standard data sets
- can
be used to create wizards or leverage callouts
- are
invoked by using <apex:page controller=”MyController”>
- cusom extensions
- add
custom behavior or additional data to standard controllers
- are
invoked by using <apex:page standardController=”Contact”
extensions=”MyClass, MyOtherClass”>
- Expressions
and Data Binding
- uses
expression syntax to bind components to sf data and actions in the page’s
controllers
- expressions
are linked back to controller data and actions not just to sf in general
- all
content in {!…} evaluated as an expression
- User.FirstName}
shows the current user’s first name in a page
- data
context is provided to controllers by the ID parameter, just as in
standard pages.
- Versioning
- backward
compatible
- each
vf page is saved with version settigns for specified version of api as
well specified version of visualforce
- Visualforce namespace
- standard
tags begin with the word apex
- custom
tags begin with the letter c
- user
can register custom namespaces to be displayed with custom tags instead
of the letter c
- Incorporating VF pages in Salesforce UI by
- creating
links to reference the unique page URL
- overriding
standard buttons to route to the new page
- overriding
tab overview pages to use the new page
- creating
custom tabs for the new page
- embedding
pages into page layouts
- adding
pages to a dashboard
- using
pages as custom help for a custom object
2. Visual Force Tags
- Tags
- consists
of library of tags
- can
incldue text, html, javascript tags
- can’t
use javascript commenting
- Tag Rules
- are
hierarchical
- must
be closed in the reversed order they were opened
- like
xml, vf must be well-formed
- VF
and JSP
- similar
to JSP
- typically
begins with <apex>
- all
pages must be enclosed by a set of <apex:page> tags
- components
may contain attributes with values to help further define them
- vf
components are resolved into other code at runtime
- Tag Bindings
- Bindings
related visual force components with the page controller or other page
components
- 3 types of bindings
- data
bindings – use expression systan to pull the data from dataset made
available by the page controller
- action
bindings – uses expression syntax to call action methods for functions
coded in page controller
- component
bindings – compnent attribute values to reference other components
- Tag
Data Binding
- binding
goes both ways – read and updated
- Expression syntax
- dynamic
object data can be inserted using {!objectname.fieldname} syntax
- global
data can be inserted with the added $ syntax, such as
- User.fieldName},
{!$Page.otherVisualforcePage}, {!$Component.otherVisualforceComponent}
- local variables can be created to stand in for these
expressions as they can become long and unwieldy using the
<apex:variable> tag.
- Action Binding
- set
of actions available through the controller
- can
be called using expression syntax
- they
can be
- standard
actions
- custom
actions
- Component
Ids
- all
vf tags have an optional id attribute
- this
id is used as the DOM id when the page is rendered
- the
tag can be referenced by the id by other tags, javascript, or other web
enabled languages
- the
ids should be unique within each page
- the
hierarchy of ids should be specified if the ids are not unique
- when
components (such as tables and lists) support iteration over record
collections, the system appends _index to the id for each row, starting
with zero.
3. Basic Page Components
- Layout
Components
- provides
a structure to the page
- provide
templates or frames to insert content
- do
not bind directly to sf data
- are
focused on areas where data-bound components can be placed
- tags
- apex:page
/> – represents a single vf page
- apex:variable
/> – provides a local variable that can be used to replace an
expression to reduce long and repetitive text
- Static
Resource Components
- a
type of sf storage
- designed
for use with vf
- items
required by the vf pages (such as javascript, css, images, etc…)
- referenced
using $Resource global variable
- recommended
method over uploading these files to document tab
- are
uploaded via Your Name|Setup|Develop|Static Resources
- can
be contained in an archive (zip)
- limited
to 5 MB per file and a 250 mb overall
- use
action attr to redirect
- Components
- <apex:stylesheet>
– to add additional css file
- are
located in /sCSS/directory
- dStandard.css –
most styles for standard objects/tabs
- allCustom.css –
styles for custom objects/tabs
- <apex:pageBlock>
- helps
build out pages and uses sf stylesheet by default
- creates
an area of a page that is similar to detail page and doesn’t contain
the default content
- <pageBlockButtons> – set of buttons that are styled
like standard sf buttons (buttons still need to be created manually)
- <pageBlockSection>
– must be used within a pageBlock component. This tag creates a section
with one or more columns
- <pageBlockSectionItem>
- used
within pageBlockSection component
- allows
to modify data presentation, display the data using a different widget,
or present items not based directly on SF object fields
- if we need to bundle more than one item in the cell, then
use outputpanel
- <apex:sectionHeader> – creates the standard colored
header bar displayed under the tabs in the SF UI
- <apex:toolbar>
- <apex:toolbarGroup>
- <apex:tabPanel>
- <apex:tab>
- <apex:panelBar>
- <apex:panelBarItem>
- <apex:panelGrid>
- <apex:panelGroup>
- Coarse
Metadata Components
- provide
a large amount of generated code to create familiary Salesforce
structures
- do
not allow for much customization to the generated areas
- Components
- <apex:detail
/>
- <apex:relatedList
/>
- <apex:listViews
/>
- <apex:enhancedList
/>
- <apex:repeat
/>
- Chatter tags
- enable
to add chatter into vf paes
- incorporate
chatter into vf pages using
- the
showChatter attribute of <apex:detail> tag
- <chatter:feed>
to include chatter feed on a record
- <chatter:followers>
to include chatter followers on a record
- <chatter:feedWithFollowers>
to include chatter feed, followers and show/hide chatter button
- <chatter:follow>
to add a button that enables you to follow records
- Message
components
- <apex:pageMessages>
– use the standard sf style
- <apex:messages>
– unformatted but can apply custom style
- <message>
and <pagemessage> – specific to one component
- messages
always shows up in system log.
4. Form and Output Components
- allow
entering info into your pages, & uploading files
- form
components
- <apex:form>
- enables
a section of a vf page to allow users to enter data and subit it with
commandButton or commandLink
- <apex:inputField>
- corresponds
to a SF object field that respects the attributes of that field and uses
associated sf UI widget
- <apex:inputWidget>
- set
of widgets for data that doesnt correspond to a SF object field to be
used with pageBlockSectionItem tags
- <apex:inputCheckBox>, <apex:inputHidden>,
<apex:inputSecret>, <apex:inputText>,
<apex:inputTextarea>
- limitations
- no
protection from malicious javascript
- no
escaping/unescaping the data correctly when displayed on a regular page
layout
- no
built-in handling of the truncated display of long text fields
- no
special search indexing to ignore tags and focus on the plain text
- no
special handling of the field when used in filters, workflow rules,
etc.
- <apex:selectWidget>
- series
of additional tags to support the display of UI widgets in organized
tables
- <apex:selectCheckboxes>
- <apex:selectList>
- <apex:selectRadio>
- <apex:inputFile>
- allows
users to upload files and turn them into attachments on records,
documents or apex blobs
- <apex:commandButton> & <apex:commandLink>
- used
within a form tag.
- output
components
- display
info without allowing the user to change any data
- have
parallel form components
- components
- <apex:outputLabel>
– creates a label for input or output widgets that do not automatically
come with a label
- <apex:outputField>
– creates a read-only display of a label and value for a SF field,
automatically formatted according to the field type
- <apex:outputLink>
– creates a link to URL
- <apex:param>
– used as achaild tag that provides a name/value pair parameter for its
parent compoentn. It can be used with
- outputLink:
defines http query string parameters
- outputText:
defines text insertion parameters
- actionFunction:
defines javascript function parameters
- <apex:outputPanel>
– tag defines a set of content that is grouped together (often for ajax)
- layout
attribute: block, inline, none
- block:
Generates an HTML div tag (adds a paragraph)
- inline:
Generates an HTML span tag (default:doesn’t do any formatting)
- <apex:outputText>
– displays text which can be formatted using a stylesheet
- <apex:pageBlockTable>
– creates a table by iterating over a set of data using the SF
stylesheet. good if data comes from sf object. used within pageBlock or
pageBlockSection
- <apex:dataList>
– creates a list (a one-column table) by iterating over a set of data
- [Note:
dataList and dataTable are very similar and generally used when you
don’t want the standard sf table style. DataLists are just one-column
tables.
- <apex:dataTable>
– creates an HTML table which iterates over a set of data
- <apex:column>
– used within either pageBlockTable or dataTable set of tags. it creates
the columns for a table
- <apex:flash>
used to embed flash widgets into a vf page
- <apex:facet>
used with a variety of other component tags to provide or override
headers, footers, and captions to other items
5. Visual Force Components for Modularity
- Custom
components can stand alone or be accompanied by a custom controller (can
be shared in appexchange)
- <apex:component>
– used to create our own custom reusable components
- access
then using <c:componentname>
- <apex:attribute> – use it within component tag to
define the custom attributes, can define the name, data type, and other
aspects of the custom attribute
- <apex:componentBody>
– used within a component tag to pull the body of the component’s
implementation into the component definition, often used for custom
iteration component
- Page
Inclusions (mashups)
- <iframe>
to include another page as URL
- <incldue>
– to include another vf page
- Template Tags
- series
of tags that are used to create vf template pages and define reusable
components for baseline pages
- tags
- <apex:define>
- <apex:insert>
- <apex:compositions>
- <messaging:emailTemplate>
- facilitate
communication outside of the application
- used
to create vf email templates
- must
be wrapped inside a single emailTemplate component
- have
advantages over traditional email templates
- can
be edited using Email Templates (under admin)
- Messaging tags
- <messaging:emailHeader>
- <messaging:htmlEmailBody>
- <messaging:plainTextEmailBody>
- <messaging:attachment>
- With email templates, you can
- repeat
tag to iterate through all of the related records
- generate
pages inside of the template
- specify
a custom email header
- create
attachment using plain text, HTML or VF
- Visualforce Performance Troubleshooting
- reduce
view state size using only one <apex:form> tag on a page
- cache
frequently accessed resources
- reduce
page size < 15 mb
- increase
the time interval for calling apex from visualforce page
remove unnecessary fields to reduce the amount of data returned
6. Javascript in Visualforce
- Action
Binding and Javascript
- currently
only actions that are shared across al objects are exposed through
standard controllers
- but
further standard sf actions are available by using javascript and the
expression syntax with the !URLFOR and $Action keywords
- Ajax tags
- 5
tags
- actionStatus
– used to display start and stop statuses of ajax requests
- actionSupport
– used to call 2nd component when an event happens to the 1st component
- actionPoller
– similar to actionSupport, but the event is based on timer instead of a
user action
- actionFunction
– provides support of invoking a controller action from javascript code
using an Ajax request by defining new javascript function
- actionRegion
– used to demarcate which parts of the page the server should reprocess
- use
rerender attribute to do partial updates
- simple
to implement partial page update is
- isolation
the portion of the page by surrounding it with <apex:outputpanel>
tags. be sure to give id attribute
- create
the command button or link that will trigger the partial refresh. add the
rerender attribute and assign it the value of the id of the outputPanel
created earlier
- if event happening to same component that should action, use
the built-in javascript event attributes
- if
event happening to a different component that will take the action, use
the actionSupport tag to handle the event
- With
ajax toolkit
- create
an apex class and expose it as a web service
- call
the web service from a visual force page
- optionally
can attach a page to a button, make it inline, etc.
7. Further Topics in Visualforce
- force.com sites
allow to build public unauthenticated sites that can access data from sf
apps
- 4
main use cases
- build
and run new web applications
- consumer
reviews, hotel conceirge services, event registration sites
- transform business apps into websites
- recruiting
portal
- extend
your salesforce crm apps
- interactive
web to lead forms
- campaign
landing pages
- run
your corporate web site on salesforce service
- public
websites, intranets
- Salesforce Mobile
- licensed
client app that can be run on blackberry, iPhone, or windows mobile
device
- provides
mobile access to data, email, tasks and calendar
- includes
features such as permissions, page layouts, related lists, dashboards,
reports and list views
- allows
administrator to mobilize a limited set of standard objects and all
custom objects
- lite
edition is free
- guidelines to develop pages for mobile
- evaluate
if app interface needs to be redesigned for the use on mobile devices
- keep
the real estate open by not displaying the header or sidebar
- avoid
using lookup fields. For the best user experience, use apex to validate
data entry
- create
reusable styles in a separate page and use the include component to add
these styles
- use
a third party libary such as iUI that provides iPhone like interface
- refrain
from createing styles as a static resource
- iPhone
- set
page width to 980 pixels
- Blackberry
- doesn’t
support inline events
- doesn’t
have built-in navigation
- viewstate
for forms is too large for Blackberry
- use
standard html forms in mobile page instead of using form component
- 3 methods to develop for multiple platforms
- Separation
and redirection
- build
pages separately and point the mobile tab to the bb page
- top
of the page, include the js to redirect the page, if the target is not a
bb device
- Lowest Common Denomiator
- create
pages that include minimal or javascript
- use
these pages on any supported device
- Conditional Code
- create
pages that evaluate which device being used
- offer
appropriate markup for each device
- Mobile
Javascript Librar
- some
functions of mobile devices not applicable to desktop clients
- developers
can use js functions in vf pages for javascript enabled devices
- mobileforce.device.sync()
- mobileforce.device.close()
- mobileforce.device.syncclose()
- mobileforce.device.getLocation()
- html links can be used to sync/close
- Mobilizing
Visualforce Pages
- Create
new mobile ready visualforce tab
- add
the vf tab to mobile configuration
- test
the page using a mobile client simulator
- Chatter Data Model
- FeedItem
is the fundamental entity for the chatter data model
- Feed
tracking can be enabled for upto 20 fields per object
Questions:
1. In a custom
application, you can include only a landing page.
A. True
B. False
2. Which of the
following statements are true about custom objects? (select all that apply)
A. Salesforce provides a set of custom objects that you can use
to store data
B. After you create a custom object, you need to add the user
interface
C. Custom objects come with an infrastructure include reporting,
auditing, and access control.
D. When you create a custom object, you get a direct access to
the database.
E. Custom objects are reportable and searchable.
3. Which of the
following statements is true about custom tabs?
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 two types of custom tabs
C. Custom object tabs display any external web-based application
or web page in a user interface tab.
D. Web tabs display the data of your custom object in a user
interface tab.
4. Identify the
correct statements about dependent picklists. (Select all that apply)
A. Standard picklists can be controlling fields but not
dependent fields.
B. The maximum number of values allowed in a controlling field
is 400.
C. Before defining a dependency, you should ensure that your
picklist has at least one value.
D. A custom multi-select picklist can be set as the controlling
field for a dependent field.
E. If a field represents both a controlling field and a
dependent field, it cannot contain more than 300 values.
5. When a
customizing a page layout, you can change the filed locations, page setting
customizations, and related list customizations.
A. True
B. False
6. Match the
given relationships with their features.
A. Lookup relationship : A junction object is used to
connect the two objects
B. Many-to-many relationship : Security, Relationship can
be only one layer deep.
C. Master-detail relationship : Security, access and deletion of
child records are independent of the parent.
7. Match the
following features of the Enhanced Page Layout Editor with their descriptions
A. Quick Find : Switch to other layouts for the same object
B. Section : Can search for an element in palette.
C. Blank Spaces: Adds section anywhere above the related lists
on the page layout.
D. Page Layout : Helps visually align and distinguish elements
on the page.
8. Which of the
following statements are true about a lookup relationship? (Select all that
apply)
A. A maximum of 2 relationships is allowed per object
B. A lookup relationship can span to multiple layers.
C. A parent record is required for each child.
D. A lookup field is not a required field.
E. Access to parent determines access to children.
9. Custom
formula fields are smart custom fields that can be used to build
business-specific calculations using simple wizards and Excel-like formulas.
A. True
B. False
10. Which of
these statements are true for cross-object formula fields? (Select all that
apply)
A. You can reference cross-object formulas in roll-up summary
fields.
B. You cannot reference merge fields for objects related to
activities
C. You can use cross-object formula fields to reference record
owner merge fields for any object.
D. The limit for cross-object formulas is 10 unique
relationships per object across all formulas and rules
11. Which
statements about roll-up summary formulas are correct? (Select all that apply)
A. They calculate values from a set of related records.
B. They are read/write formula fields
C. They can be created to display a value on a master record
based on the values of records in a detail record.
D. They can be added for all lookup relationships.
12. If all error
conditions are false, the corresponding error message is displayed and the save
is aborted.
A. True
B. False
13. A change set
can be used to deploy metadata only between __________ orgs
14. What happens
if one component of a change set fails to deploy?
A. The entire change set fails to deploy.
B. The entire change set gets deployed.
C. Except the failed component, all other components of change
sets get deployed.
D. The deployment time increases.
15. Change sets
can be used to move data and metadata from one organization to another.
A. True
B. False
Answers
1. B
2. C, E
3. A
4. A,C,E
5. A
6.
A. Lookup relationship : Security, access and deletion of
child records are independent of the parent.
B. Many-to-many relationship : A junction object is used
to connect the two objects
C. Master-detail relationship : Relationship can be only
one layer deep.
7.
A. Quick Find : Can search for an element in palette.
B. Section : Adds section anywhere above the related lists
on the page layout.
C. Blank Spaces: Helps visually align and distinguish
elements on the page.
D. Page Layout : Switch to other layouts for the same
object
8. B, D
9. A
10.B,D
11. A,C
12. B
13. related
14. A
15. B
Salesforce.com certified Force.com
Developer Certification: Knowledge Check Questions-Part-II
This blog post is all about the knowledge check questions from
the premier training catalog. The following list is the links to the knowledge
check questions.
Questions:
1. All users who access the same report at the same time will
see the same data.
A. True
B. False
2. Access to a report is determined by the folder in which a
report is stored.
A. True
B. False
3. What is the purpose of a summary report?
A. Provides a simple listing of your data
B. Provides a listing of data with sorting and subtotaling
C. Helps compare related totals by summarizing data in a grid
D. Allows application of custom filters to show limited data.
4. Which of the following tasks can an Admin User perform?
(Select all that apply.)
A. Run a report on Monday, and then schedule the same report to
run every Monday for the next four weeks.
B. Schedule reports to run in the time zone of the report
recipient.
C. Email a report in a Public folder to Salesforce users in
different time zones.
D. Schedule a report to run only once, a week from today.
5. Saving a custom report will save a snapshot of that data at
that moment in time
A. True
B. False
6. You can use filter options with “AND” or “OR”
relationships.
A. True
B. False
7. Which of the following statements about reports is
accurate? (Select all that apply.)
A. Reports show only the data and fields that are visible to the
user running the report.
B. New objects and fields are immediately available for
reporting.
C. Running a saved report shows the data in real-time based on
the saved parameters.
D. Reports can include standard objects and/or custom objects.
8. To email a report to other users, the report must be in
public folder.
A. True
B. False
9. To export the data to Excel but still keep the report
formatting, click Export Details.
A. True
B. False
10. You can select the columns you want to appear on your
report, and their order as well.
A. True
B. False
11. To list your
data including sorting and subtotaling of the data, select a Tabular Report
A. True
B. False
12. What is the first step when creating a custom report?
A. Choose the fields by which to group and subtotal the data.
B. Select the objects to include in the report.
C. Select the columns to include and order them
D. Select the type of report
13. Match each component type on the left with the appropriate
requirements on the right?
A. Chart : Show the average time for a Temp Contract.
B. Table: Show recruiting statistics from an external system.
C. Gauge: Compare the number of temporary positions across
departments.
D. Metric: Show the top five teams by number of open positions
E. Visualforce Page: Show progress towards filing 100% of open
positions
14. Match each item on the left with the way it manages security
on the right?
A. Dashboard Folder: Determines what data is displayed on the
dashboard
B. Running User: Control who sees a dashboard
15. If you have access to a dashboard component, then you can
see its underlying report.
A. True
B. False
16. You can schedule a dashboard refresh every other Wednesday.
A. True
B. False
17. If you check the option to email the dashboard ‘To me’, what
will be emailed to you?
A. A notification of the refresh schedule that you set up
B. A notification when the dashboard has refreshed
C. The report used as a source for the dashboard
D. The refreshed dashboard components
18. A dashboard can have up to how many compoents? __________
19. Which of these are types of dashboard components? (Select
all that apply.)
A. Visualforce page
B. Graph
C. Metric
D. Table
E. Gauge
F. Chart
20. What does a running user determine?
A. The data displayed on a dashboard
B. The users who can see a dashboard
C. The frequency of dashboard auto refresh
D. The users who receive email notification of dashboard
refreshes
21. Once you create a dashboard, the first component is added by
default.
A. True
B. False
22. Which of the following dashboard layout styles are
available? (Select all that apply.)
A. One Column
B. Two Columns
C. Three Columns
D. Four Columns
23. You can specify the column under which to add a new
component.
A. True
B. False
24. Components can be moved around after they are created.
A. True
B. False
25. Which report types are NOT created automatically? (Select
all that apply.)
A. Positions with Offers
B. Candidates with Reviews
C. Position
D. Candidates with Interviewers
26. Report Types define the objects that are included on a
report.
A. True
B. False
27. Which statements about report types are true? (Select all
that apply.)
A. Standard report types are predefined.
B. Reports based off a standard report type cannot be customized
C. A standard report type is created upon creation of a custom
object.
D. A standard report type is similar to an outer join.
28. To incorporate fields from other objects in a CRT, you can
include the object relationship or include fields related via lookup.
A. True
B. False
29. “With or Without” reports shows all “A” records that have a
related “B” record.
A. True
B. False
30. How many objects can you choose when defining which related
records from different objects are returned in the report results?
A. 4
B. 6
C. 8
D. 10
31. System Administrators and users with the “Manage Custom
Report Types” permission can create CRTs.
A. True
B. False
32. CRTs allow you to remove fields from the report builder and
choose which fields should be selected by default.
A. True
B. False
Answers:
1. B
2. A
3. B
4. A,C,D
5. B
6. A
7. A,B,C,D
8. A
9. B
10. A
11. B
12. B
13.
A. Chart : Compare the number of temporary positions across
departments.
B. Table: Show the top five teams by number of open
positions
C. Gauge: Show progress towards filing 100% of open
positions
D. Metric: Show the average time for a Temp Contract.
E. Visualforce Page: Show recruiting statistics from an
external system.
14.
A. Dashboard Folder: Control who sees a dashboard
B. Running User: Determines what data is displayed on the
dashboard
15. B
16. B
17. D
18. 20
19. A,C,D,E,F
20. A
21. B
22. B,D
23. A
24. A
25. A,B,D
26. A
27. A,C
28. A
29. B.
30. A
31. A
32. A
Salesforce.com
certified Force.com Developer Certification: Knowledge Check Questions-Part-III
This blog post is all about the knowledge check questions from
the premier training catalog. The following list is the links to the knowledge
check questions.
1. Once you create a report that utilizes a field for counting,
you can use that field in additional calculations.
A. True
B. False
2. When creating a formula field to allow you to count unique
records in a report, what formula should you use?
A. 1
B. X + 1
C. X.1
D. 2
3. Once you create a new formula field to group information,
what else do you need to do to show the grouping on a dashboard? (Select all
that apply).
A. Create a formula for each of the groups.
B. Run a report using the grouping formula field
C. Create/update a dashboard component using the updated report.
D. Create a dashboard component for the non-grouped information.
4. You need to create a new formula field when you want to do
which of the following? (Select all that apply).
A. Group scores into categories
B. Create a custom report
C. Count the number of records
D. Schedule to run a report at a later date.
5. You want to count the number of interviews conducted for each
position. Once you create a formula field to count the number of interviews,
what is your next step?
A. Run a report using the new field
B. Create a “Number of Interviews” component on the dashboard.
C. Create a report to group interviews by positions
D. Calculate the ratio between positions and interviews
6. A formula field can be used to “bucket” or group together
similar values to make a report or dashboard easier to read
A. True
B. False
7. Analytic snapshots map the fields on the source report to
fields on a custom object
A. True
B. False
8. Analytic snapshots always run weekly
A. True
B. False
9. Analytic snapshots allow you to view historical data and
analyze trends.
A. True
B. False
10. Setting up the analytic snapshot includes which of these
steps? (Select all that apply)
A. Selecting the source report
B. Selecting the target object
C. Mapping the fields on the report to the target object
D. Running the report to analyze historical data
E. Scheduling the frequency for taking the snapshot
11. Analytic snapshots can be scheduled daily, weekly, or
monthly
A. True
B. False
12. You are running a report that utilizes data captured in an
Analytic Snapshot to analyze historical trends. What should you include in the
report?
A. The source report
B. The target object
C. Both the source report and the target object.
13. The more time exists between the Start and End Dates, the
more snapshots will be listed in the report.
A. True
B. False
14. How do analytic snapshots facilitate analyzing trends?
A. They automatically run reports at regular intervals so users
can compare the reports side by side
B. They allow users to capture the highest and lowest points of
data on a given time so that users can analyze the range of performance
C. They automatically store data at regular intervals so that
users can report on and analyze that data later.
D. They provide a comprehensive analysis of past performance
compared to current performance.
15. To set up the analytic snapshot, you must map ______
A. Fields on the resource report to the snapshots
B. Fields on the source report to the custom object
C. Fields on the custom object to fields on the source report
D. Fields on the custom object to the scheduled snapshots
16. Which path would you follow to create a custom object as the
target object for an analytic snapshot?
A. Your Name | Setup | Customize |
Objects
B. Your Name | Setup | Create | Objects
C. Your Name | Setup | Data Management |
Analytic Snapshots
D. Your Name | Setup | Data Management |
Objects
17. In which of these reporting scenarios would you need a
partner’s help?
A. You want to show who are the employees who interviewed each
candidate
B. You want to Create a report that lists all contacts that have
no cases associated with them.
C. You want to use different colors to highlight certain text
values on a report.
D. You want the names of highly qualified candidates to feed
into a job offer form, which you’ll mail to these candidates
E. You want to create a Candidate Competency report that will
tell how qualified are the candidates that you teams are interviewing.
18. Some challenges are best solved using a RaaS application;
others are best solved using a BIaaS application; and yet others – using a Data
Warehousing application
A. True
B. False
19. To find partner applications that extend reporting
capabilities, go to
Answers:
1. A
2. A
3. B,C
4. A,C
5. A
6. A
7. A
8. B
9. A
10. A,B,C,E
11. A
12. B
13. A
14. C
15. B
16. B
17. B,C,D
18. A
19. B
Salesforce.com
certified Force.com Developer Certification: Knowledge Check Questions-Part-IV
This blog post is all about the knowledge check questions from
the premier training catalog. The following list is the links to the knowledge
check questions.
Questions:
1. The Created Date can be updated for a record via the API as
long as the Inserting System Fields feature is turned on.
A. True
B. False
2. What are the ways in which you can obtain a record’s ID? (Select
all that apply.)
A. URL
B. Reports
C. API
D. On each record
E. Import Wizard
3. What is the advantage of performing upserts while migrating
data?
A. Data migration to the Salesforce application is faster
B. It gives an error if there is a missing data record
C. It can use the Salesforce ID or an external ID to prevent
data duplication and create missing records.
D. It duplicates a record using the external ID in Salesforce
4. The upsert function allows developers to use relationships
defined in legacy systems which importing data into Force.com
A. True
B. False
5. Developers need to know the record ID’s in Salesforce to use
upsert with relationships.
A. True
B. False
6. For which of the following activities can developers use
import wizards?
A. Load up to 50,000 records
B. Load any object supported by the API
C. Schedule regular data loads such as nightly feeds
D. Mass delete supported objects
7. The objects that developers want to load and the operation
they want to perform are key factors in determining the right data management
tool.
A. True
B. False
8. The Data Loader supports importing of data from CSV and
exporting data to CSV.
A. True
B. False
9. The ________ operation uses a SOQL string to export a set of
records from Salesforce.
A. Extract
B. Insert
C. Upsert
D. Update
10. To transfer a record that a user does now own, the user
needs to have the required user permissions and read sharing access on the
record.
A. True
B. False
11. The mass transfer tool can be used to transfer only accounts
and custom objects from one user to another.
A. True
B. False
12. Which are the permissions that allow a system administrator
to manage an application? (Select all that apply.)
A. View All Data
B. Read
C. Create
D. Modify All Data
E. Edit All Data
13. System Administrators can customize the permissions of both
standard and custom profiles
A. True
B. False
14. Identify
all true statements
A. If you remove access to an app from a profile, the users in
that profile will still be able to see the tabs in that application.
B. If you hide a tab from a profile, the users in that profile
will not be able to see records for that object.
C. If you have two record types for an object, you need to have
two page layouts for that object.
D. If a user does not have access to a specific record type,
they will still be able to see the records with the record type.
15. A field hidden by field-level security is still visible
through the API.
A. True
B. False
16. What will you use to limit the picklist options?
A. Page Layouts
B. Record Types
C. Field-Level Security
D. Profiles
Answers:
1. B
2. A,B,C
3. C
4. A
5. B
6. A
7. A
8. A
9. A
10. A
11. B
12. A,D
13. B
14.
15. B
16. C.