パッケージ内のコンポーネントの特殊な動作
配布するアプリケーションを構築するときには特別な注意が必要であり、パッケージ化によるアプリケーションおよびコンポーネントへの影響を考慮することが重要です。次の情報を参考にして、パッケージに含めるもの、アプリケーションの設計方法、および管理または未管理パッケージの配布方法を決定してください。
- Apex クラスまたはトリガ
-
パッケージの一部として含まれている Apex はいずれも、累積テストカバー率が少なくとも 75% である必要があります。各トリガについても何らかのテストを行う必要があります。パッケージを AppExchange にアップロードすると、すべてのテストが実行され、エラーがない状態で実行されていることが確認されます。また、インストーラの組織にパッケージがインストールされるときにも、すべてのテストが実行されます。テストのいずれかが失敗した場合、インストーラがパッケージをインストールするかどうかを決めることができます。
- パッケージに 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 共有の理由は、パッケージに直接追加できますが、カスタムオブジェクトに対してしか使用できません。
- 接続アプリケーション
-
- 接続アプリケーションは、管理パッケージにのみ追加できます。未管理パッケージでは接続アプリケーションはサポートされていません。
- パッケージの登録者またはインストーラは、接続アプリケーションを単独で削除することはできません。そのパッケージのアンインストールのみを行えます。開発者は、パッケージが「管理-リリース済み」としてアップロードされた後に、接続アプリケーションを削除できます。接続アプリケーションは、パッケージのアップグレード中に登録者の組織で削除されます。
- 管理パッケージに含まれている接続アプリケーションの更新を公開するには、通常、新しい管理パッケージバージョンを転送し、登録者組織を新しいバージョンにアップグレードします。ただし、接続アプリケーションの [PIN 保護] 設定を更新する場合、新しい管理パッケージのアップグレードを転送する必要はありません。[PIN 保護] 設定の変更を保存すると、これらの更新が登録者組織に自動的に公開されます。
- 次の接続アプリケーション設定は、管理パッケージパッチで更新できません。
- モバイルアプリケーション設定
- Apple、Android、Windows プッシュ通知を含むプッシュメッセージング
- キャンバスアプリケーション設定
- SAML 設定
- OAuth 範囲または IP 範囲が前のバージョンから変更された接続アプリケーションを含むパッケージを転送アップグレードすると、アップグレードは失敗します。このセキュリティ機能では、インストール済みパッケージをアップグレードすることによって、顧客組織への広範なアクセス権を未承認ユーザが取得することをブロックします。この場合でも、顧客は同じパッケージのプルアップグレードを行えます。このアップグレードは、顧客の知識と同意がある場合に行えます。
- 既存の接続アプリケーション (Summer '13 よりも前に作成された接続アプリケーション) は、管理パッケージに追加できます。また、同じ管理パッケージに新しい接続アプリケーションと既存の接続アプリケーションを組み合わせることもできます。
- Summer '13 よりも前に作成された接続アプリケーションの場合、新しいバージョンをパッケージ化してアップロードするまで、既存のインストール URL を使用できます。更新済みの接続アプリケーションを含むパッケージの新しいバージョンがアップロードされると、そのインストール URL は機能しなくなります。
- カスタムコンソール
- カスタムコンソールコンポーネントがあるパッケージは、Service Cloud ライセンスがある組織か、「セールスコンソール」権限が有効になっている組織にのみインストールできます。
- カスタム項目
-
- 開発者は、デフォルト値がある限り、必須のカスタム項目を管理パッケージに追加できます。
- 自動採番種別の項目および必須項目は、オブジェクトが管理-リリース済みパッケージでアップロードされた後には追加できません。
- [保護] に設定された詳細項目を集計する積み上げ集計項目を登録者組織がインストールすることはできません。
- カスタム表示ラベル
- 表示ラベルが翻訳されている場合、翻訳をパッケージに含めるには言語を明示的にパッケージに含める必要があります。登録者は、カスタム表示ラベルのデフォルトの翻訳を上書きできます。
- カスタムメタデータ型
- 第二世代管理パッケージ (2GP) には、カスタムメタデータ型の項目やレコードが用意され、各自が追加できます。パッケージバージョンが昇格された後に、項目を既存のパッケージに直接追加することはできません。名前空間を共有する複数のパッケージを作成する場合、レイアウトとレコードは別々のパッケージにすることができます。カスタムメタデータ型のカスタム項目は同じパッケージにまとめる必要があります。
カスタムメタデータ型に項目を追加する場合は、拡張を既存のパッケージに公開して、エンティティリレーション項目を作成し、その項目を拡張のカスタムメタデータ型に対応付けます。「カスタムメタデータ型項目の既存のパッケージへの追加」を参照してください。
- カスタムオブジェクト
-
- パッケージ化したカスタムオブジェクトで開発者が [レポートを許可] または [活動を許可] 属性を有効にすると、アップグレード時に登録者の組織でもこれらの機能が有効化されます。管理-リリース済みパッケージで属性を有効にすると、開発者と登録者のいずれもこれらの属性を無効にできません。
- 標準ボタンおよびリンクの上書きも、パッケージ化できます。
- 拡張パッケージで、基本パッケージに含まれるカスタムオブジェクトの履歴情報にアクセスする場合は、基本パッケージの所有者と協力して次の操作を行います。
- 基本パッケージのリリース組織で履歴管理を有効にします。
- 基本パッケージの新しいバージョンをアップロードします。
- 拡張パッケージのリリース組織で基本パッケージの新しいバージョンをインストールし、履歴管理情報にアクセスします。
- カスタム権限
- 接続アプリケーションを含むカスタム権限のある変更セットをリリースする場合、接続アプリケーションが対象組織にすでにインストールされている必要があります。
- カスタムレポートタイプ
- 開発者は、リリース後の管理パッケージ内のカスタムレポートタイプを編集し、新しい項目を追加できます。登録者は、管理パッケージの新しいバージョンをインストールするときに、こうした変更を自動的に受け取ります。ただし、開発者は、パッケージがリリースされた後にオブジェクトをレポートタイプから削除できません。管理パッケージの一部であるカスタムレポートタイプから項目を削除し、削除した項目がバケット化の一部であるかグルーピングで使用されていると、エラーメッセージが表示されます。
- カスタム設定
- カスタムタブ
-
- カスタムタブのタブスタイルは、アプリケーション内で一意である必要があります。ただし、アプリケーションがインストールされた組織内では一意でなくてもかまいません。カスタムタブのスタイルは、インストーラの環境にある既存のカスタムタブとは競合しません。
- カスタムタブ名を異なる言語で表示するには、[設定] から [クイック検索] ボックスに「タブと表示ラベルの名称変更」と入力し、[タブと表示ラベルの名称変更] を選択します。
- 登録者は管理パッケージ内のカスタムタブを編集することはできません。
- カスタマーポータルとパートナーポータル
- カスタマーポータルまたはパートナーポータルの項目を参��するパッケージがサポートされています。パッケージをインストールするには、登録者はそれぞれのポータルを有効にしておく必要があります。
- ダッシュボードコンポーネント
- 管理パッケージの開発者は、パッケージの前のバージョンでリリースされたレポートを参照するダッシュボードコンポーネントを導入することの意味を考慮する必要があります。登録者がレポートを削除したり、個人フォルダにレポートを移動したりすると、そのレポートを参照するダッシュボードコンポーネントはインストールに含まれません。また、登録者がレポートを変更した場合は、そのレポートの結果がダッシュボードコンポーネントに表示される情報に影響する可能性があります。ベストプラクティスとして、ダッシュボードとその関連レポートは同じバージョンでリリースします。
- ディビジョン
-
- パッケージ内のカスタムオブジェクトでディビジョンが有効になっている場合、パッケージをインストールするには、登録者の組織でもディビジョン機能が有効になっている必要があります。
- レポートでディビジョン条件を設定しても、連動関係は設定されません。登録者の組織にインストールされるときに、設定は削除されます。
- レポートでオブジェクトのディビジョン項目 (たとえば取引先のディビジョン) を集計すると、連動関係が設定されます。
- レポート内のオブジェクトのディビジョン項目が列として含まれていて、登録者の組織がオブジェクトのディビジョンをサポートしていない場合、列はインストール時に削除されます。
- オブジェクトのディビジョン項目が列として含まれるカスタムレポートタイプをインストールすると、組織がディビジョンをサポートしていない場合、その列は削除されます。
- メールテンプレート (Lightning)
- 第一世代パッケージツールを使用して管理パッケージを作成します。
-
次のパッケージ化に関する考慮事項は、メールテンプレートビルダーで作成されたメールテンプレートを含む Lightning メールテンプレートに適用されます。
-
Salesforce Files を参照するインライン画像が含まれる、メールテンプレートビルダーで作成されたメールテンプレートは、パッケージまたは変更セットに追加できません。
-
Spring '21 リリースより前にメールテンプレートビルダーで作成されたメールテンプレートの場合、添付ファイルはパッケージに自動的に追加されません。これらのテンプレートを開いて再保存して添付ファイルをコンテンツアセットに変換すると、自動的にパッケージに追加されます。
- 拡張メールテンプレートフォルダの動作は次のとおりです。
- パッケージに拡張メールテンプレートフォルダが含まれている場合、リリースを正常に行うにはリリース先組織で拡張フォルダが有効になっている必要があります。
- メールテンプレートがサブフォルダにある場合、ルートフォルダをパッケージに追加してもメールテンプレートは自動的にパッケージに追加されません。メールテンプレートがルートフォルダにある場合は自動的にパッケージに追加されます。
- メール受信者プレフィックスで使用されるカスタム項目に基づいた差し込み項目では (リードと取引先責任者)、これらの差し込み項目への参照が追加されます。カスタム項目の名前が変更されても、テンプレート内の参照は更新されません。新しい項目名を使用するようにカスタム差し込み項目を編集して、参照を更新してください。
-
- 外部データソース
-
- 外部データソースを管理パッケージまたは未管理パッケージからインストールした後、登録者は外部システムへの再認証を行う必要があります。
- パスワード認証の場合、登録者は外部データソース定義でパスワードを再入力する必要があります。
- 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 組織のデフォルトのページレイアウトになります。
- パッケージページレイアウトが既存のオブジェクトにインストールされている場合、そのレイアウトは、補完的なレコードタイプと一緒にパッケージ化します。一緒にパッケージ化しない場合は、インストール済みのページレイアウトを手動でプロファイルに適用します。
- パッケージをインストールした結果としてページレイアウトとレコードタイプが作成されると、インストールまたはアップグレード時にプロファイルが対応付けられない限り、アップロードするユーザのこのレコードタイプに割り当てられたページレイアウトが、登録者組織のすべてのプロファイルの同じレコードタイプに割り当てられます。
- 選択リスト値
-
- コード内で選択リスト値を明示的に参照する場合、カスタム項目の選択リスト項目値を登録者が追加、編集、削除できる点に留意します。コード内で選択リスト値を明示的に参照する場合、この可能性を慎重に検討してください。
- 選択リスト項目値は、開発者の組織で追加または削除できます。
- 標準の選択リストへの変更をパッケージ化して登録者組織にリリースすることはできず、開発者が削除した選択リスト値は、登録者の組織で引き続き使用できます。パッケージと対象組織間に違いがある場合や、PathAssistant などの機能からの新しい値に連動関係がある場合は、リリースに失敗します。登録者組織の値を変更するには、対象の登録者組織で値を手動で追加または変更する必要があります。
- ロック解除済みパッケージの選択リスト値の更新はサポートされていません。対象の登録者組織で値を手動で追加または変更してください。
- パッケージをアップグレードしても、管理カスタム項目に保存されている連動選択リスト値は維持されます。
- グローバル値セットは、開発者組織と登録者組織に追加できます。パッケージのアップグレード中、グローバル値セットは次のように動作します。
- 登録者組織で項目値の表示ラベルと API 参照名は変更されない。
- 新しい項目値は登録者組織に追加されない。
- 登録者組織の有効な値および無効な値の設定は変更されない。
- 登録者組織のデフォルト値は変更されない。
- パッケージのアップグレードにグローバル値セットの表示ラベルの変更が含まれていると、グローバル値セットの表示ラベル名が変更される。
- レコードのタイプ
-
- パッケージにレコードタイプが含まれている場合、パッケージをインストールするには、登録者の組織がレコードタイプをサポートしている必要があります。
- 新しい選択リスト値がインストールされると、その値は開発者が指定した対応付けに基づいて、インストール済みのすべてのレコードタイプに関連付けられます。登録者はこの関連付けを変更できます。
- レポートの条件でオブジェクトのレコードタイプ項目 ([取引先レコードタイプ] など) を参照すると、連動関係が設定されます。
- レポートの条件でオブジェクトのレコードタイプ項目 ([取引先レコードタイプ] など) を集計すると、連動関係が設定されます。
- オブジェクトのレコードタイプ項目が列としてレポートに含まれていて、登録者の組織がオブジェクトのレコードタイプを使用していないか、レコードタイプをサポートしていない場合、列はインストール時に削除されます。
- オブジェクトのレコードタイプ項目が列として含まれるカスタムレポートタイプをインストールすると、組織がレコートタイプをサポートしていないか、オブジェクトにレコードタイプが定義されていない場合、その列は削除されます。
- レポート作成スナップショット
- 管理パッケージの開発者は、パッケージの前のバージョンでリリースされたレポートを参照するレポート作成スナップショットを導入することの意味を考慮する必要があります。登録者がレポートを削除したり、個人フォルダにレポートを移動したりすると、たとえパッケージインストールのページでインストールされることが示されていても、そのレポートを参照するレポート作成スナップショットはインストールされません。また、登録者がレポートを変更した場合、そのレポートでレポート作成スナップショットで表示される情報に影響する結果が返される可能性があります。そのため、開発者はレポート作成スナップショットとその関連レポートを同じバージョンでリリースします。
- 登録者が実行ユーザを選択するため、実行ユーザがリリース元項目またはリリース先項目にアクセスできない場合は、一部のレポート作成スナップショット項目の対応付けが無効になる可能性があります。
- レポート
- レポートにパッケージ化できない要素が含まれている場合、その要素は削除またはダウングレードされるか、パッケージのアップロードに失敗します。次に例を示します。
- 活動および商談レポートから階層のドリルダウンが削除されます。
- パッケージ化できない項目の検索条件は、自動的に削除されます (たとえば、標準オブジェクトレコードタイプの検索条件)。
- パッケージ化できない項目の検索条件ロジック (標準オブジェクトレコードタイプの検索条件など) がレポートに含まれていると、パッケージのアップロードに失敗します。
- 標準のキャンペーンレポートの [キャンペーンの選択] 項目のルックアップ値は削除されます。
- レポートが非公開フォルダまたは [未整理公開レポート] フォルダに移動されると、レポートがパッケージから削除されます。
- Chart Analytics 2.0 が存在しない組織にパッケージをインストールすると、次のようになります。
- 組み合わせグラフは、削除される代わりにダウングレードされます。たとえば、折れ線を追加した組み合わせ縦棒グラフは単純な縦棒グラフにダウングレードされ、棒を追加した組み合わせ棒グラフは単純な棒グラフにダウングレードされます。
- ドーナツやじょうごなど、サポートされていないグラフの種類は削除されます。
- Sコントロール
- 登録者がインストールできるのは、2010 年 1 月より前に作成された未管理パッケージの Sコントロールのみです。
- Sコントロールは廃止され、Visualforce ページに置き換えられました。
- トランスレーションワークベンチ
-
- トランスレーションワークベンチを有効にして、パッケージに言語を追加した場合、関連付けられている翻訳された値は適切なコンポーネントと共に自動的にパッケージ化されます。可能なすべてのコンポーネントに翻訳が指定されていることを確認してください。
- パッケージのインストーラは、[パッケージの詳細] ページでサポートされている言語を確認できます。パッケージ化されている言語の翻訳は、インストーラが特定の機能を有効にしなくても表示されます。インストーラがトランスレーションワークベンチを有効にする必要があるのは、インストール後に未管理コンポーネントの翻訳を変更する場合や、管理パッケージのカスタム表示ラベルの翻訳を上書きする場合、またはその他の言語に翻訳する場合です。
- パッケージ拡張を設計する場合は、拡張コンポーネントの翻訳を含めることができますが、基本パッケージのコンポーネントに翻訳を含めることはできません。
- 入力規則
- パッケージ化されたカスタムオブジェクトの場合、関連する入力規則も暗黙的にパッケージ化されます。
- アナリティクス
-
Analytics コンポーネントには、Analytics アプリケーション、ダッシュボード、データフロー、データセット、レシピ、レンズ、ユーザ XMD などがあります。Analytics コンポーネントをパッケージ化するときには、次のヒントとベストプラクティスに留意してください。
- 管理パッケージとは異なり、Tableau CRM 未管理パッケージは開発者専用の機能とみなされ、汎用的な配布ではサポートされていません。Tableau CRM 未管理パッケージは、Salesforce 未管理パッケージの制約内で期待どおりに機能しますが、管理パッケージと同じ程度のテストは適用されません。未管理パッケージは、管理パッケージの多くのセキュリティ対策がなく、それらの制限に精通している開発者向けです。『ISVforce ガイド』の関連するトピックも参照してください。
- レシピをパッケージ化に使用できるようにするには、レシピを使用したデータセットを作成する必要があります。正常にリリースするには、レシピと共に関連データフローをパッケージに追加する必要があります。
- Analytics システム管理者権限は、パッケージを作成するためには必要ですが、リリースするためには必要ありません。リリースには Salesforce システム管理者権限のみが必要です。
- データセットとデータフローの間には関連付けはありません。つまり、連動はしません。両方をパッケージ化する場合は、手動で追加する必要があります。そうしないと、リリース中にエラーが表示されます。変更セットの場合と同様に、データセットとデータフローの両方をパッケージ化するときには手動で追加します。
- データフローをパッケージ化した場合、入力元とセキュリティ述語はパッケージに含まれません。
- ビューはユーザ固有であるため、ダッシュボードをパッケージ化するときに含まれません。
- JSON のコピー/貼り付けを使用してダッシュボードを手動で移行すると、ブレンドされたクエリの条件付き書式、ウィジェット固有の数値形式、および基準の表示ラベルは失われます。移行したダッシュボードでこれらの形式と表示ラベルを保持するには、変更セットをパッケージ化するときに Analytics データセットメタデータコンポーネントの種類を含めます。
- 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 がこのユーザをアプリケーションをインストールするユーザに置き換えます。インストーラは必要に応じてアプリケーションをカスタマイズできます。
- ワークフロールールと、メールアラートや項目自動更新などの関連付けられたワークフローアクションをパッケージ化できます。ただし、時間ベースのトリガはパッケージに含まれません。アプリケーションに不可欠な時間ベースのトリガを設定するように、インストーラに通知してください。
フロートリガはパッケージ化できません。フロートリガワークフローアクションのパイロットプログラムは終了します。組織でパイロットをすでに有効にしている場合は、引き続きフロートリガワークフローアクションを作成および編集できます。組織でパイロット機能を有効にしなかった場合は、Flow Builder を使用してレコードトリガフローを作成するか、プロセスビルダーを使用してプロセスからフローを起動します。
- 開発者は一部のワークフローアクションを保護することができます。
- 開発者は、ワークフローアクションとワークフロールールの関連付けをいつでも作成または削除できます。関連付けの削除を含むこれらの変更は、インストール時に登録者の組織で反映されます。管理パッケージでは、開発者によって関連付けられた場合、登録者は関連付けられているワークフロールールからワークフローアクションの関連付けを削除できません。
- ワークフローメールアラートのメール受信者など、ワークフローアクションで参照される特定のユーザは、パッケージをインストールするユーザに置き換えられます。ロール、公開グループ、取引先チーム、商談チーム、ケースチーム内の役割を参照するワークフローアクションはアップロードされない場合があります。
- ワークフローメールアラートの [差出人メールアドレス] など、組織の共有アドレスへの参照は、インストール中に現在のユーザにリセットされます。
- インストールまたはアップグレードされたパッケージで新しく作成したすべてのワークフロールールは、インストール時に、アップロードされたパッケージと同じ有効化状況になります。