You're ready to start using your favorite tools with Salesforce DX to develop for your orgs, but you're not sure where to get started, or what a successful migration to open tooling even look likes. If that sounds familiar, this session is for you! We'll explore some of the common places where your metadata gets tangled and what tools are available to get it all straightened out.
https://success.salesforce.com/sessions?eventId=a1Q3A000026slov#/session/a2q3A000002BGcEQAW
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
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