Transcript
Page 1: Reporting for Developers

Reporting for DevelopersDevelopers

Thomas Tobin: salesforce.com

Page 2: Reporting for Developers

Safe HarborSafe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services.

The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of intellectual property and other litigation, risks associated with possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-K for the most recent fiscal year ended January 31, 2010. This documents and others are available on the SEC Filings section of the Investor Information section of our Web site.

Any unreleased services or features referenced in this or other press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.

Page 3: Reporting for Developers

Agenda

What you can and can’t do, and how to do it if you have to

Reporting vision in Salesforce

What do you want to model – and how to report

New Reporting tools in Salesforce– how should you develop, what to expect users will see

What’s on AppExchange

We can’t do what you want. What now?

Page 4: Reporting for Developers

Who are you?

ISV/Package developers– You mostly like salesforce.com reporting

– It gives you real reporting without worrying about Crystal

– End users seem to get it and be able to modify reports

– It fits with the rest of the schema automatically

Internal IT developers– Salesforce reporting isn’t as good as <your reporting tool>

– Your end users seem to get it, but they don’t have to make

complex reports

– But it’s inside the product, and mostly works well

Page 5: Reporting for Developers

Salesforce reporting vision

Democratic Drag & drop simplicity

Real-time Up to the second always

Collaborative Your analytics “tweets”

Real-timeAnalytics

ttobin
need new screenshot with new skin and chatter
ttobin
hands on each one, showing who's had problemswho's been the only one developing reports?Who's had adoption probblems because of old data?Who's seen email trails trying to see why a report showed a specific number
Page 6: Reporting for Developers

The details

salesforce.com

Page 7: Reporting for Developers

What’s “out of the box” in Salesforce analytics?

A reporting tool to make single-table reports– Single-SQL, no sub-queries

A dashboard tool to build the “big picture”– Take a set of reports, and show some data from them

A report type builder– Take a set of joined objects and expose them for reporting

A snapshot tool– Run a report on a schedule and save the result into a custom

object, along with the execution date.

Metadata API– Export/import/version/edit in eclipse - definitions for all these

Page 8: Reporting for Developers

Report types – the 3 kinds

Standard report types– E.g. Opportunities with Products

– “with” means inner join, apart from

Opportunities with Products

Auto-generated Report Types– Make a new object, make it reportable, we make a report type

– You make a master-detail relationship, we make a report type• E.g. make a new object “Sample” and make it a child of Account

• You will see “Accounts with Samples” in the Accounts report type

category

– Also auto-generates for join objects

– Master-detail relationship works up to 4 levels down

Page 9: Reporting for Developers

And the 3rd – Custom Report Types

You choose the objects related any way

You name it

You put it in a report type category

Stop auto-generated report types by removing the

“Allow Reporting” checkbox on the object– You can still use it in CRT

Page 10: Reporting for Developers

Why you would use CRTs

They don’t disappear if you change the relationship– If you change a relationship from master-detail to lookup, the

auto-generated report type will disappear

You can include other lookup fields your users want– Like owner name/id or other lookup data

You want to control the scopes

You want to outer-join details

Up to 20 objects in total

Distance of 4 for any lookups

You can place it in any category

Page 11: Reporting for Developers

Schema patterns and reports

Object 1 has 0 or more Object 2 (m-d)– Auto-generated report type covers inner join and

lists of Objects 1 (master-detail)

– Won’t list Object 1 records whether or not they have

Object 2 (need CRT)

Same, but Object 2 has a lookup to Object 3– Auto-generated report type covers inner

join, and outer join to object 3, and lists of

object 1 or object 3

– Won’t list Object 1 records whether or not

they have Object 2 (need CRT)

Page 12: Reporting for Developers

And many-many relationships?

Auto-generates 2 report types

Object 1 with object 2 and O3

Object 3 with object 2 and O1

If you don’t want both, un-check

allow reporting checkbox

If you want outer joins on the first two objects, use CRT

ttobin
demo of crt creation in this model
Page 13: Reporting for Developers

Patterns you can’t report on?

Absence of records– What object 1 records don’t have object 2

– But you can use a Roll-up Summary Field

