[2020年版8月版]おすすめのAppExchangeアプリ開発方法〜事前準備編〜

前回の概要編ではスクラッチ組織を使うおすすめの開発方法の概要を説明しました。続いて、その開発方法を行う環境を構築する手順を解説していきます。
今回は事前準備編ということで、パッケージ開発組織やDevHubの設定をしていきます。次回のプロジェクト雛形作成編で最終回の予定です。

はじめに

まず、前回の図を思い出してください。

今回の記事では、パートナービジネス組織(PBO)は既に持っている前提として、この図の左側の使い捨てではない2つの組織(PBOとパッケージ開発組織)の設定を説明していきます。

PBOを持っていない場合は、ステップ 1: パートナープログラムにサインアップする | ISVforce ガイド | Salesforce Developersを参考にSalesforceにお問い合わせください。

パッケージ開発組織の設定

パッケージ開発組織の作成

PBOにログインし、環境ハブからPartner Developer Editionの組織を一つ作成します。

  1. PBOにログインします。
  2. アプリケーションランチャーから[環境ハブ]を開き、[組織を作成] をクリックします。
  3. 目的: 開発、エディション: Partner Developerを選択し、他の項目も入力します。 

    ●組織名はアプリがインストールされた組織の[インストール済みパッケージ]の[公開者]としてユーザに表示されますので、会社名にしておくとよいです。
    ●私のドメインは必須ではありませんが、LWC開発などには必要なので設定しておきましょう。私のドメインはなんでもよいですが、製品名にするのが一般的です。
    ●ユーザ名はメールアドレス形式であればなんでも(存在しなくても)構いません。
  4. [作成]をクリックし、しばらくするとメールが届くので、案内に従って組織にログインします。
  5. 組織名を会社名にしておくと環境ハブ上で何の組織だかわからなくなるので、環境ハブメンバーの説明に用途とユーザ名あたりを書いておくことをお勧めします。 

参考: ステップ 2: 開発環境とテスト環境を作成する | ISVforce ガイド | Salesforce Developers

パッケージの作成

空のパッケージを作成します。

  1. パッケージ開発組織にログインします。
  2. [設定] から、[クイック検索] ボックスに「パッケージ」と入力し、[パッケージマネージャ] を選択し、[パッケージ]>[新規] をクリックします。 
  3. [パッケージ名] 項目にAppExchangeアプリ名を入力し、[保存] をクリックします。

参考: ステップ 2: アプリケーションをパッケージ化する | ISVforce ガイド | Salesforce Developers

名前空間の設定

パッケージ開発組織に名前空間を設定します。前回も説明しましたが、名前空間の文字列が他のパッケージのリソースと区別するための接頭辞になります。
どんな名前空間にするかは他のAppExchangeアプリをインストールして見てみるとよいと思いますが、だいたい製品名が多いです。一度設定すると変更できませんので、注意して設定してください。

  1. [設定] から、[クイック検索] ボックスに「パッケージ」と入力し、[パッケージマネージャ] を選択します。
  2. [開発者設定] > [編集] をクリックし、次のページで [次へ] をクリックします。
  3. [名前空間プレフィックス] 項目に、使用したい名前空間を入力し、[参加可能か調べる] をクリックします。名前空間が一意になるまで、この手順を繰り返します。
  4. [管理するパッケージ] 項目で、先ほど作成したパッケージを選択し、[選択内容の確認] をクリックします。
  5. ページの情報を確認し、[保存] をクリックします。
  6. [パッケージマネージャ]の画面は以下のような表示になります。

参考: ステップ 3: 名前空間を割り当てる | ISVforce ガイド | Salesforce Developers

これでパッケージ開発組織の準備は完了です。

パートナービジネス組織の設定

DevHubを有効化

DevHubはSaleseforce DXでスクラッチ組織を作成/管理するための組織です。AppExchangeアプリの開発ではPBOをDevHubとして使用します。

  1. PBOにシステム管理者としてログインします。
  2. [設定] から、[クイック検索] ボックスに「Dev Hub」と入力し、[Dev Hub] を選択します。
  3. [有効化] をクリックします。Dev Hub は一度有効化すると、無効化できません。 

参考: 組織での Dev Hub の有効化 | Salesforce DX 設定ガイド | Salesforce Developers

Salesforce DXユーザ用権限セットの作成

