この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

パッケージ内のコンポーネントの特殊な動作

配布するアプリケーションを構築するときには特別な注意が必要であり、パッケージ化によるアプリケーションおよびコンポーネントへの影響を考慮することが重要です。次の情報を参考にして、パッケージに含めるもの、アプリケーションの設計方法、および管理または未管理パッケージの配布方法を決定してください。

  • パッケージ内の各コンポーネントのプロパティについての詳細は、パッケージ化されたコンポーネントのプロパティ表を参照してください。
  • パッケージ内の各コンポーネントの属性についての詳細は、「インストール後のコンポーネントと属性の編集」を参照してください。
  • コンポーネント名は、組織内で一意にする必要があります。コンポーネント名がインストーラの組織で競合しないようにするため、管理パッケージを使用して、すべてのコンポーネント名に名前空間プレフィックスが含まれるようにしてください。

メモ

Apex クラスまたはトリガ

パッケージの一部として含まれている Apex はいずれも、累積テストカバー率が少なくとも 75% である必要があります。各トリガについても何らかのテストを行う必要があります。パッケージを AppExchange にアップロードすると、すべてのテストが実行され、エラーがない状態で実行されていることが確認されます。また、インストーラの組織にパッケージがインストールされるときにも、すべてのテストが実行されます。テストのいずれかが失敗した場合、インストーラがパッケージをインストールするかどうかを決めることができます。

名前が競合することを避けるため、Salesforce では、すべての Apex オブジェクトに名前空間プレフィックスが含まれるように、Apex を含むすべてのパッケージに管理パッケージを使用することをお勧めします。たとえば、Apex クラスが MyHelloWorld という名前で、組織の名前空間が OneTruCode の場合、クラスは OneTruCode.MyHelloWorld として参照されます。

ヒント

パッケージに Apex を含めるときの考慮事項は、次のとおりです。
  • 管理パッケージは、一意の名前空間を受け取ります。この名前空間は、インストール先の組織で名前の重複を防ぐために、クラス名、メソッド、変数などの先頭に追加されます。
  • 1 つのトランザクションでは、10 個の一意の名前空間のみを参照できます。たとえば、オブジェクトを更新するときに、管理パッケージでクラスを実行するオブジェクトがあるとします。その後、クラスは 2 番目のオブジェクトを更新します。つまり、他のパッケージの他のクラスを実行します。最初のパッケージが 2 番目のパッケージに直接アクセスしなかった場合でも、同じトランザクション内でアクセスが発生します。そのため、1 つのトランザクションでアクセスされる名前空間の数に含まれます。
  • メソッドを Web サービスとして公開する場合は、登録者が Web サービスを呼び出す外部コードを記述できるように、詳細を説明したドキュメントを含めてください。
  • Apex クラスがカスタム表示ラベルを参照していて、その表示ラベルが翻訳されている場合、その翻訳をパッケージに含めるには、必要な個々の言語を明示的にパッケージ化します。
  • Apex でカスタムオブジェクトの共有オブジェクト (MyCustomObject__share など) を参照する場合、共有モデルの連動関係をパッケージに追加します。他の組織がパッケージを正常にインストールできるようにするには、カスタムオブジェクトに対する組織の共有設定のアクセス権を [非公開] に設定します。
  • 管理パッケージの一部である Apex クラス、トリガ、または Visualforce コンポーネントに含まれるコードは難読化され、インストール先の組織で見ることができません。唯一の例外は、グローバルとして宣言されたメソッドです。グローバルメソッドの署名は、インストール先の組織で表示できます。また、「管理された Apex の表示およびデバッグ」権限を持つライセンス管理組織ユーザは、登録者サポートコンソールで登録者組織にログインしたときにパッケージの難読化された Apex クラスを表示できます。
  • Apex の deprecated アノテーションを使用して、global メソッド、クラス、例外、列挙、インターフェース、変数を指定できます。これらは、その後リリースされる管理パッケージでは参照できません。要件の変化に合わせて、管理パッケージのコードをリファクタリングできます。別のパッケージバージョンを「管理-リリース済み」としてアップロードすると、最新のパッケージバージョンをインストールする新しい登録者に非推奨の要素が表示されることはありませんが、その要素は既存の登録者および API インテグレーションでは機能し続けます。
  • 明示的に名前空間を参照する未管理���ッケージに含まれる Apex は、アップロードできません。
  • データカテゴリを参照する Apex コードは、アップロードできません。
  • パッケージから Visualforce ページまたはグローバル Visualforce コンポーネントを削除する前に、削除するページまたはコンポーネントから公開 Apex クラスおよび公開 Visualforce コンポーネントへの参照をすべて削除します。参照を削除したら、ページまたはグローバルコンポーネントを削除する前に、登録者を中間パッケージバージョンにアップグレードします。
