$30 off During Our Annual Pro Sale. View Details »

スクラッチ組織活用術 Salesforce Developers Meetup #24

omiend
November 13, 2020

スクラッチ組織活用術 Salesforce Developers Meetup #24

スクラッチ組織活用術
Salesforce Developers Meetup #24

omiend

November 13, 2020
Tweet

More Decks by omiend

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

  3. Scalebase - アルプ株式会社

    View Slide

  4. Scalebase Connect for Salesforce

    View Slide

  5. 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

    View Slide

  6. スクラッチ組織活用術

    View Slide

  7. 課題

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  16. テストデータを作成する

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  20. {
    "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"
    }
    ]
    }
    テストデータを作成する

    View Slide

  21. 標準ユーザーを作る

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  27. パスワードを作成する

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  31. など など etc etc

    View Slide

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

    View Slide

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

    View Slide

  34. 勝ったな

    View Slide

  35. スクラッチ組織の作成

    View Slide

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

    View Slide

  37. Salesforce Winter '21

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  42. 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

    View Slide