進行状況の追跡を始めよう
Trailhead のホーム
Trailhead のホーム

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

学習の目的

この単元を完了すると、次のことができるようになります。
  • スクラッチ組織でパスワードを設定する 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. MutualFundExplorer というプロジェクトを作成します。
    sfdx force:project:create -n MutualFundExplorer
  2. MutualFundExplorer ディレクトリに移動します。
    cd MutualFundExplorer
  3. スクラッチ組織を作成し、別名を TempUnmanaged とします。
    sfdx force:org:create -f config/project-scratch-def.json -a TempUnmanaged

    スクラッチ組織を作成すると、組織の一部の値は自動的に設定されます。

  4. スクラッチ組織の設定データを表示します。
    sfdx force:org:display -u TempUnmanaged

    出力にはインスタンス URL が表示されます。これは、スクラッチ組織の [私のドメイン] の値です。パッケージをインストールするには、このインスタンス URL に加えて、ユーザ名とパスワードが必要です。

  5. パスワードを作成します。
    sfdx force:user:password:generate -u TempUnmanaged
  6. org:display コマンドをもう一度実行し、パッケージのインストールに必要なすべての値を表示します。
    sfdx force:org:display -u TempUnmanaged
    出力は次のようになります。
    KEY               VALUE
    ───────────────   ─────────────────────────────────────────────────
    Access Token      008jF!xxx
    Alias             TempUnmanaged
    Client Id         SalesforceDevelopmentExperience
    Created Date      2017-04-26
    Dev Hub Id        0J746000000PBp9
    Edition           Developer 
    Expiration Date   2017-05-04
    Id                00D3D0000008bjF
    Instance Url      https://connect-ruby-461-dev-ed.cs70.my.salesforce.com
    Org Name          Acme
    Password          4739223f
    Status            Active
    Username          test-gcq8udqxju1b@example.com

スクラッチ組織の別名の TempUnmanaged がこれらのコマンドで役に立ちました。test-gcq8udqxju1b@example.com よりも入力が簡単ですよね?

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

ユーザ名、パスワード、インスタンス URL を使用して、UI にログインし、Mutual Fund Explorer アプリケーションの DreamInvest という未管理パッケージをインストールできます。

  1. org:display コマンドの出力からインスタンス URL の値をコピーします。
    ヒント

    ヒント

    確実にパッケージを適切な組織にインストールするために、すべての既存の組織からログアウトしてください。

  2. 次の URL に移動します。

    https://login.salesforce.com/packaging/installPackage.apexp?p0=04t46000001DnYm

  3. ログイン画面で [カスタムドメインを使用] をクリックします。

    このオプションが表示されない場合は、[別のユーザ名でログイン] を選択します。

  4. [カスタムドメイン] 項目に、インスタンス URL を https:// を含めずに貼り付けます。

    [カスタムドメインを使用] ダイアログ

  5. [次へ] をクリックし、org:display コマンドの出力に表示されたスクラッチ組織のユーザ名とパスワードを入力します。

    ログインすると、パッケージに関する詳細が表示されます。

    [DreamInvest のインストール] ダイアログ

  6. [インストール] をクリックし、さらに [完了] をクリックします。

    スクラッチ組織にリダイレクトされ、DreamInvest パッケージがインストールされたことが表示されます。

    [インストール済みパッケージ] ダイアログ

権限セットの作成

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

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

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

  8. CLI で次のコマンドを実行します。
    sfdx force:source:pull -u TempUnmanaged
ソースがプロジェクトに抽出されています。
STATE    FULL NAME    TYPE          PROJECT PATH
───────  ───────────  ───────────── ───────────────────────────────────────
Changed  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 ファイルを削除します。
    rm unpackaged.zip

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

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

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

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

  1. MutualFundExplorer フォルダから mdapipackage フォルダのコンテンツを変換します。
    sfdx force:mdapi:convert -r mdapipackage/

    成功です。すべての変換済みソースが force-app フォルダにあります。なぜこのフォルダなのでしょうか? それは、sfdx-project.json で指定されたデフォルトであるためです。

  2. メタデータ API ソースを削除して、プロジェクトをクリーンアップします。
    rm -rf 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 force: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 ニンジャのステータスを獲得しました。ただし、ここで学習した内容は氷山の一角にすぎません。何ができるかについてすべて知るには、リソースを参照してください。