Reporting for Developers
-
Upload
salesforce -
Category
Business
-
view
2.495 -
download
2
description
Transcript of Reporting for Developers
Reporting for DevelopersDevelopers
Thomas Tobin: salesforce.com
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.
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?
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
Salesforce reporting vision
Democratic Drag & drop simplicity
Real-time Up to the second always
Collaborative Your analytics “tweets”
Real-timeAnalytics
The details
salesforce.com
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
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
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
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
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)
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
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
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!
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”
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
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”
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
The tools
salesforce.com
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
Dashboard and Report Builders
On by default for users with standard “System
Administrator profile”
Profile controlled for others
What should you see?
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
For more questions, head to the session chatter page!
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
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!
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