tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:組織シェイプに基づいたスクラッチ組織の作成の再挑戦

前回の記事の続きです。


組織シェイプの使い方はざっくりまとめると次の手順です。

  1. 設定ページで有効化
  2. CLIで組織認証 (DevHub組織とソース組織)
  3. CLIで組織シェイプ作成
  4. config/project-scratch-def.jsonファイルでsourceOrgを宣言
  5. スクラッチ組織を作成


これでスクラッチ組織を作成すると組織シェイプの機能で設定情報が引き継がれたスクラッチ組織が作成されるイメージ。前回タイムアウト的なエラーメッセージが出て作成までたどり着けませんでした。手順に問題はなく別の要因で失敗しているのではと思っているのですが、設定ガイドを英語に切り替えたところ、旧sfdxコマンドの説明が最新のsfコマンドでの解説になっていることに気づきました。

日本語設定ガイド


英語版設定ガイド


処理自体は変わらないと思いますが最新の sf コマンドだとうまくいく可能性もあるので英語版のコマンドで再度試してみました。

事前準備

作業組織の変更

前回はTrailheadのハンズオン組織を使用。今回はDeveloperEdtion組織を使用してみる。(ハンズオン組織もDeveloperEdtion組織で変わりないと思うけど)。DevHub組織や組織シェイプの有効化は実施済み。

Salesforce CLIの認証の初期化

『sf org logout』コマンドで元々認証していた情報をリセット。設定ガイドの手順どおりに1から認証する。

Salesforceプロジェクトの用意

VSCodeでプロジェクトを作成。project-scratch-def.jsonファイルにsourceOrgを宣言するように変更。

組織シェイプの再挑戦

認証コマンド
% sf org login web -a MySalesforceOrg

※今回はDevHub組織とソース組織は同じなので1組織分の認証となる。

組織シェイプの作成

次のコマンドで作成。(コマンドの最後は認証時のエイリアス名)

% sf org create shape --target-org MySalesforceOrg


次のコマンドで作成結果を確認できる。

% sf org list shape

sf configコマンドで対象のdevhub組織を指定

補足メモ。このあとのスクラッチ組織作成コマンドで次のようなエラーが出たときの対応方法。

No default dev hub found. Use -v or --target-dev-hub to specify an environment.


config コマンドで設定します。コマンド内のsf-demoはこの記事内に記載していたエイリアス名とは別ですが、動作確認中に別途設定していたもので同じ組織を指定しています。

% sf config list
% sf config set target-dev-hub=sf-demo  

スクラッチ組織の作成
% sf org create scratch -d -f config/project-scratch-def.json -a MyScratchOrgShape


実行結果。


やっぱりエラーとなってしまいました。手順に間違いは無いと思うので、何か別の要因な気がします。結果については残念な結果となってしまいましたが、とりあえず sf コマンドの勉強にはなりました。組織シェイプについては使えると良さそうと思いつつ、実際のSalesforce開発の場合はSandbox組織を使えばいいので大きく困ることは無いかなとも思います。スクラッチ組織の作成がどういう感じか勉強できたところで今回はここまでにします。