SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
Untangle Your Org with Salesforce Developer Tools
Shane McLaughlin
Director, Technical Product Marketing
shane.mclaughlin@salesforce.com
@MShaneMc
Doug Ayers
Lead Developer, Trailhead Content
doug.ayers@salesforce.com
@DouglasCAyers
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 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-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 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.
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.
Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
Statement under the Private Securities Litigation Reform Act of 1995
Forward-Looking Statement
Agenda
Why untangle your org?
Common Tangles
1. Profiles
2. Processes and Triggers
3. Page Layouts, Lightning Pages, Reports & Dashboards
Tips, Tricks, Tools
Q&A
An org where it is not apparent which code
and config pertain to which logical apps and
functionality.
To iterate development on a single feature
often requires the entire org’s metadata
deployed to it and may impede the use of
CI/CD, scratch orgs, and other critical tools.
First, what is a tangled org?
Why untangle your org?
Empower multiple teams to own, build, and release independently of each other
Promote reusable functionality and packaging with modular app development
Simplify scratch org setup and adopt CI/CD for each logical app
Team 1 Team 2 Team 3
Tangle 1: Profiles
What does your System Admin profile refer to?
Profiles Are Not Your Friend
System Admin
Profile
Record Type
Assignments
Page Layout
Assignments
Object & Field
Permissions
App
Assignments
Alternative Design with Permission Sets
base schema
base permissions (ALL)
base permissions (regular) base permissions
(read-only)
app schema
app permissions (ALL)
app permissions (regular)
app permissions (read-only)
app schema
app permissions (ALL)
app permissions (regular)
app permissions (read-only)
capstone or soup: includes minimal profiles (ex: layout assignments)
Shane wrote a blog post at bit.ly/migrate-to-permsets
1. Do it manually in the UI
2. Cut and paste in your code editor
3. Open Source plugins for Salesforce CLI
a. Convert with options
b. Align from local source schema
c. Remove objects from profiles/permsets
4. Profile and Permission Set Helper
by Salesforce Labs on AppExchange
Migration Paths from Profiles to Permission Sets
Profile & Permset Demos
Tangle 2: Processes and Triggers
Processes and Triggers Demo
● Platform Events
● Invocable Processes and Autolaunched Flows
● Interfaces, Type.forName, and Callable
○ bit.ly/callable-sean-cuevo
● Dependency Injection
○ bit.ly/df18-force-di
Design Patterns for Untangling Processes and Triggers
Tangle 3: UI
Page Layouts, Lightning Pages,
Reports & Dashboards
Page Layouts, Lightning Pages, Reports & Dashboards
Some things depend on many things; leave them unpackaged or in a top-level package
Tips, Tricks, and Tools
Sometimes you have to build something else to view/test/try your actual project
- project structure
- project.json
“I need this to exist, but not in my package”
Minimum dependencies from the soup
- (unpackaged) mdapi deployments
- (packaged) runtime packages (pilot)
Trick #1: Unpackaged / Implementation Folder
Community Boilerplate: Salesforce’s code included in communities
● Keeps this code out of source tracking
● All communities have this dependency
Standalone, non-dependency, non-dev
● ex: LightningThemes
Feature packages
● fat base: common schema, ui, perms, etc.
● extensions: minimal schema, community
Trick #2: Package Patterns
AppExchange in setup script
Refer to a package on GitHub (not manually updating versions everywhere
downstream)
● source code for package version list
● install script/plugin
Deploying actual source via GitHub
Trick #3: Ways to Include “packages” in Deployments
Scenario
- You got rid of the 4 standard account layouts
- Every DE scratch org has them
- Adding a required field to an object populates them
- sfdx force:pull:source
Solution
- DestructiveChanges.xml (package.xml format)
- Script that uses this
Trick #4: Destructive Changes for Unwanted Stuff
Next Steps
● Second-Generation Packaging: a Practical Guide
● Package-Based App Development Patterns
● Accelerate Source-Driven Development with
Unlocked Packages and Scratch Orgs
● Truly Asynchronous Apex Triggers using Change Data
Capture
Explore Related Sessions
Check out the session recordings after the conference
What’s Next?
Experience Salesforce DX across TDX 2019
See demos, join a workshop,
ask questions & more!
Visit us at Platform Point!
Floor 1
Related Sessions
W, 12:30pm The Salesforce DX Cheatsheet Surfside Theater
W, 2:30pm Transitioning to Custom Metadata Types Redwood Theater
W, 3:45pm Salesforce DX for ISVs: How to Get Started Reefscape Theater
W, 5:00pm Unleash Citizen Developers Effectively Redwood Theater
Th, 8:30am Accelerate DevOps with GitLab and Salesforce Room 2005
Th, 10:00am Best Practices: Building with VS Code Room 2004
Th, 1:00pm Accelerate Source-Driven Development with
Unlocked Packages and Scratch Orgs
Room 2004
Th, 2:00pm How We Built Salesforce DX Room 2004
3rd Floor
Keynote Room
Super Sessions:
Salesforce <3 DX
Weds at 3:00 PM
Build Together
with Low Code
Thurs at 11:00 AM
TDX19 - Untangle Your Org with Salesforce Developer Tools

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Salesforce & GitLab Integration for Next-gen DevOps with CEPTES
Salesforce & GitLab Integration for Next-gen DevOps with CEPTESSalesforce & GitLab Integration for Next-gen DevOps with CEPTES
Salesforce & GitLab Integration for Next-gen DevOps with CEPTES
 
