Slide 1

Slide 1 text

アルプ株式会社 @omiend スクラッチ組織活用術 Salesforce Developers Meetup #24

Slide 2

Slide 2 text

自己紹介 オミ@omiend 仕事: アルプ株式会社。 Scala が好き。 Salesforce は2011年~2015年に Force.com を中心に開発。 1月にアルプへ入社して、5年ぶりの Salesforce 開発。 浦島太郎状態。 趣味: ジョギング、ウォーキング、映画、音楽

Slide 3

Slide 3 text

Scalebase - アルプ株式会社

Slide 4

Slide 4 text

Scalebase Connect for Salesforce

Slide 5

Slide 5 text

alp.connpass.com 2020年12月11日(金) 19:00 ~ 田中宏樹さま - 株式会社セールスフォース・ドットコム Salesforce の最新の開発事情 相野谷直樹さま - アルプ株式会社 Modern Salesforce CI pattern (ただし第1世代パッケージ管理)(仮) 木村篤彦さま - 株式会社co-meeting Salesforce連携アプリ開発パターン(仮) 松田淳司さま - 株式会社ZAICO はじめてのAppExchange ~ZAICO for Salesforceのリリースに挑む ~ SaaS * Salesforce Developers Winter 2020

Slide 6

Slide 6 text

スクラッチ組織活用術

Slide 7

Slide 7 text

課題

Slide 8

Slide 8 text

課題 Salesforce開発は、組織がどんどん増えていく - 本番環境、Sandbox環境*n 用途の為に都度Sandbox環境を作る運用は結構つらい - 作成がちょっと煩雑 - 管理も職人芸になっていく - メンテ漏れ 自分だけの開発環境が欲しい スクラッチ組織というとても便利な物がある - DevHub組織さえ有効化すればOK

Slide 9

Slide 9 text

スクラッチ組織を作成する

Slide 10

Slide 10 text

スクラッチ組織の作成 $ sfdx force:auth:web:login -d -a DevHub $ sfdx force:alias:list === Alias List Alias Value ──────────── ────────────────────────── DevHub [email protected]

Slide 11

Slide 11 text

$ sfdx force:org:create \ -f ./config/project-scratch-def.json \ --setdefaultusername \ -a MyScratchOrg \ --targetdevhubusername DevHub \ --durationdays 30 スクラッチ組織の作成

Slide 12

Slide 12 text

$ sfdx force:org:create \ -f ./config/project-scratch-def.json \ --setdefaultusername \ -a MyScratchOrg \ --targetdevhubusername DevHub \ --durationdays 30 スクラッチ組織の作成

Slide 13

Slide 13 text

スクラッチ組織の作成 { "edition": "Developer", "orgName": "SomeOrgName", "adminEmail": "[email protected]", "username": "[email protected]", "features": ["API"] } .project/config/sample-project-scratch-def.json

Slide 14

Slide 14 text

ソースコードをデプロイする

Slide 15

Slide 15 text

sfdx force:source:deploy \ -u MyScratchOrg -m ApexClass,... ソースコードをデプロイする

Slide 16

Slide 16 text

テストデータを作成する

Slide 17

Slide 17 text

テストデータを作成する $ sfdx force:data:tree:import \ -p .project/data/Account-plan.json \ -u MyScratchOrg

Slide 18

Slide 18 text

$ sfdx force:data:tree:import \ -p .project/data/Account-plan.json \ -u MyScratchOrg テストデータを作成する

Slide 19

Slide 19 text

[ { "sobject": "Account", "saveRefs": true, "resolveRefs": false, "files": [ "Accounts.json" ] } ] テストデータを作成する

Slide 20

Slide 20 text

{ "records": [ { "attributes": { "type": "Account", "referenceId": "A" }, "Name": "アルプ株式会社 ", "BillingPostalCode": "1086022", "BillingCountry": "日本", "BillingState": "東京都", "BillingCity": "港区", "BillingStreet": "港南 2-15-1 品川インターシティA棟 22階 SPROUND", "ShippingPostalCode": "1086022", "ShippingCountry": "日本", "ShippingState": "東京都", "ShippingCity": "港区", "ShippingStreet": "港南 2-15-1 品川インターシティA棟 22階 SPROUND" } ] } テストデータを作成する

