既存のアプリケーションの変換とリリース

学習の目的

この単元を完了すると、次のことができるようになります。
  • スクラッチ組織でパスワードを設定する Salesforce CLI コマンドについて説明する。
  • CLI を使用して、メタデータ形式を Salesforce DX プロジェクトで使用できるソース形式に変換する方法を説明する。
  • CLI を使用してメタデータをテスト組織にリリースする方法を実施する。

選択肢は多く、時間は少ない

私たちの世界には、さまざまな選択肢があります。朝食にはシリアルを食べますか? それともヨーグルトにしますか? えっ、ベーコンですか? Salesforce プラットフォームでの開発は、いろいろと選べる朝食ビュッフェのようなものです。開発プロジェクトを成功させるのに非常に多くの方法があります。

結果として、既存のアプリケーションをソース形式に変換する方法がいくつかあります。ソース形式は Salesforce DX プロジェクトの分解されたファイル構造になっています。このジャーニーをお手伝いするために、Mutual Fund Explorer (ミューチュアルファンドエクスプローラ) という既存のサンプルアプリケーションを利用して、1 つの方法について説明します。

このアプリケーションには、あらゆる種類のメタデータが含まれています。また、Aura コンポーネントのベストプラクティスを紹介するのにも適しています。このアプリケーションを変換する過程で、さらにいくつかの Salesforce CLI コマンドについても学習します。この単元の最後には、Trailhead Playground 組織にアプリケーションをリリースします。実際のハンズオン Challenge で、新しく習得した知識を使用することができます。

Salesforce DX の設定はお済みですか?

単元 1 をスキップした場合は、戻って、この単元を実行するために必要な設定作業を実行してください。

すべてインストールしましたか? では、コーヒーでも飲みながら、始めましょう。

プロジェクトとスクラッチ組織の作成

パッケージ開発モデルの利点の 1 つは、各開発プロジェクトを個別の領域に分離できることです。そこで、この演習用に、新しいプロジェクトと新しいスクラッチ組織を作成します。

既存のアプリケーションを使用する作業を学習するために、未管理パッケージをスクラッチ組織にインストールします。このスクラッチ組織は、Sandbox または本番組織に設定できる内容をシミュレーションするものです。完了したら、このスクラッチ組織は削除できます。これが、スクラッチ組織とその一時性の大前提です。スクラッチ組織は、特定の目的や作業のために作成し、完了したら削除します。

  1. コマンドウィンドウで、プロジェクトを配置する場所に移動します。
  2. MutualFundExplorer というプロジェクトを作成します。
    sfdx force:project:create -n MutualFundExplorer
  3. MutualFundExplorer ディレクトリに移動します。
    cd MutualFundExplorer
  4. スクラッチ組織を作成して別名を TempUnmanaged とし、デフォルトに設定します。
    sfdx force:org:create -f config/project-scratch-def.json -a TempUnmanaged -s

未管理パッケージのインストール

Salesforce CLI を使用して、Mutual Fund Explorer アプリケーションの DreamInvest という未管理パッケージをスクラッチ組織にインストールします。この未管理パッケージの ID は 04t46000001DnYm で、Salesforce 全体を通して一意です。 

  1. 一意の ID を指定して管理パッケージをインストールします。
    sfdx force:package:install -p 04t46000001DnYm -w 3
    パッケージのインストールにはしばらく時間がかかることがあります。そこで -w フラグを使用して最大 3 分間コマンドを待機させ、完了する前に状況メッセージを表示します。コマンドウィンドウに次のようなメッセージが表示されます。
    Waiting for the package install request to complete. Status = IN_PROGRESS
    Waiting for the package install request to complete. Status = IN_PROGRESS
    Waiting for the package install request to complete. Status = IN_PROGRESS
    Successfully installed package [04t46000001DnYm]
  2. パッケージのインストールが時間内に完了しない場合は、force:package:install コマンドによって表示される force:package:install:report コマンドを実行します。report コマンドは、次のようになります。
    sfdx force:package:install:report -i <id> -u TempUnmanaged

  3. スクラッチ組織を開きます。
    sfdx force:org:open
  4. [設定] から、[クイック検索] ボックスに Packages (パッケージ) と入力し、[インストール済みパッケージ] を選択します。ここで DreamInvest パッケージがインストール済みであることを確認できます。
    [インストール済みパッケージ] ダイアログ

