Salesforce DX
2017.7.12
Tokyo Salesforce Developer Group
Meetup #15
• Salesforce DX CLI
• https://goo.gl/rHYmms OS
• Dev Hub Trial Org
• https://goo.gl/p1pL87






Twitter: zaki___yama



Blog: http://dackdive.hateblo.jp/
• Salesforce DX
•
•
• Salesforce DX CLI
• CLI
• Dev Hub
• Scratch Org
•
•
Salesforce DX
• Dreamforce’16 Dev Keynote
• Pilot
• 6 TrailheaDX Open Beta
• Trailhead
Salesforce DX :
https://www.slideshare.net/DeveloperForceJapan/spring-17
https://www.slideshare.net/DeveloperForceJapan/spring-17
https://www.slideshare.net/DeveloperForceJapan/spring-17
• CLI
•
•
•
• Scratch Org
• Docker
Salesforce DX :
• CLI
Metadata API
• Force.com Migration Tool jsforce
• CLI
:
Salesforce DX CLI
CLI
https://trailhead.salesforce.com/ja/trails/sfdx_get_started/modules/sfdx_app_dev/units/
sfdx_app_dev_setup_dx#Tdxn4tBK-heading6
• Dev Hub = Scratch Org
• Dev Hub
1. 30
2. Dev Hub
Dev Hub
1. Dev Hub Trial Org
https://developer.salesforce.com/promotions/orgs/dx-signup
2.
Dev Hub
$ sfdx force:auth:web:login -d -a DevHub
# :
-d: Dev Hub
-a:
#
$ sfdx force:org:open -u DevHub
Tips:
$ sfdx force:auth:web:login -a FullSandbox
$ sfdx force:auth:web:login -a DevSandbox
• force:auth:web:login Dev Hub Scratch
Org
• Sandbox
Tips:
$ sfdx force:auth:web:logi -d -a DevHub
▸ force:auth:web:logi is not a sfdx command.
▸ Perhaps you meant force:auth:web:login?
▸ Run sfdx _ to run sfdx force:auth:web:login -d -a DevHub.
▸ Run sfdx help for a list of available commands.
$ sfdx _
Successfully authorized admin@yama.dev-hub.com with org id
00D7F000000ykQEUAY
You may now close the browser
typo 

sfdx _
$ sfdx force:org:list
=== Organizations
ALIAS USERNAME ORG ID
!!! !!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!
scratchorg1487912703272@yourcompany.com 00D3D0000000
DXPlayground shingoyamazaki00@cunning-raccoon-459484.com 00D7F000000z
(D) DevHub admin@yama.dev-hub.com 00D7F000000y
Hub Org dxpilot+shingoyamazaki00@gmail.com 00D6F000001f
ALIAS SCRATCH ORG NAME USERNAME O
!!!!!!!!!!!!! !!!!!!!!!!!!!!!! !!!!!!
GeoTestOrg yamazaki Company test-kqg7awbaeoo1@yamazaki_company.net 0
TempUnmanaged yamazaki Company test-nizw4ivearhy@yamazaki_company.net 0
$ sfdx force:project:create -n geolocation
$ tree geolocation
geolocation
"!! README.md
"!! config
#   %!! project-scratch-def.json
"!! force-app
#   %!! main
#   %!! default
#   %!! aura
%!! sfdx-project.json
# Git
sfdx-project.json
{
"packageDirectories": [
{
"path": "force-app",
"default": true
}
],
"namespace": "",
"sfdcLoginUrl": "https://login.salesforce.com",
"sourceApiVersion": "40.0"
}


Salesforce DX Developer Guide (Beta) > Salesforce DX Project Configuration
config/project-scratch-def.json
{
"orgName": "yamazaki Company",
"edition": "Developer",
"orgPreferences" : {
"enabled": ["S1DesktopEnabled"]
}
}


Salesforce DX Developer Guide (Beta) > Scratch Org Definition File
Salesforce DX Developer Guide (Beta) > Scratch Org Definition Configuration Values
Scratch Org
Scratch Org
$ sfdx force:org:create -s -f config/project-scratch-def.json -a
GeoAppScratch
# :
-s Scratch Org
-f Scratch Org
-a
# `.sfdx`
# .gitignore
# geolocation
$ git clone https://github.com/zaki-yama/sfdx-trailhead tmp
$ cp -r tmp/geolocation/force-app geolocation
$ cp -r tmp/geolocation/data geolocation
#
$ sfdx force:source:push
STATE FULL NAME TYPE PROJECT
!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!! !!!!!!!!
Add AccountList AuraDefinitionBundle force-ap
Add AccountListItem AuraDefinitionBundle force-ap
Add AccountLocator AuraDefinitionBundle force-ap
Add AccountMap AuraDefinitionBundle force-ap
...


https://github.com/zaki-yama/sfdx-trailhead/tree/master/geolocation
# Geolocation
# (force-app/main/default/permissionsets/Geolocation.permissionset)
$ sfdx force:user:permset:assign -n Geolocation
Permission Set successfully assigned
$ sfdx force:data:tree:import -f data/Account.json
=== Import Results
REFERENCE ID TYPE ID
!!!!!!!!!!!! !!!!!!! !!!!!!!!!!!!!!!!!!
AccountRef1 Account 0010q000004soQGAAY
AccountRef2 Account 0010q000004soQHAAY
AccountRef3 Account 0010q000004soQIAAY
# json
-
- force:data:tree:export -q “SELECT Id, …” -d ./data
#
#
$ sfdx force:org:open
Scratch Org
$ mkdir mdapioutput
# force-app/ mdapioutput/
$ sfdx force:source:convert -d mdapioutput/
#
$ sfdx force:mdapi:deploy -d mdapioutput/ -u MyTPO -w 100
Scratch Org
convert
force:source force:mdapi
Scratch Org
$ sfdx force:org:delete -u GeoAppScratch
Enqueue scratch org with name: GeoAppScratch for deletion? Are you
sure (y/n)?: y
Successfully marked scratch org GeoAppScratch for deletion
Scratch Org
• Scratch Org
•
• CI Git/GitHub Flow
• CLI
•
• Apex Lightning Component
• retrieve
•
• retrieve
Trailhead
•
•
•
Trailhead

Salesforce DX ことはじめ