SlideShare a Scribd company logo
1 of 33
Download to read offline
Andrew.Nerney@zPaper.com
1
Andrew.Nerney@zPaper.com
2
ANDREW NERNEY
zPaper Ironman and Implementation Engineer
zPaper:Fax routing and production of faxes and secure
email
zPaper:Forms interactive forms
zPaper:Mobile unleashes apps and teams with minimal
development
Andrew.Nerney@zPaper.com
3
Tropical Paradise (vs Safe Harbor)
Safe 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 zPaper, 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 product or service availability, 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, new products and services, 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 any litigation, risks associated
with completed and any 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-zPaper 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 and in our quarterly report on Form 10-Q for the most recent fiscal quarter. These documents and others containing important
disclosures are available on the SEC Filings section of the Investor Information section of our Web site. Ask us.
Any unreleased services or features referenced in this or other presentations, 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. zPaper, inc. assumes no obligation and does not intend to update these forward-looking statements.
Now sit back and enjoy a blue sky ride through the zPaper tropical paradise…..
Andrew.Nerney@zPaper.com
4
SALESFORCE SCHOOL OF HARD KNOCKS
Andrew.Nerney@zPaper.com
5
Things I Learned the Hard Way
Salesforce Administrator Best Practices
Back Up Your Own Work
 Change Sets and Packages
Protecting Integrated Fields
Workflow Analysis
 Workflow visualization tool – open source
Andrew.Nerney@zPaper.com
6
Administration Scheduling Best Practices
Best Practices for Salesforce.com Administrators
(Taber, David. CIO.com, September 18 2014)
Ad-Hoc Administration Activities
Weekly Administration Activities
Monthly Administration Activities
Quarterly Administration Activities
Annual Administration Activities
Andrew.Nerney@zPaper.com
7
Back Up Your Work!
Andrew.Nerney@zPaper.com
8
Back Up Your Work!
Best practice: use Eclipse or Force IDE to back up metadata
Quick backup: use a Change Set or a Package
What you will need:
 Create and Upload Change Sets rights
 Create AppExchange Packages rights
 Upload AppExchange Packages rights
Andrew.Nerney@zPaper.com
9
Back Up Your Work!
Back up metadata with a Change Set
 Create a Change Set
 Extract the metadata XML
Andrew.Nerney@zPaper.com
10
Back Up Your Work!
Back up metadata with a Package (Managed or Unmanaged)
 Upload package to App Exchange
 Some elements cannot be uploaded, such as Workflows with Time
Triggers
 URL stays active if sandbox is refreshed
 Save the URL!!!!! Save it outside of Salesforce