Build Together And Deliver Continuously With Salesforce DX
Build Together And Deliver Continuously With Salesforce DXBuild Together And Deliver Continuously With Salesforce DX
Build Together And Deliver Continuously With Salesforce DX
 
COPADO - Plateforme de DEVOPS pour Salesforce
COPADO - Plateforme de DEVOPS pour SalesforceCOPADO - Plateforme de DEVOPS pour Salesforce
COPADO - Plateforme de DEVOPS pour Salesforce
 
How to Setup Continuous Integration With Git, Jenkins, and Force.com
How to Setup Continuous Integration With Git, Jenkins, and Force.comHow to Setup Continuous Integration With Git, Jenkins, and Force.com
How to Setup Continuous Integration With Git, Jenkins, and Force.com
 
Dreamforce 2017: Salesforce DX - an Admin's Perspective
Dreamforce 2017:  Salesforce DX - an Admin's PerspectiveDreamforce 2017:  Salesforce DX - an Admin's Perspective
Dreamforce 2017: Salesforce DX - an Admin's Perspective
 
From Sandbox To Production: An Introduction to Salesforce Release Management
From Sandbox To Production: An Introduction to Salesforce Release ManagementFrom Sandbox To Production: An Introduction to Salesforce Release Management
From Sandbox To Production: An Introduction to Salesforce Release Management
 
Release Management: Managing Your Internal Releases
Release Management: Managing Your Internal ReleasesRelease Management: Managing Your Internal Releases
Release Management: Managing Your Internal Releases
 
Scaling Continuous Integration for Puppet
Scaling Continuous Integration for PuppetScaling Continuous Integration for Puppet
Scaling Continuous Integration for Puppet
 
Crossbrowser Testing at Salesforce Analytics
Crossbrowser Testing at Salesforce AnalyticsCrossbrowser Testing at Salesforce Analytics
Crossbrowser Testing at Salesforce Analytics
 
A Recipe for Scale: Succeeding with Agile Software Development in the Enterprise
A Recipe for Scale: Succeeding with Agile Software Development in the EnterpriseA Recipe for Scale: Succeeding with Agile Software Development in the Enterprise
A Recipe for Scale: Succeeding with Agile Software Development in the Enterprise
 
The Ideal Salesforce Development Lifecycle
The Ideal Salesforce Development LifecycleThe Ideal Salesforce Development Lifecycle
The Ideal Salesforce Development Lifecycle
 
Development Best Practices
Development Best PracticesDevelopment Best Practices
Development Best Practices
 
Salesforce API Series: Release Management with the Metadata API webinar
Salesforce API Series: Release Management with the Metadata API webinarSalesforce API Series: Release Management with the Metadata API webinar
Salesforce API Series: Release Management with the Metadata API webinar
 
Salesforce.com Sandbox management
Salesforce.com Sandbox management Salesforce.com Sandbox management
Salesforce.com Sandbox management
 
