AppExchange アプリケーションのパッケージ化

学習の目的

この単元を完了すると、次のことができるようになります。

  • 名前空間の主な特長を挙げる。
  • AppExchange パートナー向けの「管理-リリース済み」パッケージの利点を説明する。
  • 「管理-ベータ」パッケージをインストールした場合、「管理-リリース済み」パッケージをインストールした場合の影響についてそれぞれ説明する。

パッケージの内容

パッケージとは、アプリケーションを顧客に配布するために使用するコンポーネント (Java JAR ファイルや Ruby GEM など) のコンテナで、一意の名前空間が指定された一連のメタデータが含まれます。パッケージには、個々のコンポーネントのような小さなものから、一連の関連アプリケーションといった大きなものまで格納できます。

Salesforce プラットフォームでは本質的に、設計を漸進的にテストして、随時適応させていくアジャイルな開発モデルが推奨されます。「管理-ベータ」パッケージは、こうしたテスト & 変更アプローチをサポートします。

「管理-リリース済み」パッケージは、稼働中の製品に使用します。顧客は、アプリケーション上に構築したビジネスプロセスを中断することなく、時間と共に進化する安定したアプリケーションを望んでいます。「管理-リリース済み」パッケージにより、顧客のカスタマイズを破損することなく、アプリケーションに付属する知的財産を保護できます。

「管理-リリース済み」パッケージの利点

「管理-リリース済み」パッケージは次のものを備えています。

  • Apex の知的財産の保護
  • API アクセスが可能なコンポーネントの組み込みのバージョン管理サポート
  • 前のバージョンを分岐およびパッチする機能
  • 登録者にパッチやメジャー更新をシームレスに転送する機能
  • インストールで競合が発生しないようにすべてのコンポーネントに一意の名前を指定
  • ライセンスごとに登録者のアクセスを制御する機能

顧客組織でのパッケージのライフサイクル

アプリケーションのパッケージ化および配布のライフサイクルを見てみましょう。

  1. アプリケーションのバージョン 1 を「管理-リリース済み」パッケージで公開します。
  2. 顧客がパッケージをインストールします。
  3. 顧客がアプリケーションをカスタマイズします。
  4. アプリケーションのバージョン 2 を「管理-リリース済み」パッケージで公開します。
  5. 顧客が既存のパッケージ上にパッケージの新しいバージョンをインストールします。

「管理-リリース済み」パッケージは、顧客が既存のバージョン上に新しいバージョンをインストールできるため、アップグレード可能ということになります。未管理パッケージ (通常、パートナーが使用することはありません) や「管理-ベータ」パッケージはアップグレードできません。

Salesforce プラットフォームは詳細なカスタマイズが可能で、多くの場合、顧客がアプリケーションをカスタマイズしています。新しいバージョンがリリースされるときに顧客にとって重要なことは、アプリケーションに一定の一貫性があり、各自のカスタマイズが破損されないことです。

「管理-リリース済み」パッケージは、新しいバージョンの影響を最小眼に抑える安全策がとられています。たとえば、顧客またはオブジェクトが使用可能になっている Apex メソッドは削除できません。詳細は、『ISVforce ガイド』の「管理パッケージで使用可能なコンポーネント」セクションを参照してください。

簡単なアプリケーションを作成してパッケージ化する

ここでは当社のルールを破り、パッケージを作成するものと同じ組織でシンプルなアプリケーションを設定します。パッケージを作成できるのは、Partner Developer Edition (PDE) 組織と Developer Edition 組織のみです。ですから、前回の単元で作成した PDE 組織を使用します。

パッケージ化を実際に行うために、ごくごくシンプルなアプリケーションを順を追って作成していきます。ここでは、カスタムオブジェクトを表示する 1 ページのアプリケーションを作成します。

  1. [設定] メニューに移動します。
  2. Lightning Platform ホームページで、[アプリケーションを追加する] をクリックします。
  3. [アプリケーションのクイックスタート] ページに、次のとおり入力します。
    項目
    アプリケーション Trail Tracker
    表示ラベル トレイル
    表示ラベル (複数形) トレイル
    [アプリケーションのクィックスタート] 画面
  4. [Create (作成)] をクリックします。
  5. [私のアプリケーションに移動] をクリックします。

これで完成です。このアプリケーションを試してみましょう。

  1. [新規] をクリックします。
  2. [トレイル名] に、「AppExchange パートナーの基本」と入力します。
  3. [保存] をクリックします。

アプリケーションでレコードを作成しました。とても簡単です。

パッケージと名前空間

すべての AppExchange アプリケーションおよび一部の OEM (組み込み) アプリケーションについては、顧客が既存の組織にアプリケーションをインストールしてカスタマイズしています。次のシナリオについて考えます。

  • 顧客が Vendor__c という API 参照名のカスタムオブジェクトを作成しています。
  • アプリケーションにも Vendor__c という API 参照名のカスタムオブジェクトがあります。

このアプリケーションをインストールすると、顧客のオブジェクトが上書きされるのでしょうか? そんなことはありません。この窮地を救ってくれるのが名前空間です。

競合を回避するために、管理パッケージには必ず名前空間が指定されます。名前空間は Salesforce 全体で一意のため、管理パッケージをインストールしたときに、顧客や他のパートナーが行ったカスタマイズと競合することがありません。

開発組織には名前空間を 1 つだけ設定できます。その名前空間を使用して作成できるパッケージは 1 つのみですが、そのパッケージを更新して新しいバージョンをリリースできます。

アプリケーションへの名前空間の追加方法