権限セットの作成

組織での作業を終了する前に、権限セットを作成しましょう。この権限セットは、DreamInvest アプリケーションによって追加されたカスタムオブジェクトへのアクセス権を付与するために使用します。

  1. [設定] から、[クイック検索] ボックスに Permission Sets (権限セット) と入力し、[権限セット] を選択します。
  2. [新規] をクリックします。
  3. [表示ラベル] に DreamInvest と入力します。
  4. [API 参照名] に DreamInvest と入力します。
  5. [保存] をクリックします。
  6. [アプリケーション] で、[割り当てられたアプリケーション] | [編集] をクリックします。
  7. [選択可能なアプリケーション] で、[DreamInvest (DreamInvest)] を選択し、[追加] をクリックして [有効化されたアプリケーション] にします。
  8. [保存] をクリックします。

    次に、この権限セットをソースに抽出しましょう。

  9. CLI で次のコマンドを実行します。
    sfdx force:source:pull -u TempUnmanaged
ソースがプロジェクトに抽出されています。
STATE    FULL NAME    TYPE          PROJECT PATH
───────  ───────────  ───────────── ───────────────────────────────────────
Add      DreamInvest  PermissionSet <path>/DreamInvest.permissionset-meta.xml

プロジェクトへのパッケージソースの抽出

次のステップは、既存のアプリケーションを組織から取得することです。これを実行するには、さまざまな方法があります。package.xml ファイルを作成し、メタデータ API の retrieve メソッドを使用してソースを取得できます。すでにソースが VCS に保存されている場合は、任意の方法を使用できます。この単元では、CLI コマンドを使用して、Metadata API でパッケージのコンテンツを取得します。

まず、エクスポートされたメタデータ用の新しいディレクトリをプロジェクトに作成します。

  1. プロジェクト内で、任意のツールを使用して mdapipackage というフォルダを作成します。
  2. DreamInvest パッケージのコンテンツを mdapipackage フォルダに取得します。
    sfdx force:mdapi:retrieve -s -r ./mdapipackage -p DreamInvest -u TempUnmanaged -w 10
    コマンドウィンドウに次のような結果が表示されます。
    Retrieving source...
    === Status
    Status: InProgress
    jobid: 09S9A0000008Xq3UAE
    === Result
    Status: Succeeded
    jobid: 09S9A0000008Xq3UAE
    Wrote retrieve zip to /Users/jdoe/MutualFundExplorer/mdapipackage/unpackaged.zip.
  3. mdapipackage フォルダに移動し、unpackaged.zip ファイルが表示されることを確認します。
  4. unpackaged.zip ファイルを展開します。
  5. unpackaged.zip ファイルを削除します。

これでアプリケーションのすべてのソースをメタデータ形式で取得できました。次は、ソースファイルをソース形式に変換します。

ソースの変換と新しいスクラッチ組織への転送

なぜメタデータソースをソース形式に変換するのでしょうか? メタデータ形式は、開発者が作業することを念頭に設計されていません。本番組織の 1 つの巨大なファイルに保存されています。メタデータを小さなファイルに分割したものがソース形式です。これによって、開発チームがソースを操作し、VCS を使用するのが容易になります。

幸い、変換は簡単で、そのためのコマンドがあります。

  1. MutualFundExplorer フォルダから mdapipackage フォルダのコンテンツを変換します。
    sfdx force:mdapi:convert -r mdapipackage/
    成功です。すべての変換済みソースが force-app フォルダにあります。なぜこのフォルダなのでしょうか? それは、sfdx-project.json で指定されたデフォルトであるためです。
  2. mdapipackage フォルダに削除して、プロジェクトをクリーンアップします。
  3. スクラッチ組織を削除します。
    sfdx force:org:delete -u TempUnmanaged

作業の検証