Salesforce DXを利用できるようにするには必要な権限を追加した権限セットを作成し、開発者のアカウントに付与する必要があります。

  1. [設定] から、[クイック検索] ボックスに「権限セット」と入力し、[権限セット] を選択します。
  2. [新規] をクリックします。
  3. 表示ラベル(例: SFDXユーザ)、API名(例: SFDXUser)を入力します。
  4. [保存] をクリックします。
  5. 権限セット概要ページが表示されるので、以下の権限を追加します。[第二世代パッケージの作成と更新]はこの開発方法では不要ですが、将来使う可能性が高いので追加しておいてもよいでしょう。
    ●[オブジェクト設定] -> [スクラッチ組織情報] -> [参照]、[作成]、[編集]、[削除]
    ●[オブジェクト設定] -> [有効なスクラッチ組織] -> [参照]、[編集]、[削除]
    ●[オブジェクト設定] -> [名前空間レジストリ] -> [参照]
    ●[システム権限] > [第二世代パッケージの作成と更新]

参考: Salesforce DX ユーザの追加 | Salesforce DX 設定ガイド | Salesforce Developers

Salesforce DXユーザの追加

開発者のユーザアカウントをPBOに追加し、Salesforce DXが利用できるように権限セットを付与します。

開発者にはDevHubを利用可能なPBOのユーザアカウントが人数分必要になります。しかし、PBOにはSalesforceライセンスが2つしかついてきません。

PBOは既存のSalesforce組織をPBOにすることもできますので、その場合は社内の開発者についてはアカウントがあるかもしれません。その場合は、そのアカウントを利用すればよいです。

Salesforceアカウントがない開発者がいる場合でも、AppExchangeパートナーはDevHubの機能のみを利用できるFree Limited Access ライセンスを無料で100ライセンス得ることができます。ただし、このライセンスを得るにはケース申請が必要なため、すぐにこのライセンスを得るのは難しく、しばらくはアカウントを共用などして凌ぐ必要があります。

Salesforce DXを利用可能なユーザにするにはただ先ほど作成した権限セットを該当のユーザに付与するだけです。開発者のユーザアカウントを作成したら、以下の手順を行います。

  1. 先ほど作成した権限セットの画面を開きます。
  2. [割り当ての管理]をクリックします。
  3. [割り当てを追加]をクリックします。
  4. 開発者のユーザにチェックをし、[割り当て]をクリックします。

参考: Free Limited Access ライセンス | ISVforce ガイド | Salesforce Developers

私のドメインを設定

次の手順の名前空間をDevHub組織にリンクを行うためには私のドメインの設定が必要です。

  1. [設定] から、[クイック検索] ボックスに「私のドメイン」と入力し、[私のドメイン] を選択します。
  2. [私のドメイン] サブドメインで使用する名前を入力します。自社SalesCloudとPBOを共用する場合は会社名でよいと思います。分ける場合はお任せします。
  3. [使用可能か調べる] をクリックします。名前がすでに使用されている場合、別の名前を選択します。
  4. [ドメインの登録] をクリックします。
  5. サブドメイン名のテストの準備ができると、通知メールが送信されます。数分かかることがあります。
  6. メールが届いたら、メールに記載されたログインリンクからログインします。
  7. 再び[私のドメイン]の設定画面を開き、[ユーザにリリース] をクリックして、[OK] をクリックします。

参考:

名前空間をDevHub組織にリンク

  1. アプリケーションランチャーメニューから、[名前空間レジストリ] を選択します。
  2. [名前空間をリンク] をクリックします。 
  3. ログインダイアログが表示されるので、パッケージ開発組織に、システム管理者でログインします。
  4. [All Namespace Registries]を選択すると、リンクした名前空間が表示されます。

参考: 名前空間と Dev Hub 組織のリンク | ISVforce ガイド | Salesforce Developers

おわりに

以上で必要な組織の事前設定は終了です。なかなか面倒でしたね。
次回は今回の開発方法で最低限必要な実際のAppExchangeアプリのコードやスクリプトを整備していきます。

ABOUT US
木村篤彦
株式会社co-meeting代表取締役CEO。カレンダーアプリ「Calsket」のなど複数のAppExchangeアプリを開発。顧問Salesforceプログラマとして他社のAppExchangeアプリ開発にも携わる。SWTT登壇3回、Salesforceハックチャレンジ2014最優秀賞。個人では5月にSOQL構築ツール「LWC SOQL Builder」をリリース(ぜひ使ってください)。