Andrew.Nerney@zPaper.com
11
AN OUNCE OF PREVENTION IS WORTH….
Rekeying code or data is NOT a best practice
Andrew.Nerney@zPaper.com
12
Protect Integrated Fields
A 'rose' doesn't smell as sweet if it's renamed to 'flower'.
Excel and other external apps need protection too!
Andrew.Nerney@zPaper.com
13
Protect Integrated (externalized) Fields
Andrew.Nerney@zPaper.com
14
Protect Integrated Fields
Best Practices: Documentation and Communication
Quick and Dirty Trick: use a formula
Protects from field deletion, field type changes
Does not protect from field API name change
Andrew.Nerney@zPaper.com
15
Sample formula syntax
Patient_Name__c & ", " & - lookup
Description__c & ", " & - text, formula, phone, email, URL
TEXT(Date__c) & ", " & - date field
TEXT(Total_Requested_Encounters__c) & ", " & - number, percentage
TEXT(Contribution_to_Deductible__c) & ", " & - currency
TEXT (Stage__c) & ", " & - picklist
IF( Medicare_Referral__c , "Medicare True", "Medicare False") & ", " & - boolean
IF(ISBLANK(zMultilselectSample__c), "Mutliselect Picklist Blank", "Mutliselect Picklist Not Blank") – multiselect
picklist
Protect Integrated Fields
Andrew.Nerney@zPaper.com
16
Sample formula output
Protect Integrated Fields
Andrew.Nerney@zPaper.com
17
User gets an error when deleting field or changing the type
Protect Integrated Fields
Andrew.Nerney@zPaper.com
18
Protect Integrated Fields
More in-depth trick: use an Inactive Apex trigger
Protects from field deletion, API name change
Does not protect from field type change
Requires Apex test class
Must be written in a sandbox then deployed to production
Andrew.Nerney@zPaper.com
19
Protect Integrated Fields – Inactive Trigger
trigger zFieldGuard on EOC__c (before delete) {
/*
This trigger contains a list of fields used by the zPaper application. The purpose of this trigger is to prevent fields that are
referenced by zPaper from being deleted or modified. If you are attempting to delete or modify a field and are getting an error
message that leads to this trigger, then the field is used by zPaper and should not be changed. If you need to delete or modify the
field, please coordinate your efforts with zPaper Support. Open a case at https://www.zpaper.com/support/, email us at
support@zpaper.com, or call us at 770-643-9297 option 2. This trigger does not modify the data in Salesforce.com in any way.
*/
//get the recordset of records being deleted
Set<ID> ids = Trigger.oldMap.keySet();
//compile a list of fields that we don't want other users to delete or rename
list<EOC__c> fieldList = [select Id, Patient_Name__c, Description__c, Date__c,
Total_Requested_Encounters__c, Contribution_to_Deductible__c, Stage__c, Medicare_Referral__c,
zMultiselectSample__c FROM EOC__c WHERE Id IN :ids];
//when we writing a unit test, be sure to use the ASSERT methodology
}
Andrew.Nerney@zPaper.com
20
ONE WORKFLOW IS SIMPLE BUT REAL LIFE ISN'T
Restoring things that are poorly documented can be a "career decision"…
Andrew.Nerney@zPaper.com
21
Workflow Analysis
Andrew.Nerney@zPaper.com
22
Workflow Big Picture
Andrew.Nerney@zPaper.com
23
Workflow Analysis
Free and open source tool to create workflow diagram
What you will need:
 draw.io – free flow chart tool
 Create and Upload Change Sets rights
 Create AppExchange Packages rights
 Upload AppExchange Packages rights
 Don't forget your security token!
Andrew.Nerney@zPaper.com
24
Workflow Analysis Steps
What we will do:
Create a change set containing all workflow elements
Extract the XML from the change set
Convert the XML to draw.io format
Upload to draw.io
Polish the drawing and save as PDF, etc
Andrew.Nerney@zPaper.com
25
Workflow Analysis Steps
• Create a change set and add all Workflow Rules, Email Alerts,
Field Updates, Outbound Messages, and Tasks. DO NOT
upload.
Andrew.Nerney@zPaper.com
26
Workflow Analysis Steps
• Log in to Salesforce through the Metadata Download
• Enter your credentials and then download the ZIP file
Andrew.Nerney@zPaper.com
27
Workflow Analysis Steps
• Extract the ZIP file contents
• Open the .workflow file of an object and copy its contents
Andrew.Nerney@zPaper.com
28
Workflow Analysis Steps
• Open the Workflow to Draw conversion page
• Paste and convert the XML
Andrew.Nerney@zPaper.com
29
Workflow Analysis Steps
• Upload the XML to Google Drive (Drive is not required but this
is the easiest method)
• In Google Drive, open the file using draw.io Pro
Andrew.Nerney@zPaper.com
30
Workflow Analysis Steps
• In draw.io, cut chop and edit as you see fit
Andrew.Nerney@zPaper.com
31
Workflow Analysis Links
Metadata Download link:
https://demo.zpaper.com/zworks/SF_MetaData.jsp
Convert to draw.io format link:
https://demo.zpaper.com/zworks/workflowToDrawIO.jsp
Project repository on GitHub:
https://github.com/zpaper-com/salesforce-workflow-demo
Andrew.Nerney@zPaper.com
32
Notes and Links
Workflow Analysis Tool on GitHub
https://github.com/zpaper-com/salesforce-workflow-demo
Workflow Metadata download link
https://demo.zpaper.com/zworks/SF_MetaData.jsp
Convert to draw.io format link:
https://demo.zpaper.com/zworks/workflowToDrawIO.jsp
Best Practices for Salesforce.com Administrators on CIO.com
http://www.cio.com/article/2685352/customer-relationship-management/best-
practices-for-salesforce-com-administrators.html
Andrew.Nerney@zPaper.com
33
Read the CIO Article
Back up work and protect integrated fields
Review workflow visualizer from GitHub
Some Ideas:
 Link labels to Salesforce.com screens
 Float over details
 Interactive flowchart