Meet The Welkin Suite IDE: Product Overview
Meet The Welkin Suite IDE: Product OverviewMeet The Welkin Suite IDE: Product Overview
Meet The Welkin Suite IDE: Product Overview
 
Best Practices for Successful Deployment
Best Practices for Successful DeploymentBest Practices for Successful Deployment
Best Practices for Successful Deployment
 
How to build a Salesforce DevOps process with Gearset
How to build a Salesforce DevOps process with GearsetHow to build a Salesforce DevOps process with Gearset
How to build a Salesforce DevOps process with Gearset
 
Dev ops.enterprise.2014 (1)
Dev ops.enterprise.2014 (1)Dev ops.enterprise.2014 (1)
Dev ops.enterprise.2014 (1)
 
Automate Salesforce Releases with DevOps: Crawl, Walk, Run!
Automate Salesforce Releases with DevOps: Crawl, Walk, Run!Automate Salesforce Releases with DevOps: Crawl, Walk, Run!
Automate Salesforce Releases with DevOps: Crawl, Walk, Run!
 
Salesforce1 ELEVATE Workshop - Dublin
Salesforce1 ELEVATE Workshop - DublinSalesforce1 ELEVATE Workshop - Dublin
Salesforce1 ELEVATE Workshop - Dublin
 

Similar a TDX19 - Untangle Your Org with Salesforce Developer Tools

Similar a TDX19 - Untangle Your Org with Salesforce Developer Tools (20)

Salesforce Lightning workshop Hartford - 12 March
Salesforce Lightning workshop Hartford - 12 MarchSalesforce Lightning workshop Hartford - 12 March
Salesforce Lightning workshop Hartford - 12 March
 
Salesforce Lightning workshop
Salesforce Lightning workshopSalesforce Lightning workshop
Salesforce Lightning workshop
 
Adopting Salesforce DX
Adopting Salesforce DXAdopting Salesforce DX
Adopting Salesforce DX
 
Modern App Dev: Modular Development Strategies
Modern App Dev: Modular Development StrategiesModern App Dev: Modular Development Strategies
Modern App Dev: Modular Development Strategies
 
PhillyForce 2018 - Salesforce Platform Keynote
PhillyForce 2018  - Salesforce Platform KeynotePhillyForce 2018  - Salesforce Platform Keynote
PhillyForce 2018 - Salesforce Platform Keynote
 
Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...
Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...
Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...
 
Best Practices for Team Development in a Single Org
Best Practices for Team Development in a Single OrgBest Practices for Team Development in a Single Org
Best Practices for Team Development in a Single Org
 
San Diego Salesforce User Group - Lightning Overview
San Diego Salesforce User Group - Lightning OverviewSan Diego Salesforce User Group - Lightning Overview
San Diego Salesforce User Group - Lightning Overview
 
Lightning Developer Week - Bangalore Salesforce Developer Group
Lightning Developer Week - Bangalore Salesforce Developer GroupLightning Developer Week - Bangalore Salesforce Developer Group
Lightning Developer Week - Bangalore Salesforce Developer Group
 
Transition to the Lightning Experience: Pro Tips, Tools and a Transition Stra...
Transition to the Lightning Experience: Pro Tips, Tools and a Transition Stra...Transition to the Lightning Experience: Pro Tips, Tools and a Transition Stra...
Transition to the Lightning Experience: Pro Tips, Tools and a Transition Stra...
 
Coding in the App Cloud
Coding in the App CloudCoding in the App Cloud
Coding in the App Cloud
 
Lightning Developer Experience, Eclipse IDE Evolved
Lightning Developer Experience, Eclipse IDE EvolvedLightning Developer Experience, Eclipse IDE Evolved
Lightning Developer Experience, Eclipse IDE Evolved
 
Lightning Workshop London
Lightning Workshop LondonLightning Workshop London
Lightning Workshop London
 
Developer Preview Live – Release Readiness LIVE, Spring '18
Developer Preview Live – Release Readiness LIVE, Spring '18Developer Preview Live – Release Readiness LIVE, Spring '18
Developer Preview Live – Release Readiness LIVE, Spring '18
 
Suisse Romande SF DG - Lightning workshop
Suisse Romande SF DG - Lightning workshopSuisse Romande SF DG - Lightning workshop
Suisse Romande SF DG - Lightning workshop
 
