DreamHouseアプリケーションを使ったスクラッチ組織の環境構築を試してみました。DreamHouseはSalesforce社が用意したサンプルアプリケーションでGitHubで公開されています。
TrailheadにはこのDreamHouseアプリケーションをつかったスクラッチ組織構築手順を学べるモジュールが用意されています。SalesforceCLIまわりについて少し理解が進んだので改めてこのサンプルアプリケーションをつかったスクラッチ組織の環境構築を試してみました。
事前準備
Dev Hub組織を用意します。Developer Edtion組織またはTrailheadのハンズオン組織で問題ありません。設定からDevhub組織の有効化を行えば準備完了です。
GitHubからプロジェクトのダウンロード
Trailheadの手順で進めます。
git clone コマンドでdreamhose-lwcリポジトリをコピーします。git cloneのあとはcdコマンドで作成したdreamhouse-lwcディレクトリに移動します。
参考
draemhouseアプリケーションの中にはforce-appフォルダの中にapexコード一式が格納されていて、dataフォルダの中にテストデータインポート用のファイルが用意されています。
プロジェクトのブランチを作成
ターミナルからgit コマンドを実行してブランチを作成します。
コマンドの内容
// git clone直後は mainのみ表示される。 git branch // このコマンドでブランチ作成と作成したブランチに切り替えを実行 git checkout -b my_branch // ブランチが切り替わっていることを確認 git branch
DevHev組織の認証設定
ログインコマンド
sf org login web -a DevHub -d -b chrome
ログインするとこのような感じで認証とtarget-dev-hubのセットができます。
スクラッチ組織の作成
SalesforceCLIでDevHub組織の認証ができていればスクラッチ組織作成コマンドで組織を作成できます。
sf org create scratch -d -f config/project-scratch-def.json -a dreamhouse-org
作成処理は短時間で完了します。
作成コマンドの「-f config/project-scratch-def.json」はスクラッチ組織作成の定義ファイルを参照しています。DreamHouseではこのように宣言していました。
作成したスクラッチ組織は open コマンドでアクセスできます。
- o で対象組織を指定できます。 -b で表示ブラウザを指定できます。
sf org open -o dreamhouse-org -b chrome
スクラッチ組織にソースをデプロイ
dreamhouseアプリケーションをスクラッチ組織にデプロイします。ソース一式はforce-appフォルダの中で確認できますが、関連するオブジェクトやレイアウト、タブなどのメタデータも格納されている状態となっていました。
デプロイコマンドは次の内容を実行します。
sf project deploy start
実行してみるとすごく簡単にデプロイが成功しました。「sf project deploy start」コマンドは実行時に対象ソースを指定したりマニフェストファイルを指定したりとフラグ設定が可能ですが、全部が対象のときにはフラグ未設定でそのまま実行すればよかったです。(ちなみにdreamhouse-lwcにはpackage.xmlは含まれていませんでした。)
メッセージどおりにデプロイできているかはスクラッチ組織にアクセスすると確認できます。
権限セットの割り当て
スクラッチ組織にDreamHouseをデプロイできたら権限セットの割り当て操作も試すことができます。
次の書き方でDreamHouseという権限セットをスクラッチ組織の管理者ユーザに割り当てることができます。
sf org assign permset -n Dreamhouse
テストデータのインポート
スクラッチ組織でDreamhouseアプリケーションを動かしてみる際に必要なテストデータのインポートも簡単に実施できます。
「sf data import tree」コマンドを使用します。-p はインポート対象のファイルのパスです。
sf data import tree -p data/sample-data-plan.json
コマンド実行が成功したあとスクラッチ組織で対象オブジェクトを見てみるとテストデータが正常に登録されていました。
データインポートのファイルについて
dataフォルダの中には次の4ファイルが用意されています。
- brokers-data.json
- properties-data.json
- contacts-data.json
- sample-data-plan.json
上の3つは各オブジェクトごとのデータ情報です。一番下の「sample-data-plan.json」はプラン定義ファイルというもので、インポート対象のファイルとリレーションまわりの定義を行うファイルです。data import treeコマンドではプラン定義ファイルを指定して処理を行うようです。
プラン定義ファイルはパッと見ややこしい感じですが、ややこしい単語はsaveRefsとresolveRefsだけです。他はオブジェクトと対象ファイルを宣言したものとなります。saveRefsとresolveRefsはこちらのサイトがイメージしやすそう。
(画面はGoogle翻訳で変換したものです。)
DreamHouseアプリケーションを動かしてみる
アプリケーションランチャーでDreamhouseを選択。『Property Explorer』『Property Finder』がLightningコンポーネントで作られたアプリケーションです。
参考 - Salesforce DX の用語
Salesforce Developer Experience (DX)
開発ライフサイクル全体を合理化するツールセットです。チームによる開発とコラボレーションの向上、自動化テストと継続的インテグレーションの容易化、リリースサイクルの効率化とアジャイル化を実現します。
スクラッチ組織とは?
Salesforce DX で行う設定の多くでは、スクラッチ組織と呼ばれる新しい種別の組織を使用できます。スクラッチ組織は、新しいプロジェクト、新しい機能ブランチ、または機能テストを開始するときにすばやく準備できる、専用の設定可能な短期の Salesforce 環境です。
開発者ハブ組織とは?
開発者ハブ (Dev Hub) は、あなたとチームがスクラッチ組織を作成および管理するために使用するメインの Salesforce 組織です。