Reports and Dashboards in Salesforce

Salesforce provides powerful reporting and generation tools on the data stored in the objects.

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.

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.

There are three type of reports

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.

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.

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.

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.

Object relationships that are supported by Custom Report Types are -

Include all records that have children

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.

There are three steps in creating custom reports -

Select an object, folder and report label.

Select related objects that need to be included.

Select fields available for report using a drag-and-drop layout editor.

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.

Analytical snapshot are available from the Data Management menu option.
Source report in Analytical snapshot can be of the type Tabular or Summary.

Setup Analytical reports require a four step process

Select source report

Select custom object

Map source report fields to custom object fields

Schedule the frequency for taking the snapshots

There are two type of Reports

Standard Report type

Created when a object is created

created when relationships between objects are created

Always inner joins

Cannot be modified.

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

Saving a custom report only saves the parameters of the report. The data is always real time.

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

Horizontal bar

Line

Donut

Funnel

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:

Dashboard Folder

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.

User Interface of Salesforce reports and dashboards is fixed. Salesforce does not support pixel perfect report.

Salesforce reports do not support importing data from other sources

When displaying objects and their children, Salesforce does not support reporting on objects that do not have any children.

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

BI as a service: Data is moved to a different destination on cloud. Reporting is performed on this new data server.

Datawarehousing as a service: Data is exported to the customers server and reports are generated from the server located at customers location.