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

Apex コードのバージョン設定

パッケージ開発者は条件付きロジックを Apex クラスとトリガで使用し、異なるバージョンに異なる動作をさせることができます。こうすることで、パッケージ開発者は、コード開発を続けながら以前のパッケージバージョンのクラスとトリガでの既存の動作をサポートし続けることができます。

登録者が、複数のバージョンのパッケージをインストールし、パッケージ内の Apex クラスまたはトリガを参照するコードを記述する場合、参照しているバージョンを指定する必要があります。パッケージ内で参照している Apex コード内で、参照を作成する Apex コードのコールのバージョン設定に基づき、異なるコードパスを条件付きで実行できます。コール元のコードのパッケージバージョン設定は、パッケージコード内で System.requestVersion メソッドをコールすることによって判断できます。こうすることで、パッケージ開発者は、要求コンテキストを決定し、さまざまなバージョンのパッケージに異なる動作を指定することができます。

次の例は、異なるパッケージバージョンのトリガのさまざまな動作を示しています。

1swfobject.registerObject("clippy.codeblock-0", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17trigger oppValidation on Opportunity (before insert, before update) {
18
19    for (Opportunity o : Trigger.new){
20    
21        // Add a new validation to the package
22        // Applies to versions of the managed package greater than 1.0
23        if (System.requestVersion().compareTo(new Version(1,0)) > 0) {
24            if (o.Probability >= 50 && o.Description == null) {
25                o.addError('All deals over 50% require a description');
26            }
27        }
28
29        // Validation applies to all versions of the managed package.
30        if (o.IsWon == true && o.LeadSource == null) {
31            o.addError('A lead source must be provided for all Closed Won deals');
32        }
33    }
34}

Apex クラスのさまざまなバージョンを比較するには、クラスの詳細を表示しているときに [Class Definition (クラス定義)] タブをクリックします。

System.requestVersion メソッドについての詳細は、Force.com Apex コード���発者ガイド』を参照してください。