Slide 21

Slide 21 text

標準ユーザーを作る

Slide 22

Slide 22 text

$ sfdx force:user:create \ --setalias StandardUser \ --definitionfile ./config/project-scratch-standart-user-def.json 標準ユーザーを作る

Slide 23

Slide 23 text

$ sfdx force:user:create \ --setalias StandardUser \ --definitionfile ./config/project-scratch-standart-user-def.json 標準ユーザーを作る

Slide 24

Slide 24 text

標準ユーザーを作る { "Username": "[email protected]", "LastName": "Standard", "Email": "[email protected]", "profileName": "標準ユーザ", "generatePassword": true } .project/config/sample-project-scratch-standard-user-def.json

Slide 25

Slide 25 text

スクラッチ組織に ログインする

Slide 26

Slide 26 text

$ sfdx force:org:open -u MyScratchOrg $ sfdx force:org:open -u StandartUser スクラッチ組織にログインする

Slide 27

Slide 27 text

パスワードを作成する

Slide 28

Slide 28 text

$ sfdx force:user:password:generate -u MyScratchOrg Successfully set the password "qwerty" for user [email protected]. パスワードを作成する

Slide 29

Slide 29 text

作成したユーザーの 詳細を参照する

Slide 30

Slide 30 text

$ sfdx force:user:display -u MyScratchOrg 作成したユーザーの詳細を参照する

Slide 31

Slide 31 text

など など etc etc

Slide 32

Slide 32 text

コマンドをたくさん 叩くのがつらい!

Slide 33

Slide 33 text

sfdx コマンドは shell に組み込める

Slide 34

Slide 34 text

勝ったな

Slide 35

Slide 35 text

スクラッチ組織の作成

Slide 36

Slide 36 text

注意点 - 名前空間を利用している場合、スクラッチ組 織作成時の設定ファイルで指定してあげる 必要がある( "namespace": "hoge", )。 - スクラッチ組織作成時のユーザー名は、一意 になるように、都度書き換える必要がある。 - テストデータを作成する際、一意の値は都度 書き換える必要がある(Account.Name に 指定する値など)。

Slide 37

Slide 37 text

Salesforce Winter '21

Slide 38

Slide 38 text

Salesforce Winter ‘21 releasenotes.docs.salesforce.com/ja-jp/winter21/release-notes/rn_forcecom_development.htm

Slide 39

Slide 39 text

- 弊社のプロダクトは主にAppExchangeのパッケージ 開発。 - ソースコードはGitHub管理しており、第2世代パッ ケージ管理を目指している(まだ対応できていない)。 - パッケージ作成を行う組織(一般的には SourceOrg?)のシェイプを作成し、そこからスクラッ チ組織を作成するみたいな機能かと思うが、上記の 点でマッチしなかった。 - ズビバゼン Salesforce Winter ‘21

Slide 40

Slide 40 text

より快適な スクラッチ組織ライフ を目指して

Slide 41

Slide 41 text

Scalebase Connect for Salesforce - GitHub Actions にてスクラッチ 組織を作成し、テストを実行 - この辺は弊社主催の「SaaS * Salesforce Winter 2020」にて ご紹介できるかも

Slide 42

Slide 42 text

alp.connpass.com 2020年12月11日(金) 19:00 ~ 田中宏樹さま - 株式会社セールスフォース・ドットコム Salesforce の最新の開発事情 相野谷直樹さま - アルプ株式会社 Modern Salesforce CI pattern (ただし第1世代パッケージ管理)(仮) 木村篤彦さま - 株式会社co-meeting Salesforce連携アプリ開発パターン(仮) 松田淳司さま - 株式会社ZAICO はじめてのAppExchange ~ZAICO for Salesforceのリリースに挑む ~ 【再掲】SaaS * Salesforce Developers Winter 2020