Apex 共有の理由
Apex 共有の理由は、パッケージに直接追加できますが、カスタムオブジェクトに対してしか使用できません。
接続アプリケーション
  • 接続アプリケーションは、管理パッケージにのみ追加できます。未管理パッケージでは接続アプリケーションはサポートされていません。
  • パッケージの登録者またはインストーラは、接続アプリケーションを単独で削除することはできません。そのパッケージのアンインストールのみを行えます。開発者は、パッケージが「管理-リリース済み」としてアップロードされた後に、接続アプリケーションを削除できます。接続アプリケーションは、パッケージのアップグレード中に登録者の組織で削除されます。
  • 接続アプリケーションを更新して、それを新しいパッケージバージョンに含めると、顧客組織でそのパッケージをアップグレードすれば、既存の接続アプリケーションが更新されます。
  • OAuth 範囲または IP 範囲が前のバージョンから変更された接続アプリケーションを含むパッケージを転送アップグレードすると、アップグレードは失敗します。このセキュリティ機能では、インストール済みパッケージをアップグレードすることによって、顧客組織への広範なアクセス権を未承認ユーザが取得することをブロックします。この場合でも、顧客は同じパッケージのプルアップグレードを行えます。このアップグレードは、顧客の知識と同意がある場合に行えます。
  • 既存の接続アプリケーション (Summer '13 よりも前に作成された接続アプリケーション) は、管理パッケージに追加できます。また、同じ管理パッケージに新しい接続アプリケーションと既存の接続アプリケーションを組み合わせることもできます。
  • Summer '13 よりも前に作成された接続アプリケーションの場合、新しいバージョンをパッケージ化してアップロードするまで、既存のインストール URL を使用できます。更新済みの接続アプリケーションを含むパッケージの新しいバージョンがアップロードされると、そのインストール URL は機能しなくなります。
カスタムコンソール
カスタムコンソールコンポーネントがあるパッケージは、Service Cloud ライセンスがある組織か、「セールスコンソール」権限が有効になっている組織にのみインストールできます。
カスタム項目
  • コード内で選択リスト値を明示的に参照する場合、登録者がカスタム項目の選択リスト値を追加、編集、削除できることに留意します。コード内で選択リスト値を明示的に参照する場合、この可能性を慎重に検討してください。開発者は選択リスト値を追加および削除できますが、パッケージアップグレード時、既存項目の新規選択リスト値は登録者の組織にインストールされません。開発者が削除した選択リスト値は、登録者の組織で引き続き使用できます。
  • パッケージをアップグレードすると、管理カスタム項目に保存された連動選択リスト値が削除されます。
  • 開発者は、デフォルト値がある限り、必須のカスタム項目を管理パッケージに追加できます。
  • 自動採番種別の項目および必須項目は、オブジェクトが管理-リリース済みパッケージでアップロードされた後には追加できません。
  • [保護] に設定された詳細項目を集計する積み上げ集計項目を登録者組織がインストールすることはできません。
カスタム表示ラベル
表示ラベルが翻訳されている場合、翻訳をパッケージに含めるには言語を明示的にパッケージに含める必要があります。登録者は、カスタム表示ラベルのデフォルトの翻訳を上書きできます。
カスタムオブジェクト
  • パッケージ化したカスタムオブジェクトで開発者が [レポートを許可] または [活動を許可] 属性を有効にすると、アップグレード時に登録者の組織でもこれらの機能が有効化されます。管理-リリース済みパッケージでこれらの属性を有効にすると、開発者と登録者のいずれもこれらを無効にできません。
  • 標準ボタンおよびリンクの上書きも、パッケージ化できます。
  • 拡張パッケージで、基本パッケージに含まれるカスタムオブジェクトの履歴情報にアクセスする場合は、基本パッケージの所有者と協力して次の操作を行います。
    1. 基本パッケージのリリース組織で履歴管理を有効にします。
    2. 基本パッケージの新しいバージョンをアップロードします。
    3. 拡張パッケージのリリース組織で基本パッケージの新しいバージョンをインストールし、履歴管理情報にアクセスします。
    基本パッケージに含まれるカスタムオブジェクトの履歴管理を、拡張パッケージのリリース組織で直接有効にすることはお勧めしません。有効にすると、パッケージをインストールするとき、および拡張パッケージのパッチ組織を作成するときに、エラーが発生することがあります。
カスタム権限
接続アプリケーションを含むカスタム権限のある変更セットをリリースする場合、接続アプリケーションが対象組織にすでにインストールされている必要があります。
カスタムレポートタイプ
開発者は、リリース後の管理パッケージ内のカスタムレポートタイプを編集し、新しい項目を追加できます。登録者は、管理パッケージの新しいバージョンをインストールするときに、こうした変更を自動的に受け取ります。ただし、開発者は、パッケージがリリースされた後にオブジェクトをレポートタイプから削除できません。管理パッケージの一部であるカスタムレポートタイプから項目を削除し、削除した項目がバケット化の一部であるかグルーピングで使用されていると、エラーメッセージが表示されます。
カスタム設定
  • 管理パッケージにカスタム設定が含まれていて、[表示] が [保護] に指定されている場合、カスタム設定は登録者組織のパッケージのコンポーネントリストには含まれません。カスタム設定のすべてのデータは、登録者には表示されません。
カスタムタブ
  • カスタムタブのタブスタイルは、アプリケーション内で一意である必要があります。ただし、アプリケーションがインストールされた組織内では一意でなくてもかまいません。カスタムタブのスタイルは、インストーラの環境にある既存のカスタムタブとは競合しません。
  • カスタムタブ名を異なる言語で表示するには、[設定] から [クイック検索] ボックスに「タブと表示ラベルの名称変更」と入力し、[タブと表示ラベルの名称変更] を選択します。
  • 登録者は管理パッケージ内のカスタムタブを編集することはできません。
カスタマーポータルとパートナーポータル
カスタマーポータルまたはパートナーポータルの項目を参照するパッケージがサポートされています。パッケージをインストールするには、登録者はそれぞれのポータルを有効にしておく必要があります。
ダッシュボードコンポーネント
管理パッケージの開発者は、パッケージの前のバージョンでリリースされたレポートを参照するダッシュボードコンポーネントを導入することの意味を考慮する必要があります。登録者がレポートを削除したり、個人フォルダにレポートを移動したりすると、そのレポートを参照するダッシュボードコンポーネントはインストールに含まれません。また、登録者がレポートを変更した場合は、そのレポートの結果がダッシュボードコンポーネントに表示される情報に影響する可能性があります。ベストプラクティスとして、ダッシュボードとその関連レポートは同じバージョンでリリースします。
ディビジョン
  • パッケージ内のカスタムオブジェクトでディビジョンが有効になっている場合、パッケージをインストールするには、登録者の組織でもディビジョン機能が有効になっている必要があります。
  • レポートでディビジョン条件を設定しても、連動関係は設定されません。登録者の組織にインストールされるときに、設定は削除されます。
  • レポートでオブジェクトのディビジョン項目 (たとえば取引先のディビジョン) を集計すると、連動関係が設定されます。
  • レポート内のオブジェクトのディビジョン項目が列として含まれていて、登録者の組織がオブジェクトのディビジョンをサポートしていない場合、列はインストール時に削除されます。
  • オブジェクトのディビジョン項目が列として含まれるカスタムレポートタイプをインストールすると、組織がディビジョンをサポートしていない場合、その列は削除されます。
外部データソース
  • 外部データソースを管理パッケージまたは未管理パッケージからインストールした後、登録者は外部システムへの再認証を行う必要があります。
    • パスワード認証の場合、登録者は外部データソース定義でパスワードを再入力する必要があります。
    • OAuth の場合、登録者は認証プロバイダのクライアント設定でコールバック URL を更新し、外部データソースで [保���時に認証フローを開始] を選択して再認証する必要があります。
  • 証明書はパッケージ化できません。証明書を指定する外部データソースをパッケージ化する場合は、同じ名前の有効な証明書が登録者組織に存在することを確認してください。
外部オブジェクト
  • 管理パッケージおよび未管理パッケージでは、外部オブジェクトはカスタムオブジェクトコンポーネントに含まれます。
  • Apex クラスコンポーネントの種類リストからテストを選択して、外部変更データ追跡コンポーネントを管理パッケージに含めます。トリガ、テスト、外部データソース、外部オブジェクト、その他の関連アセットは、配布用のパッケージに取り込まれます。
項目の連動関係
  • 開発者と登録者は、項目の連動関係を追加、変更、または削除できます。
  • 開発者が項目の連動関係を追加すると、登録者がすでに同じ項目に連動関係を指定していない限り、この連動関係はインストール時に追加されます。
  • 開発者が連動関係を削除すると、この変更がアップグレード時に登録者の組織で反映されません。
  • 開発者が連動項目と制御項目間に新しい選択リスト値の対応付けを導入すると、この対応付けはアップグレード時に追加されます。
  • 開発者が選択リスト値の対応付けを削除すると、この変更はアップグレード時に登録者の組織で反映されません。
項目セット
インストール済みパッケージの項目セットでは、パッケージのアップグレード時に異なるマージ操作が行われます。
パッケージ開発者の操作 パッケージアップグレードでの動作
項目を [使用できません] から [項目セットで使用可能] または [項目セットで] に変更 変更された項目は、追加先がどの列であっても、アップグレードされた項目セットの最後に追加されます。
項目の追加 新規項目は、追加先がどの列であっても、アップグレードされた項目セットの最後に追加されます。
項目を [項目セットで使用可能] または [項目セットで] から [使用できません] に変更 項目は、アップグレードされた項目セットから削除されます。
項目を [項目セットで] から [項目セットで使用可能] に変更 (またはその逆) 変更はアップグレードされた項目セットには反映されません。

登録者には、インストール済み項目セットへの変更が通知されません。開発者は、パッケージのリリースノートやその他のドキュメントを介して、リリース済み項目セットへの変更についてユーザに通知する必要があります。差し込みを行うと、項目セットから項目が削除される可能性があります。

メモ

項目セットがインストールされると、登録者はどの項目でも追加または削除できます。
フロー
  • パッケージまたはパッケージバージョンをアップロードすると、有効なフローバージョンが含まれます。フローに有効なバージョンがない場合は、最新バージョンがパッケージ化されます。
  • 異なるバージョンのフローで管理パッケージを更新するには、そのバージョンを有効化して、そのパッケージを再アップロードします。または、フローのすべてのバージョンを無効化して、フローの最新バージョンが配布するバージョンであることを確認し、パッケージをアップロードします。
  • リリース組織では、フローをリリースまたはベータ管理パッケージにアップロードすると、フローまたはフローバージョンを削除できません。
  • 開発組織の「管理-ベータ」パッケージのインストールからはフローを削除できません。
  • インストール済みのパッケージからフローを削除することはできません。パッケージ化されたフローを組織から削除するには、無効にしてからパッケージをアンインストールします。
  • 複数の未管理パッケージからインストールされた複数のバージョンのあるフローがある場合は、そのパッケージをアンインストールすると 1 つのバージョンのみを削除できます。フローの単一のバージョンを含むパッケージ (管理または未管理) のアンインストールを行うと、すべてのバージョンを含むフロー全体が削除されます。
  • フローをパッケージパッチに含めることはできません。
  • パッケージの有効なフローは、インストール後は有効です。新しくインストールされたバージョンが優先され、対象組織のフローの以前の有効なバージョンは無効になります。現在無効になっているバージョンに基づく進行中のフローがある場合は、引き続き無停止で実行できますが、前のバージョンのフローが反映されます。
  • 組織で管理パッケージのアップグレードを行うと、開発者からより新しいフローバージョンがリリースされている場合に限り、新しいフローバージョンがインストールされます。複数回アップグレードを行うと、フローバージョンが複数になることがあります。
  • 新規の対象組織に複数のバージョンのフローを含む管理パッケージをインストールすると、最新バージョンのフローのみがリリースされます。
  • 組織に存在するフローと同じ名前で、異なるバージョン番号を持つ未管理のパッケージからフローをインストールする場合、新たにインストールされたフローは、既存のフローの最新バージョンになります。ただし、パッケージ化されたフローの名前とバージョン番号が組織のフローのものと同じである場合、パッケージのインストールは失敗します。フローを上書きすることはできません。
  • Flow Builder は、管理パッケージからインストールされたフローを開くことができません。ただし、これらがテンプレートである場合はこの限りではありません。
  • 管理パッケージページと未管理パッケージページの両方から呼び出されるフローを含むパッケージは作成できません。回避策として、コンポーネントのそれぞれの種別に 1 つずつ、2 つのパッケージを作成します。たとえば、管理パッケージページによって呼び出されるカスタマイズ可能なフローをパッケージ化するとします。その場合、ユーザがカスタマイズできるフローを使用して 1 つの未管理パッケージを作成します。次に、最初のパッケージからのフローを参照する (名前空間を含む) Visualforce ページを使用して別の管理パッケージを作成します。
  • フローを管理パッケージから翻訳した場合は、[翻訳] ページまたは [上書き] ページにそのフローのマスタ定義名は表示されません。マスタ定義名の翻訳を更新するには、フロー表示ラベルを編集し、[翻訳] ページから翻訳を更新します。
  • フローで次のいずれかの要素を使用すると、要素が参照するパッケージ化可能なコンポーネントは自動的にはパッケージに含まれません。パッケージを正常にリリースするには、参照されるこれらのコンポーネントをパッケージに手動で追加します。
    • Chatter に投稿
    • メールを送信
    • 承認申請
  • フローで CSP 信頼済みサイトに依存する Lightning コンポーネントを参照している場合、その信頼済みサイトはパッケージまたは変更セットに自動的に含まれません。
フォルダ
  • Salesforce でフォルダに格納されるコンポーネント (ドキュメントなど) が個人フォルダや未整理のフォルダに格納されている場合は、パッケージに追加できません。Salesforce でフォルダに格納されるドキュメント、レポート、その他のコンポーネントは、公開されているフォルダに保存してください。
  • ドキュメント、メールテンプレート、レポートまたはダッシュボードなどのコンポーネントは、公開者のフォルダ名を使用してインストーラの組織の新規フォルダに格納されます。これらのフォルダには、パッケージの一部であることを示す名前を付けます。
  • 新しいレポート、ダッシュボード、ドキュメント、またはメールテンプレートがアップグレード時にインストールされ、コンポーネントが含まれているフォルダが登録者によって削除されている場合、フォルダは再作成されます。以前に削除されたフォルダに格納されていたコンポーネントは復元されません。
  • フォルダに含まれているコンポーネントの名前は、個人フォルダを除き、同じコンポーネントタイプのすべてのフォルダで一意である必要があります。個人フォルダに含まれているコンポーネントは、個人フォルダでのみ一意である必要があります。
ホームページのコンポーネント
カスタムホームページのレイアウトをパッケージ化すると、ページレイアウトに含まれているすべてのカスタムホームページのコンポーネントが自動的に追加されます。「お知らせ」などの標準コンポーネントは、パッケージに含まれておらず、インストーラの「お知らせ」を上書きすることはありません。カスタムホームページのレイアウトにメッセージを含めるには、メッセージを含む HTML エリアタイプのカスタムホームタブのコンポーネントを作成します。[設定] から、[クイック検索] ボックスに「ホームページのコンポーネント」と入力し、[ホームページのコンポーネント] を選択します。次に、メッセージをカスタムホームページのレイアウトに追加します。
ホームページのページレイアウト
インストール後は、すべての登録者のホームページのページレイアウトが、カスタムホームページのレイアウトに表示されます。ページレイアウト名にアプリケーション名を含めることで、レイアウトを区別します。
リストビュー
クエリに関連付けられているリストビューをパッケージに含めることはできません。
マルチ通貨
  • オブジェクトの通貨項目が列として含まれるレポートまたはカスタムレポートタイプを登録者がインストールする場合、登録者の組織でマルチ通貨が有効にされていないと、その列は削除されます。
  • レポートの条件でオブジェクトの通貨項目 ([取引先通貨] など) を参照すると、連動関係が設定されます。
  • レポート内のオブジェクトの通貨項目を集計すると、連動関係が設定されます。
  • レポート条件値で通貨指定 (たとえば、「年間売上 次の文字列と一致する GBP 100」) を使用すると、連動関係は設定されません。レポートでは、インストーラの組織で実行されるときに通貨をサポートしていない場合、エラーが生成されます。
  • レポート内のオブジェクトの通貨項目が列として含まれていて、登録者の組織でマルチ通貨が有効にされていない場合、列はインストール時に削除されます。
  • オブジェクトの通貨項目が列として含まれるカスタムレポートタイプを登録者がインストールする場合、組織でマルチ通貨が有効にされていないと、その列は削除されます。
指定ログイン情報
  • 指定ログイン情報を管理パッケージまたは未管理パッケージからインストールした後、登録者は外部システムへの再認証を行う必要があります。
    • パスワード認証の場合、登録者は指定ログイン情報定義でパスワードを再入力します。
    • OAuth の場合、登録者は認証プロバイダのクライアント設定でコールバック URL を更新し、指定ログイン情報で [保存時に認証フローを開始] を選択して再認証します。
  • 指定ログイン情報はパッケージに自動的に追加されません。コールアウトエンドポイントとして指定ログイン情報を指定する外部データソースまたは Apex コードをパッケージ化する場合、指定ログイン情報をパッケージに追加します。または、登録者組織に同じ名前の有効な指定ログイン情報があることを確認します。

    複数の組織がある場合、各組織に同じ名前でエンドポイント URL が異なる指定ログイン情報を作成できます。これにより、それらの指定ログイン情報の共有名を参照するコールアウト定義を 1 つだけパッケージして (すべての組織で) リリースできます。たとえば、各組織の指定ログイン情報に異なるエンドポイント URL を指定して、開発環境と本番環境の違いに対応することができます。Apex コールアウトでそれらの指定ログイン情報の共有名が指定されている場合、コールアウトを定義する Apex クラスをパッケージ化して、プログラムで環境をチェックすることなく、すべての組織にリリースできます。

  • 証明書はパッケージ化できません。証明書を指定する指定ログイン情報をパッケージ化する場合は、同じ名前の有効な証明書が登録者組織に存在することを確認してください。
ページレイアウト
パッケージをアップロードするユーザのページレイアウトは、Group Edition および Professional Edition 組織で使用されるレイアウトであり、それが Enterprise Edition、Unlimited Edition、Performance Edition、Developer Edition 組織のデフォルトのページレイアウトになります。
パッケージページレイアウトが既存のオブジェクトにインストールされている場合、そのレイアウトは、補完的なレコードタイプと一緒にパッケージ化します。一緒にパッケージ化しない場合は、インストール済みのページレイアウトを手動でプロファイルに適用します。
パッケージをインストールした結果としてページレイアウトとレコードタイプが作成されると、インストールまたはアップグレード時にプロファイルが対応付けられない限り、アップロードするユーザのこのレコードタイプに割り当てられたページレイアウトが、登録者組織のすべてのプロファイルの同じレコードタイプに割り当てられます。
権限セット
パッケージには、次の権限およびアクセス設定を指定した権限セットをコンポーネントとして含めることができます。
  • 割り当てられたカスタムアプリケーション
  • カスタムオブジェクト権限
  • 外部オブジェクト権限
  • カスタム項目権限
  • カスタム権限
  • カスタムタブ表示の設定
  • Apex クラスのアクセス
  • Visualforce ページのアクセス
  • 外部データソースへのアクセス

標準タブ表示は、権限セットコンポーネントには含まれません。

メモ

権限のコレクションをインストールまたはアップグレードするには、権限セットを使用します。プロファイル設定とは対照的に、権限セットでプロファイルは上書きされません。
選択リスト値
  • 登録者は選択リスト項目値の名前を変更または削除できます。Apex で選択リスト値を明示的に参照する場合、この点に留意してください。
  • 選択リスト項目値は、開発者の組織で追加または削除できます。アップグレード時に新しい値はインストールされません。開発者が削除した値は、登録者が削除するまで登録者の組織で引き続き使用できます。
  • グローバル値セットは、開発者組織と登録者組織に追加できます。パッケージのアップグレード中、グローバル値セットは次のように動作します。
    • 登録者組織で項目値の表示ラベルと API 参照名は変更されない。
    • 新しい項目値は登録者組織に追加されない。
    • 登録者組織の有効な値および無効な値の設定は変更されない。
    • 登録者組織のデフォルト値は変更されない。
    • パッケージのアップグレードにグローバル値セットの表示ラベルの変更が含まれていると、グローバル値セットの表示ラベル名が変更される。
プロファイルの設定
プロファイルの設定には、パッケージ内のコンポーネントについて次の項目が含まれます。
  • 割り当てられたカスタムアプリケーション
  • 割り当てられた接続アプリケーション
  • タブ設定
  • ページレイアウトの割り当て
  • レコードタイプの割り当て
  • カスタムオブジェクト権限
  • 外部オブジェクト権限
  • カスタム項目権限
  • カスタム権限
  • Apex クラスのアクセス
  • Visualforce ページのアクセス
  • 外部データソースへのアクセス
プロファイルの設定により、インストーラの組織の既存のプロファイルが特定の権限および設定変更で上書きされます。プロファイルの設定は、パッケージが特定のプロファイルに対して対象組織にインストールされている場合にのみ適用され、すべてのプロファイルに対してインストールされている場合は適用されません。
レコードのタイプ
  • パッケージにレコードタイプが含まれている場合、パッケージをインストールするには、登録者の組織がレコードタイプをサポートしている必要があります。
  • 新しい選択リスト値がインストールされると、その値は開発者が指定した対応付けに基づいて、インストール済みのすべてのレコードタイプに関連付けられます。登録者はこの関連付けを変更できます。
  • レポートの条件でオブジェクトのレコードタイプ項目 ([取引先レコードタイプ] など) を参照すると、連動関係が設定されます。
  • レポートの条件でオブジェクトのレコードタイプ項目 ([取引先レコードタイプ] など) を集計すると、連動関係が設定されます。
  • オブジェクトのレコードタイプ項目が列としてレポートに含まれていて、登録者の組織がオブジェクトのレコードタイプを使用していないか、レコードタイプをサポートしていない場合、列はインストール時に削除されます。
  • オブジェクトのレコードタイプ項目が列として含まれるカスタムレポートタイプをインストールすると、組織がレコートタイプをサポートしていないか、オブジェクトにレコードタイプが定義されていない場��、その列は削除されます。
レポート作成スナップショット
管理パッケージの開発者は、パッケージの前のバージョンでリリースされたレポートを参照するレポート作成スナップショットを導入することの意味を考慮する必要があります。登録者がレポートを削除したり、個人フォルダにレポートを移動したりすると、たとえパッケージインストールのページでインストールされることが示されていても、そのレポートを参照するレポート作成スナップショットはインストールされません。また、登録者がレポートを変更した場合、そのレポートでレポート作成スナップショットで表示される情報に影響する結果が返される可能性があります。そのため、開発者はレポート作成スナップショットとその関連レポートを同じバージョンでリリースします。
登録者が実行ユーザを選択するため、実行ユーザがリリース元項目またはリリース先項目にアクセスできない場合は、一部のレポート作成スナップショット項目の対応付けが無効になる可能性があります。
レポート
レポートにパッケージ化できない要素が含まれている場合、その要素は削除またはダウングレードされるか、パッケージのアップロードに失敗します。次に例を示します。
  • 活動および商談レポートから階層のドリルダウンが削除されます。
  • パッケージ化できない項目の検索条件は、自動的に削除されます (たとえば、標準オブジェクトレコードタイプの検索条件)。
  • パッケージ化できない項目の検索条件ロジック (標準オブジェクトレコードタイプの検索条件など) がレポートに含まれていると、パッケージのアップロードに失敗します。
  • 標準のキャンペーンレポートの [キャンペーンの選択] 項目のルックアップ値は削除されます。
  • レポートが非公開フォルダまたは [未整理公開レポート] フォルダに移動されると、レポートがパッケージから削除されます。
  • Chart Analytics 2.0 が存在しない組織にパッケージをインストールすると、次のようになります。
    • 組み合わせグラフは、削除される代わりにダウングレードされます。たとえば、折れ線を追加した組み合わせ縦棒グラフは単純な縦棒グラフにダウングレードされ、棒を追加した組み合わせ棒グラフは単純な棒グラフにダウングレードされます。
    • ドーナツやじょうごなど、サポートされていないグラフの種類は削除されます。
Sコントロール
登録者がインストールできるのは、2010 年 1 月より前に作成された未管理パッケージの Sコントロールのみです。
Sコントロールは廃止され、Visualforce ページに置き換えられました。
トランスレーションワークベンチ
  • トランスレーションワークベンチを有効にして、パッケージに言語を追加した場合、関連付けられている翻訳された値は適切なコンポーネントと共に自動的にパッケージ化されます。可能なすべてのコンポーネントに翻訳が指定されていることを確認してください。
  • パッケージのインストーラは、[パッケージの詳細] ページでサポートされている言語を確認できます。パッケージ化されている言語の翻訳は、インストーラが特定の機能を有効にしなくても表示されます。インストーラがトランスレーションワークベンチを有効にする必要があるのは、インストール後に未管理コンポーネントの翻訳を変更する場合や、管理パッケージのカスタム表示ラベルの翻訳を上書きする場合、またはその他の言語に翻訳する場合です。
  • パッケージ拡張を設計する場合は、拡張コンポーネントの翻訳を含めることができますが、基本パッケージのコンポーネントに翻訳を含めることはできません。
入力規則
パッケージ化されたカスタムオブジェクトの場合、関連する入力規則も暗黙的にパッケージ化されます。
アナリティクス
Analytics コンポーネントには、Analytics ��プリケーション、ダッシュボード、データフロー、データセット、レシピ、レンズ、ユーザ XMD などがあります。Analytics コンポーネントをパッケージ化するときには、次のヒントとベストプラクティスに留意してください。
  • 管理パッケージとは異なり、Analytics 未管理パッケージは開発者専用の機能とみなされ、汎用的な配布ではサポートされていません。Analytics 未管理パッケージは、Salesforce 未管理パッケージの制約内で期待どおりに機能しますが、管理パッケージと同じテストレベルは適用されません。未管理パッケージは、管理パッケージの多くのセキュリティ対策がなく、それらの制限に精通している開発者向けです。『ISVforce ガイド』の関連するトピックも参照してください。
  • レシピをパッケージ化に使用できるようにするには、レシピを使用したデータセットを作成する必要があります。正常にリリースするには、レシピと共に関連データフローをパッケージに追加する必要があります。
  • Analytics システム管理者権限は、パッケージを作成するためには必要ですが、リリースするためには必要ありません。リリースには Salesforce システム管理者権限のみが必要です。
  • データセットとデータフローの間には関連付けはありません。つまり、連動はしません。両方をパッケージ化する場合は、手動で追加する必要があります。そうしないと、リリース中にエラーが表示されます。変更セットの場合と同様に、データセットとデータフローの両方をパッケージ化するときには手動で追加します。
  • ビューはユーザ固有であるため、ダッシュボードをパッケージ化するときに含まれません。
  • 条件付き書式でダッシュボードを移行するには、変更セットを使用します。JSON のコピー/貼り付けを使用して手動で移行すると、条件付き書式は失われます。
  • Winter '18 リリースにはベータバージョンの Apex ステップが含まれます。この Apex ステップにより、開発者はカスタム Apex 機能をダッシュボードに追加し、Analytics では本来サポートされていない Salesforce Platform 機能にアクセスできます。ダッシュボードをパッケージに含める場合、Apex ステップは含まれません。Apex クラスを個別に移行してください。
  • Spring '17 リリースより前では、リリースするダッシュボードで使用している画像ウィジェットが対象組織で使用不可の画像ファイルを参照している場合、画像が表示されませんでした。これを回避するために、手動で画像をアップロードするか、画像を含むフォルダをパッケージに追加していました。Spring '17 リリースでは、画像がダッシュボードとパッケージ化され、ダッシュボード間の参照が維持されるようになっています。リンクで参照されているダッシュボードは削除できません。リリース元組織で画像を再作成するか、ダッシュボードのウィジェットをリンクします。その後、再度パッケージ化するか、対象組織でリンクの問題を修正します。
  • データフローをパッケージ化する場合は注意が必要です。無効なスキーマの上書き、およびサポートされていないパラメータや無効なパラメータは削除されます。たとえば、Type = dim はサポートされなくなりました。代わりに Type = text を使用してください。JSON でのコメントは削除されます。ノードが異なる順序で表示されることがあります。
ワークフロー
  • Salesforce では、公開グループ、パートナーユーザ、またはロール受信者が存在するワークフローアラートをアップロードできません。アプリケーションをアップロードする前に、受信者を特定のユーザに変更してください。インストール時に、Salesforce がこのユーザをアプリケーションをインストールするユーザに置き換えます。インストーラは必要に応じてアプリケーションをカスタマイズできます。
  • Salesforce では、[所有者] 項目をキューに変更するワークフロー項目自動更新をアップロードできません。アプリケーションをアップロードする前に、更新された項目の値を特定のユーザに変更してください。インストール時に、Salesforce がこのユーザをアプリケーションをインストールするユーザに置き換えます。インストーラは必要に応じてアプリケーションをカスタマイズできます。
  • Salesforce では、標準オブジェクトまたは管理-インストール済みオブジェクトのレコードタイプを参照するワークフロールール、項目自動更新、アウトバウンドメッセージをアップロードできません。
  • Salesforce では、ロールに割り当てられるワークフロー ToDo をアップロードできません。アプリケーションをアップロードする前に、[割り当て先] 項目を特定のユーザに変更してください。インストール時に、Salesforce がこのユーザをアプリケーションをインストールするユーザに置き換えます。インストーラは必要に応じてアプリケーションをカスタマイズできます。
  • ワークフロールールと、メールアラートや項目自動更新などの関連付けられたワークフローアクションをパッケージ化できます。ただし、時間ベースのトリガはパッケージに含まれません。アプリケーションに不可欠な時間ベースのトリガを設定するように、インストーラに通知してください。

    フロートリガはパッケージ化できません。フロートリガワークフローアクションのパイロットプログラムは終了します。組織でパイロットをすでに有効にしている場合は、引き続きフロートリガワークフローアクションを作成および編集できます。組織でパイロット機能を有効にしなかった場合、代わりにプロセスビルダーで [フロー] アクションを選択してください。

  • 開発者は一部のワークフローアクションを保護することができます。
  • 開発者は、ワークフローアクションとワークフロールールの関連付けをいつでも作成または削除できます。関連付けの削除を含むこれらの変更は、インストール時に登録者の組織で反映されます。管理パッケージでは、開発者によって関連付けられた場合、登録者は関連付けられているワークフロールールからワークフローアクションの関連付けを削除���きません。
  • ワークフローメールアラートのメール受信者など、ワークフローアクションで参照される特定のユーザは、パッケージをインストールするユーザに置き換えられます。ロール、公開グループ、取引先チーム、商談チーム、ケースチーム内の役割を参照するワークフローアクションはアップロードされない場合があります。
  • ワークフローメールアラートの [差出人メールアドレス] など、組織の共有アドレスへの参照は、インストール中に現在のユーザにリセットされます。
  • インストールまたはアップグレードされたパッケージで新しく作成したすべてのワークフロールールは、インストール時に、アップロードされたパッケージと同じ有効化状況になります。