組織で名前空間を作成すると、その組織内の各コンポーネントに名前空間が追加されます。その組織でパッケージを作成する場合は、パッケージに追加する各コンポーネントにも名前空間が指定されます。次のカスタムオブジェクトには、(1) 組織に TrailApp_Test1 という名前空間があること、および (2) Trail (トレイル) オブジェクトの API 参照名が TrailApp_Test1__Trail__c であることが示されています。

名前空間プレフィックスと、名前空間を使用した API 参照名を示す画面

ただし、名前空間を追加しても、オブジェクトや項目への参照がある、Salesforce 以外のアイテム (JavaScript など) は更新されません。これらの参照は自身で更新する必要があります。

名前空間の選択

名前空間は一意のため、まず、一番大切なパッケージ組織の名前空間を選択します。顧客に表示されるのは、AppExchange にアップロードするパッケージに使用する名前空間です。会社名が AW Computing ならば、名前空間を awc や awcomputing などとするとよいでしょう。

この名前空間をベータパッケージ組織で使用しないでください。一番大切なパッケージ組織で使用できなくなります。

名前空間を作成する

名前空間を作成して、アプリケーションをパッケージ化できるようにします。

メモ

メモ

Trailhead では名前空間のある組織をサポートしていないため、新しい Developer Edition または Partner Developer Edition 組織で練習していることを確認してください。Trailhead の Challenge の実行に使用する組織に名前空間を作成すると、その組織では新しいバッジを獲得できなくなります。

  1. [設定] から、[クイック検索] ボックスに「パッケージ」と入力し、[パッケージ] をクリックします。
  2. ページの [開発者設定] セクションで、[編集] を選択します。
  3. 名前空間を設定する場合は、[次へ] をクリックします。
  4. [名前空間プレフィックス] に値を入力します。後々使用するつもりの名前はここに入力しないでください。名前空間の設定画面
  5. [使用可能か調べる] をクリックします。使用可能な名前空間が見つかるまでステップ 4 ~ 5 を繰り返します。
  6. [選択内容の確認] をクリックします。
  7. [保存] をクリックします。

パッケージとテスト

「管理-リリース済み」パッケージが、アプリケーションの販売や配布には最適ながら、テストには不向きな理由は、特定のコンポーネントを管理パッケージに追加した後に変更できないためです。たとえば、アプリケーションを開発中に、Larry、Curly、Moe、John という 4 つのカスタムオブジェクトを作成するとします。アプリケーションをテストする段階になって John は不要だと判断します。けれども、John オブジェクトも「管理-リリース済み」パッケージに含まれているため、削除できません。

この問題を回避するために、「管理-ベータ」パッケージが用意されています。ベータパッケージのコンポーネントは、「管理-リリース済み」パッケージが作成されるまで、パッケージ組織で編集できます。

メモ

メモ

ベータパッケージをインストールできるのは、Sandbox 組織、Developer Edition 組織、または環境ハブから作成されたテスト組織のみです。

「管理-ベータ」パッケージを作成する

続いて、「管理-ベータ」パッケージを作成する手順に進みます。

  1. パッケージページが表示されていない場合は、[設定] から、[クイック検索] ボックスに「パッケージ」と入力し、[パッケージ] をクリックします。
  2. [パッケージ] セクションで、[新規] をクリックします。
  3. [パッケージ名] に「Trail App (トレイルアプリケーション)」と入力します。
  4. [管理済み] チェックボックスをオンにしてこのオプションを有効にします。確認メッセージが表示されたら、[OK] をクリックします。管理パッケージの作成画面
  5. [保存] をクリックします。
  6. [コンポーネント] サブタブで、[追加] をクリックします。
  7. [Trail Tracker] アプリケーションを選択して、[パッケージに追加] をクリックします。パッケージにいくつかの依存コンポーネントが追加されました。
  8. [パッケージリストに戻る] をクリックします。

ここで必要な「管理-ベータ」パッケージがデフォルトで作成されます。

ベータバージョンはメジャーリリースとみなされないため、パッケージのバージョン番号は変わりません。

パッケージをインストール可能にする

パッケージを別の組織にインストールする準備ができたら、アップロードします。

  1. パッケージのリストのパッケージ名をクリックします。
  2. [アップロード] をクリックします。
  3. [パッケージの詳細] セクションに次のとおり入力します。
    項目
    バージョン名 Trail App Test 1
    説明 「AppExchange パートナーとしてのアプリケーションの作成」トレイルの進行中に作成した簡単なアプリケーションのベータパッケージ。

    パッケージのアップロード画面
  4. [アップロード] をクリックします。アップロードが正常に完了すると、インストール URL を記したメッセージが表示されます。インストール URL を記したパッケージの画面
  5. パッケージのインストールに使用するインストール URL をコピーします。
  6. 組織からログアウトします。

パッケージをテスト組織にインストールする

  1. インストール URL をブラウザに貼り付けます。
  2. 表示されたログインページに、単元 2 で作成した Trailhead Test 組織のログイン情報を入力します。
  3. 表示されたページで、[インストール] をクリックします。パッケージのインストール画面
  4. [完了] をクリックします。
  5. アプリケーションメニューからアプリケーションを選択して、インストールされていることを確認します。新しいアプリケーションが表示されたアプリケーションメニュー

まとめ

これでパッケージの基本を理解することができました。

  • パッケージは Partner Developer Edition 組織または Developer Edition 組織で作成する必要があります。
  • パッケージを作成する場合は一意の名前空間を選択します。
  • テスト組織で望ましい名前空間を使い切ってしまわないようにします。後で後悔することになります。
  • テストサイクル中は、内容を簡単に変更できる「管理-ベータ」パッケージを使用します。
  • 「管理-リリース済み」パッケージは最終テストにのみ使用します。

おめでとうございます。開発サイクルで「管理-ベータ」パッケージを使用するためのスキルをすべて習得することができました。後は練習を重ねていくのみです。

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