Monthly Chromecast giveaway to best improvement
Next Steps & Questions

More Related Content

Similar to sf_school_hard_knocks

Spring '14 Release Developer Preview Webinar
Spring '14 Release Developer Preview WebinarSpring '14 Release Developer Preview Webinar
Spring '14 Release Developer Preview Webinar
Salesforce Developers
 
Elevate workshop programmatic_2014
Elevate workshop programmatic_2014Elevate workshop programmatic_2014
Elevate workshop programmatic_2014
David Scruggs
 

Similar to sf_school_hard_knocks (20)

Building Lightning Components for ISVs (Dreamforce 2015)
Building Lightning Components for ISVs (Dreamforce 2015)Building Lightning Components for ISVs (Dreamforce 2015)
Building Lightning Components for ISVs (Dreamforce 2015)
 
Dreamforce18 update platform
Dreamforce18 update platformDreamforce18 update platform
Dreamforce18 update platform
 
Aan009 Contreras 091907
Aan009 Contreras 091907Aan009 Contreras 091907
Aan009 Contreras 091907
 
Sandboxes: The Future of App Development by Evan Barnet & Pam Barnet
Sandboxes: The Future of App Development by Evan Barnet & Pam BarnetSandboxes: The Future of App Development by Evan Barnet & Pam Barnet
Sandboxes: The Future of App Development by Evan Barnet & Pam Barnet
 
Spring '14 Release Developer Preview Webinar
Spring '14 Release Developer Preview WebinarSpring '14 Release Developer Preview Webinar
Spring '14 Release Developer Preview Webinar
 
Introduction to Apex Triggers
Introduction to Apex TriggersIntroduction to Apex Triggers
Introduction to Apex Triggers
 
Sandboxes: The Future of App Development
Sandboxes: The Future of App DevelopmentSandboxes: The Future of App Development
Sandboxes: The Future of App Development
 
Architecting in the Cloud: Choosing the Right Technologies for your Solution
Architecting in the Cloud: Choosing the Right Technologies for your SolutionArchitecting in the Cloud: Choosing the Right Technologies for your Solution
Architecting in the Cloud: Choosing the Right Technologies for your Solution
 
Coding in the App Cloud
Coding in the App CloudCoding in the App Cloud
Coding in the App Cloud
 
Winter '16 Release - Overview and Highlights
Winter '16 Release - Overview and HighlightsWinter '16 Release - Overview and Highlights
Winter '16 Release - Overview and Highlights
 
Managing Your Batch and Scheduled Apex Processes with Relax
Managing Your Batch and Scheduled Apex Processes with RelaxManaging Your Batch and Scheduled Apex Processes with Relax
Managing Your Batch and Scheduled Apex Processes with Relax
 
How We Built the Private AppExchange App (Apex, Visualforce, RWD)
How We Built the Private AppExchange App (Apex, Visualforce, RWD)How We Built the Private AppExchange App (Apex, Visualforce, RWD)
How We Built the Private AppExchange App (Apex, Visualforce, RWD)
 
Building einstein analytics apps uk-compressed
Building einstein analytics apps   uk-compressedBuilding einstein analytics apps   uk-compressed
Building einstein analytics apps uk-compressed
 
Introduction to Apex Triggers
Introduction to Apex TriggersIntroduction to Apex Triggers
Introduction to Apex Triggers
 
Best Practices for Creating Scalable Apps with Heroku
Best Practices for Creating Scalable Apps with HerokuBest Practices for Creating Scalable Apps with Heroku
Best Practices for Creating Scalable Apps with Heroku
 
Connect Your Clouds with Force.com
Connect Your Clouds with Force.comConnect Your Clouds with Force.com
Connect Your Clouds with Force.com
 
アプリケーションライフサイクル管理とロック解除済みパッケージ
アプリケーションライフサイクル管理とロック解除済みパッケージアプリケーションライフサイクル管理とロック解除済みパッケージ
アプリケーションライフサイクル管理とロック解除済みパッケージ
 
Design Patterns: ISV Recipes for Success (Dreamforce 2015)
Design Patterns: ISV Recipes for Success (Dreamforce 2015)Design Patterns: ISV Recipes for Success (Dreamforce 2015)
Design Patterns: ISV Recipes for Success (Dreamforce 2015)
 