すべての作業を実行しましたか? それを確認する最も簡単な方法は、新しいスクラッチ組織を作成して試してみることです。このアプリケーションは自分が作成したものではないため、自分自身にアプリケーションへのアクセス権を付与する権限セットを割り当てます。

  1. 新しいスクラッチ組織を作成します。
    sfdx force:org:create -s -f config/project-scratch-def.json
    このコマンドによって、新しいスクラッチ組織がこのプロジェクトのデフォルトに設定されます。これにより、実行するすべてのコマンドがこのスクラッチ組織に対して実行されます。

  2. ローカルのソースとメタデータをスクラッチ組織に転送します。
    sfdx force:source:push
  3. 権限セットを割り当てます。
    sfdx force:user:permset:assign -n DreamInvest 
  4. 組織を開きます。
    sfdx force:org:open

この時点で、すべてが機能しています。アプリケーションを完全に変換しました。このアプリケーションでの作業を続ける場合は、現在のソースを VCS にコミットして開発を続けます。

これで、テスト組織にアプリケーションをリリースする準備が整いました。

メタデータ API を使用した変換済みアプリケーションのリリース

次に、メタデータ API を使用して各自のアプリケーションを組織にリリースする手順を説明します。そこから、既存のテクノロジ (パッケージ化、変更セット、Ant 移行ツール、メタデータ API) を使用して、アプリケーションを本番環境に移行できます。

メモ

メモ

これらの手順は、新しいアプリケーションを作成する場合でも、既存のアプリケーションを変換する場合でも使用できます。

変換プロセスと同様に、これらの作業を実行する CLI コマンドがあります。

テスト環境の登録

多くの場合、テストには Sandbox を使用しますが、このモジュールのこのステップでは、Trailhead Playground 組織を使用します。そうすれば、作業の確認を受けてバッジを獲得できるからです。

Trailhead Playground 組織では [私のドメイン] がオンになっています。Trailhead Playground の [私のドメイン] の設定は変更しないでください。今後の参考のために、本番組織で次の手順を実行する場合は、「ユーザ認証」モジュールの手順に従って [私のドメイン] を有効にしてください。有効にしなかった場合は、Lightning コンポーネントが表示されません。

  1. Trailhead Playground 組織にログインし、組織の別名を作成します。
    sfdx auth:web:login -a MyTP
    Trailhead Playground のユーザ名とパスワードがわからない場合は、「Find the username and password for your Trailhead Playground (Trailhead Playground のユーザ名とパスワードの調べ方)」を参照してください。

  2. この組織が使用できることを確認します。
    sfdx force:org:list

メタデータ形式へのソースの変換とリリース

次は、ソース形式をメタデータ形式に戻します。変換プロセスは単純で、いくつかのコマンドを使用するのみです。

  1. 変換後のファイルを格納する mdapioutput というフォルダを作成します。
    mkdir mdapioutput
  2. 次に、変換コマンドを実行します。
    sfdx force:source:convert -d mdapioutput/
    これで、ソースがメタデータ API で使用できる形式になりました。

  3. テスト環境にリリースします。
    sfdx force:mdapi:deploy -d mdapioutput/ -u MyTP -w 100
    このコマンドは、すべてのものを Trailhead Playground にリリースします。

  4. 権限セットを割り当てます。
    sfdx force:user:permset:assign -n DreamInvest -u MyTP
  5. テストを実行し、アプリケーションを操作します。
    sfdx force:org:open -u MyTP
    適切な組織を開くために、必ず -u フラグを指定してください。ユーザ名オプションを指定しないと、このコマンドは、デフォルトとして指定されているスクラッチ組織を開きます。

お疲れさまでした! パッケージ開発ライフサイクルの大部分を学習してきました。アプリケーションを作成し、既存のアプリケーションを変換し、アプリケーションを組織にリリースしました。最も頻繁に使用するコマンドを習得したため、あなたは、公式の Salesforce CLI ニンジャのステータスを獲得しました。ただし、ここで学習した内容は氷山の一角にすぎません。何ができるかについてすべて知るには、リソースを参照してください。

無料で学習を続けましょう!
続けるにはアカウントにサインアップしてください。
サインアップすると次のような機能が利用できるようになります。
  • 各自のキャリア目標に合わせてパーソナライズされたおすすめが表示される
  • ハンズオン Challenge やテストでスキルを練習できる
  • 進捗状況を追跡して上司と共有できる
  • メンターやキャリアチャンスと繋がることができる