SalesforceのDevHubを使ってみる

Salesforceの開発環境であるDevHubを使ってみます。

以前からやってみたかったのですが、これを使える条件を満たせず、断念していました。

やっと、独立性の高い機能を開発する機会を得ましたので、使ってみます。

本番環境でDevHubを有効にする

本番環境の「設定」でDevHubを有効にします。「開発」の「Dev Hub」で、「Dev Hubを有効化」を有効化します。

お客様向けにシステムを開発されていて、本番環境にリリースする必要がある場合は、「Salesforce ユーザ向けのロック解除済みパッケージ (正式リリース) を開発し、配信する」も有効化します。

有効にしても大きな影響はありませんが、一度、有効にすると無効にはできませんので、Dev Hubを使った開発が可能なのかどうかを検討した上で有効にすることをオススメします。

Salesforce CLIでDevHubにログインする

Salesforce CLI(sfdx)でDevHubに接続します。

以下のコマンドを実行するとSalesforceのログイン画面が表示されますので、本番環境にログインしてください。なお、-aオプションでこの環境に名前を付けることができます。ここでは、devhubとしています。

sfdx force:auth:web:login -d -a devhub

scratch組織の環境を設定する

プロジェクトのconfigフォルダ配下にproject-scratch-def.jsonと言うファイルがあります。

この中の、s1EncryptedStoragePref2をfalseにしておくことをオススメします。Lightning Web Componentを更新するときに再表示の回数を減らすことができます(trueの場合、2回更新しないと反映されない模様)

scratch組織を作成する

DevHubにscratch組織を作成します(sdevの部分はご自分の環境に合わせてください)

sfdx force:org:create -s -f config/project-scratch-def.json -a sdev

DevHubとscratch組織が作成されたかを確認しておきます。

sfdx force:org:list
=== Orgs
     ALIAS   USERNAME               ORG ID              CONNECTED STATUS
───  ──────  ─────────────────────  ──────────────────  ────────────────
(D)  devhub  xxxxx@xxxxx.jp     XXXXXXXXXXXXXXXXXXXXX  Connected

     ALIAS   SCRATCH ORG NAME  USERNAME                       ORG ID              EXPIRATION DATE
───  ──────  ────────────────  ─────────────────────────────  ──────────────────  ───────────────
(U)  xxxxxx  xxxxxxxx          test-xxxxxxxxxxxx@example.com  XXXXXXXXXXXXXXXXXXXXX  2019-08-13

ソースファイルをscratch組織にリリースする

pushコマンドで作成したソースファイルをscratch組織へリリースします。

sfdx force:source:push

scratch組織を開いて、リリースされたかを確認します。

sfdx force:org:open -u sdev

開発したソースをSandboxへリリースする

テストのために、開発したソースをSandbox組織にリリースします。

まず、Sandbox環境を認証します。

sfdx force:auth:web:login --setalias dev --instanceurl https://test.salesforce.com

次にLightning Web Componentをリリースします。

sfdx force:source:deploy -u dev --sourcepath force-app/main/default/lwc

Dev Hubを使った開発は、コンポーネントの独立性が高まりますので(高めないと成り立たない)、チャレンジの価値ありです。