#Df17 Recap Series Build Apps Faster with the Salesforce Platform
#Df17 Recap Series Build Apps Faster with the Salesforce Platform #Df17 Recap Series Build Apps Faster with the Salesforce Platform
#Df17 Recap Series Build Apps Faster with the Salesforce Platform
 
Get Started with Salesforce DX!
Get Started with Salesforce DX!Get Started with Salesforce DX!
Get Started with Salesforce DX!
 
Integrating with salesforce
Integrating with salesforceIntegrating with salesforce
Integrating with salesforce
 
Automating the Impossible: End to End Team Development for ISVs (October 14, ...
Automating the Impossible: End to End Team Development for ISVs (October 14, ...Automating the Impossible: End to End Team Development for ISVs (October 14, ...
Automating the Impossible: End to End Team Development for ISVs (October 14, ...
 
Understanding the Salesforce Architecture: How We Do the Magic We Do
Understanding the Salesforce Architecture: How We Do the Magic We DoUnderstanding the Salesforce Architecture: How We Do the Magic We Do
Understanding the Salesforce Architecture: How We Do the Magic We Do
 

Más de Doug Ayers

Más de Doug Ayers (9)

Adopting Files and Enhanced Notes in Lightning Experience
Adopting Files and Enhanced Notes in Lightning ExperienceAdopting Files and Enhanced Notes in Lightning Experience
Adopting Files and Enhanced Notes in Lightning Experience
 
Chatter Bot - Enabling New Capabilities for Process Builder
Chatter Bot - Enabling New Capabilities for Process BuilderChatter Bot - Enabling New Capabilities for Process Builder
Chatter Bot - Enabling New Capabilities for Process Builder
 
Dreamforce '16 Recap & Winter '17 Release
Dreamforce '16 Recap & Winter '17 ReleaseDreamforce '16 Recap & Winter '17 Release
Dreamforce '16 Recap & Winter '17 Release
 
Salesforce - How to Load Leads and Add to Campaigns with Import Wizard
Salesforce - How to Load Leads and Add to Campaigns with Import WizardSalesforce - How to Load Leads and Add to Campaigns with Import Wizard
Salesforce - How to Load Leads and Add to Campaigns with Import Wizard
 
Salesforce: Advanced Lead Conversion Using Process Builder
Salesforce: Advanced Lead Conversion Using Process BuilderSalesforce: Advanced Lead Conversion Using Process Builder
Salesforce: Advanced Lead Conversion Using Process Builder
 
Salesforce - The Power of Upsert and External IDs - How To - Workbench
Salesforce - The Power of Upsert and External IDs - How To - WorkbenchSalesforce - The Power of Upsert and External IDs - How To - Workbench
Salesforce - The Power of Upsert and External IDs - How To - Workbench
 
Salesforce - Filtered Related Lists Without Code
Salesforce - Filtered Related Lists Without CodeSalesforce - Filtered Related Lists Without Code
Salesforce - Filtered Related Lists Without Code
 
Dreamforce 15 Recap & Winter 16 Release Notes
Dreamforce 15 Recap & Winter 16 Release NotesDreamforce 15 Recap & Winter 16 Release Notes
Dreamforce 15 Recap & Winter 16 Release Notes
 
Salesforce1 Mobile Experience - Remedyforce On Call
Salesforce1 Mobile Experience - Remedyforce On CallSalesforce1 Mobile Experience - Remedyforce On Call
Salesforce1 Mobile Experience - Remedyforce On Call
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 

TDX19 - Untangle Your Org with Salesforce Developer Tools

  • 1. Untangle Your Org with Salesforce Developer Tools Shane McLaughlin Director, Technical Product Marketing shane.mclaughlin@salesforce.com @MShaneMc Doug Ayers Lead Developer, Trailhead Content doug.ayers@salesforce.com @DouglasCAyers
  • 2. 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 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-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 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. 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. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements. Statement under the Private Securities Litigation Reform Act of 1995 Forward-Looking Statement
  • 3. Agenda Why untangle your org? Common Tangles 1. Profiles 2. Processes and Triggers 3. Page Layouts, Lightning Pages, Reports & Dashboards Tips, Tricks, Tools Q&A
  • 4. An org where it is not apparent which code and config pertain to which logical apps and functionality. To iterate development on a single feature often requires the entire org’s metadata deployed to it and may impede the use of CI/CD, scratch orgs, and other critical tools. First, what is a tangled org?
  • 5. Why untangle your org? Empower multiple teams to own, build, and release independently of each other Promote reusable functionality and packaging with modular app development Simplify scratch org setup and adopt CI/CD for each logical app Team 1 Team 2 Team 3
  • 7. What does your System Admin profile refer to? Profiles Are Not Your Friend System Admin Profile Record Type Assignments Page Layout Assignments Object & Field Permissions App Assignments
  • 8. Alternative Design with Permission Sets base schema base permissions (ALL) base permissions (regular) base permissions (read-only) app schema app permissions (ALL) app permissions (regular) app permissions (read-only) app schema app permissions (ALL) app permissions (regular) app permissions (read-only) capstone or soup: includes minimal profiles (ex: layout assignments)
  • 9. Shane wrote a blog post at bit.ly/migrate-to-permsets 1. Do it manually in the UI 2. Cut and paste in your code editor 3. Open Source plugins for Salesforce CLI a. Convert with options b. Align from local source schema c. Remove objects from profiles/permsets 4. Profile and Permission Set Helper by Salesforce Labs on AppExchange Migration Paths from Profiles to Permission Sets
  • 11. Tangle 2: Processes and Triggers
  • 13. ● Platform Events ● Invocable Processes and Autolaunched Flows ● Interfaces, Type.forName, and Callable ○ bit.ly/callable-sean-cuevo ● Dependency Injection ○ bit.ly/df18-force-di Design Patterns for Untangling Processes and Triggers
  • 14. Tangle 3: UI Page Layouts, Lightning Pages, Reports & Dashboards
  • 15. Page Layouts, Lightning Pages, Reports & Dashboards Some things depend on many things; leave them unpackaged or in a top-level package
  • 17. Sometimes you have to build something else to view/test/try your actual project - project structure - project.json “I need this to exist, but not in my package” Minimum dependencies from the soup - (unpackaged) mdapi deployments - (packaged) runtime packages (pilot) Trick #1: Unpackaged / Implementation Folder
  • 18. Community Boilerplate: Salesforce’s code included in communities ● Keeps this code out of source tracking ● All communities have this dependency Standalone, non-dependency, non-dev ● ex: LightningThemes Feature packages ● fat base: common schema, ui, perms, etc. ● extensions: minimal schema, community Trick #2: Package Patterns
  • 19. AppExchange in setup script Refer to a package on GitHub (not manually updating versions everywhere downstream) ● source code for package version list ● install script/plugin Deploying actual source via GitHub Trick #3: Ways to Include “packages” in Deployments
  • 20. Scenario - You got rid of the 4 standard account layouts - Every DE scratch org has them - Adding a required field to an object populates them - sfdx force:pull:source Solution - DestructiveChanges.xml (package.xml format) - Script that uses this Trick #4: Destructive Changes for Unwanted Stuff
  • 22. ● Second-Generation Packaging: a Practical Guide ● Package-Based App Development Patterns ● Accelerate Source-Driven Development with Unlocked Packages and Scratch Orgs ● Truly Asynchronous Apex Triggers using Change Data Capture Explore Related Sessions Check out the session recordings after the conference
  • 23. What’s Next? Experience Salesforce DX across TDX 2019 See demos, join a workshop, ask questions & more! Visit us at Platform Point! Floor 1 Related Sessions W, 12:30pm The Salesforce DX Cheatsheet Surfside Theater W, 2:30pm Transitioning to Custom Metadata Types Redwood Theater W, 3:45pm Salesforce DX for ISVs: How to Get Started Reefscape Theater W, 5:00pm Unleash Citizen Developers Effectively Redwood Theater Th, 8:30am Accelerate DevOps with GitLab and Salesforce Room 2005 Th, 10:00am Best Practices: Building with VS Code Room 2004 Th, 1:00pm Accelerate Source-Driven Development with Unlocked Packages and Scratch Orgs Room 2004 Th, 2:00pm How We Built Salesforce DX Room 2004 3rd Floor Keynote Room Super Sessions: Salesforce <3 DX Weds at 3:00 PM Build Together with Low Code Thurs at 11:00 AM