Multiple Related Lists at the same time– You could build a dashboard and show

• Object 1 with Object 2

• Object 1 with Object 3

– Are they really unrelated?• If you can create a lookup from O2 to O3, then you can report on it

Page 14: Reporting for Developers

What else can’t you report on?

Unrelated data– Relationships in the schema are the only way to report

– The BI toolset can’t be used to

make up for mistakes in the schema

– Usual request “The key is over there,

but it’s a text field. I just want to do a

join like in SQL”

– But it’s easy to change the schema!

Page 15: Reporting for Developers

Tricks to reporting

Rollup summary fields (on master-detail)– Used to solve exception reports

– Counts

– in-line reporting (on the detail page)

– Need to simulate in apex for lookups

Formula fields– Especially spanning formulas

– Calculations (can’t do calculations on each row in report)

– Also used for unique counts• Google “power of one salesforce”

Page 16: Reporting for Developers

More things you might need to do

Using workflow to keep some history– Common pattern: I want to see the last value of stage before it

was changed, so I can see who’s change stages and from/to

Using Apex Triggers to make data fit/match/relate– Using lookups to create relationships users can’t define

• E.g. look at user picklist on object 2, find code from object 3, insert

lookup relationship value in object 2

• Relate things the user doesn’t see (e.g. to report on multiple

related lists

– Create/manage totals for exception reporting• E.g. to track how many children of a certain type

• For when RSFs aren’t enough

Page 17: Reporting for Developers

Even more things you might have to do

Using triggers to create Slowly Changing Dimensions– Save a child every time there is a change, and save from/to

values• Replace “entity history” and make it reportable

• Report on “show all times something changed”

• Report on “show all changes from x to y”

Use SOQL and VF to build a report you can’t today– E.g. to report over Multiple related lists

• Orders, opportunities, shipments, samples, all with totals per rep

– Formatting we can’t do• “I need company logo top right, font should be 12-pt helvetica,

totals in green, alternate row highlighted in light blue”

Page 18: Reporting for Developers

And more

Using bulk apex– When you have more data than can be copied using

Snapshots

– When you want to mine data• Iterate over all rows, build aggregate correlations

Page 19: Reporting for Developers

The tools

salesforce.com

Page 20: Reporting for Developers

Democracy at work: New tools – new training, new user experience

What do you need to know:– Over time, all users will go to the new builders

New report builder and dashboard builder– Easy to use, but allows more power

– Foundation for all new features

– In Spring’11, first “builder-only” features arrive

Roadmap

Dashboard Builder included

Summer10

Report Builder included

Winter11

New orgs all get builders

Org pref to move all users

Spring11

Summer11

All orgs must move to builders

Winter11

Page 21: Reporting for Developers

Dashboard and Report Builders

On by default for users with standard “System

Administrator profile”

Profile controlled for others

Page 22: Reporting for Developers

What should you see?

Page 23: Reporting for Developers

How to ask questions? Where to look?

On Dreamforce org– This session’s chatter

– Developers group

– Analytics group

Developer.force.com– General development forum

IdeaExchange– Ask for something, if it’s already possible you’ll be told

CRM community

ttobin
specific links to soliutions
Page 24: Reporting for Developers

For more questions, head to the session chatter page!

Page 25: Reporting for Developers

Reporting for Developers

Page 26: Reporting for Developers

D I S C O V E R

Visit the Developer Training and Support Booth in Force.com Zone

Discover

Developer

Learning Paths

Developer training, certification and support resources

S U C C E S SFind us in the Partner Demo Area of

Force.com Zone 2nd Floor Moscone West

that help you achieve

Learn about Developer

Certifications

Page 27: Reporting for Developers

Remember. . .

Check Chatter for additional session information

Get your developer Workbooks and Cheat Sheets in

the Force.com Zone

Visit for more information related

to this topicDon’t forget the survey!

Page 28: Reporting for Developers

How Could Dreamforce Be Better? Tell Us!

Log in to the Dreamforce app to submit

surveys for the sessions you attendedUse the

Dreamforce Mobile app to submit

surveysEvery session survey you submit is

a chance to win an iPod nano!

OR


Top Related