Elevate workshop programmatic_2014
Elevate workshop programmatic_2014Elevate workshop programmatic_2014
Elevate workshop programmatic_2014
 
APP Academy: Market - Get Started with AppExchange, Leads, & Campaigns (Octob...
APP Academy: Market - Get Started with AppExchange, Leads, & Campaigns (Octob...APP Academy: Market - Get Started with AppExchange, Leads, & Campaigns (Octob...
APP Academy: Market - Get Started with AppExchange, Leads, & Campaigns (Octob...
 

sf_school_hard_knocks

  • 2. Andrew.Nerney@zPaper.com 2 ANDREW NERNEY zPaper Ironman and Implementation Engineer zPaper:Fax routing and production of faxes and secure email zPaper:Forms interactive forms zPaper:Mobile unleashes apps and teams with minimal development
  • 3. Andrew.Nerney@zPaper.com 3 Tropical Paradise (vs Safe Harbor) Safe 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 zPaper, 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 product or service availability, 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, new products and services, 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 any litigation, risks associated with completed and any 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-zPaper 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 and in our quarterly report on Form 10-Q for the most recent fiscal quarter. These documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web site. Ask us. Any unreleased services or features referenced in this or other presentations, 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. zPaper, inc. assumes no obligation and does not intend to update these forward-looking statements. Now sit back and enjoy a blue sky ride through the zPaper tropical paradise…..
  • 5. Andrew.Nerney@zPaper.com 5 Things I Learned the Hard Way Salesforce Administrator Best Practices Back Up Your Own Work  Change Sets and Packages Protecting Integrated Fields Workflow Analysis  Workflow visualization tool – open source
  • 6. Andrew.Nerney@zPaper.com 6 Administration Scheduling Best Practices Best Practices for Salesforce.com Administrators (Taber, David. CIO.com, September 18 2014) Ad-Hoc Administration Activities Weekly Administration Activities Monthly Administration Activities Quarterly Administration Activities Annual Administration Activities
  • 8. Andrew.Nerney@zPaper.com 8 Back Up Your Work! Best practice: use Eclipse or Force IDE to back up metadata Quick backup: use a Change Set or a Package What you will need:  Create and Upload Change Sets rights  Create AppExchange Packages rights  Upload AppExchange Packages rights
  • 9. Andrew.Nerney@zPaper.com 9 Back Up Your Work! Back up metadata with a Change Set  Create a Change Set  Extract the metadata XML
  • 10. Andrew.Nerney@zPaper.com 10 Back Up Your Work! Back up metadata with a Package (Managed or Unmanaged)  Upload package to App Exchange  Some elements cannot be uploaded, such as Workflows with Time Triggers  URL stays active if sandbox is refreshed  Save the URL!!!!! Save it outside of Salesforce
  • 11. Andrew.Nerney@zPaper.com 11 AN OUNCE OF PREVENTION IS WORTH…. Rekeying code or data is NOT a best practice
  • 12. Andrew.Nerney@zPaper.com 12 Protect Integrated Fields A 'rose' doesn't smell as sweet if it's renamed to 'flower'. Excel and other external apps need protection too!
  • 14. Andrew.Nerney@zPaper.com 14 Protect Integrated Fields Best Practices: Documentation and Communication Quick and Dirty Trick: use a formula Protects from field deletion, field type changes Does not protect from field API name change
  • 15. Andrew.Nerney@zPaper.com 15 Sample formula syntax Patient_Name__c & ", " & - lookup Description__c & ", " & - text, formula, phone, email, URL TEXT(Date__c) & ", " & - date field TEXT(Total_Requested_Encounters__c) & ", " & - number, percentage TEXT(Contribution_to_Deductible__c) & ", " & - currency TEXT (Stage__c) & ", " & - picklist IF( Medicare_Referral__c , "Medicare True", "Medicare False") & ", " & - boolean IF(ISBLANK(zMultilselectSample__c), "Mutliselect Picklist Blank", "Mutliselect Picklist Not Blank") – multiselect picklist Protect Integrated Fields
  • 17. Andrew.Nerney@zPaper.com 17 User gets an error when deleting field or changing the type Protect Integrated Fields
  • 18. Andrew.Nerney@zPaper.com 18 Protect Integrated Fields More in-depth trick: use an Inactive Apex trigger Protects from field deletion, API name change Does not protect from field type change Requires Apex test class Must be written in a sandbox then deployed to production
  • 19. Andrew.Nerney@zPaper.com 19 Protect Integrated Fields – Inactive Trigger trigger zFieldGuard on EOC__c (before delete) { /* This trigger contains a list of fields used by the zPaper application. The purpose of this trigger is to prevent fields that are referenced by zPaper from being deleted or modified. If you are attempting to delete or modify a field and are getting an error message that leads to this trigger, then the field is used by zPaper and should not be changed. If you need to delete or modify the field, please coordinate your efforts with zPaper Support. Open a case at https://www.zpaper.com/support/, email us at support@zpaper.com, or call us at 770-643-9297 option 2. This trigger does not modify the data in Salesforce.com in any way. */ //get the recordset of records being deleted Set<ID> ids = Trigger.oldMap.keySet(); //compile a list of fields that we don't want other users to delete or rename list<EOC__c> fieldList = [select Id, Patient_Name__c, Description__c, Date__c, Total_Requested_Encounters__c, Contribution_to_Deductible__c, Stage__c, Medicare_Referral__c, zMultiselectSample__c FROM EOC__c WHERE Id IN :ids]; //when we writing a unit test, be sure to use the ASSERT methodology }
  • 20. Andrew.Nerney@zPaper.com 20 ONE WORKFLOW IS SIMPLE BUT REAL LIFE ISN'T Restoring things that are poorly documented can be a "career decision"…
  • 23. Andrew.Nerney@zPaper.com 23 Workflow Analysis Free and open source tool to create workflow diagram What you will need:  draw.io – free flow chart tool  Create and Upload Change Sets rights  Create AppExchange Packages rights  Upload AppExchange Packages rights  Don't forget your security token!
  • 24. Andrew.Nerney@zPaper.com 24 Workflow Analysis Steps What we will do: Create a change set containing all workflow elements Extract the XML from the change set Convert the XML to draw.io format Upload to draw.io Polish the drawing and save as PDF, etc
  • 25. Andrew.Nerney@zPaper.com 25 Workflow Analysis Steps • Create a change set and add all Workflow Rules, Email Alerts, Field Updates, Outbound Messages, and Tasks. DO NOT upload.
  • 26. Andrew.Nerney@zPaper.com 26 Workflow Analysis Steps • Log in to Salesforce through the Metadata Download • Enter your credentials and then download the ZIP file
  • 27. Andrew.Nerney@zPaper.com 27 Workflow Analysis Steps • Extract the ZIP file contents • Open the .workflow file of an object and copy its contents
  • 28. Andrew.Nerney@zPaper.com 28 Workflow Analysis Steps • Open the Workflow to Draw conversion page • Paste and convert the XML
  • 29. Andrew.Nerney@zPaper.com 29 Workflow Analysis Steps • Upload the XML to Google Drive (Drive is not required but this is the easiest method) • In Google Drive, open the file using draw.io Pro
  • 30. Andrew.Nerney@zPaper.com 30 Workflow Analysis Steps • In draw.io, cut chop and edit as you see fit
  • 31. Andrew.Nerney@zPaper.com 31 Workflow Analysis Links Metadata Download link: https://demo.zpaper.com/zworks/SF_MetaData.jsp Convert to draw.io format link: https://demo.zpaper.com/zworks/workflowToDrawIO.jsp Project repository on GitHub: https://github.com/zpaper-com/salesforce-workflow-demo
  • 32. Andrew.Nerney@zPaper.com 32 Notes and Links Workflow Analysis Tool on GitHub https://github.com/zpaper-com/salesforce-workflow-demo Workflow Metadata download link https://demo.zpaper.com/zworks/SF_MetaData.jsp Convert to draw.io format link: https://demo.zpaper.com/zworks/workflowToDrawIO.jsp Best Practices for Salesforce.com Administrators on CIO.com http://www.cio.com/article/2685352/customer-relationship-management/best- practices-for-salesforce-com-administrators.html
  • 33. Andrew.Nerney@zPaper.com 33 Read the CIO Article Back up work and protect integrated fields Review workflow visualizer from GitHub Some Ideas:  Link labels to Salesforce.com screens  Float over details  Interactive flowchart Monthly Chromecast giveaway to best improvement Next Steps & Questions