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

パッケージバージョン

パッケージバージョンは、パッケージでアップロードされる一連のコンポーネントを特定する番号です。バージョン番号の形式は majorNumber.minorNumber.patchNumber (例: 2.1.3) です。メジャー番号とマイナー番号は、メジャーリリース時に指定した値に増えます。patchNumber は、パッチリリースにのみ生成および更新されます。

未管理パッケージはアップグレードできないため、各パッケージバージョンは単に配布用コンポーネントのセットです。パッケージバージョンは管理パッケージでより大きな意味を持ちます。パッケージは異なるバージョンで異なる動作をします。公開者は、パッケージバージョンを使用して、パッケージを使用する既存のインテグレーションに影響を与えることなく後続のパッケージバージョンをリリースすることにより、管理パッケージのコンポーネントを強化することができます。

既存の登録ユーザが新しいパッケージをインストールした場合、パッケージ内の各コンポーネントのインスタンスは 1 つだけですが、コンポーネントは古いバージョンをエミュレートできます。たとえば、登録ユーザが Apex クラスを含む管理パッケージを使用すると想定します。公開者が Apex クラスのメソッドを廃止し、新しいパッケージバージョンをリリースする場合でも、新しいバージョンをインストールした後、登録者は Apex クラスのインスタンスを 1 つのみ使用できます。ただし、この Apex クラスは、古いバージョンの廃止されたメソッドを参照するコードの以前のバージョンをエミュレートできます。

管理パッケージで Apex を開発する場合、次の点に注意が必要です。

  • 管理パッケージの一部である Apex クラスまたはトリガに含まれるコードは、自動的に隠され、インストール先の組織では見ることができません。唯一の例外には、グローバルとして宣言されているメソッドがあります。それらのメソッド署名はインストールを行う組織でも参照できます。
  • 管理パッケージは、一意の名前空間を受け取ります。この名前空間は、インストール先の組織で名前の重複を防ぐために、クラス名、メソッド、変数などの先頭に自動的に追加されます。
  • 1 つのトランザクションでは、10 個の一意の名前空間のみを参照できます。たとえば、オブジェクトを更新するときに、管理パッケージでクラスを実行するオブジェクトがあるとします。その後、クラスは 2 番目のオブジェクトを更新します。つまり、他のパッケージの他のクラスを実行します。最初に 2 番目のパッケージに直接アクセスしない場合でも、同じトランザクション内で発生するため、1 つのトランザクションでアクセスする名前空間の数に含まれます。
  • パッケージ開発者は、deprecated アノテーションを使用して、今後のリリースの管理パッケージでは参照できないメソッド、クラス、例外、列挙、インターフェース、変数を指定します。要件の変化にともなって、管理パッケージのコードをリファクタリングする場合に役立ちます。
  • システムメソッド runAs を使用して、パッケージバージョンコンテキストを異なるパッケージバージョンに変更するテストメソッドを記述できます。
  • インターフェースまたはクラスが「管理-リリース済み」パッケージバージョンでアップロードされた後は、global インターフェースにメソッドを追加することも、抽象メソッドをクラスに追加することもできません。「管理-リリース済み」パッケージのクラスが仮想の場合、そこに追加できるメソッドも仮想であり、実装があることが必要です。
  • 明示的に名前空間を参照する未管理パッケージに含まれる Apex コードは、アップロードできません。