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

組織キャッシュの値の保存および取得

Cache.Org および Cache.OrgPartition クラスを使用して組織キャッシュの値を管理します。パーティションの値を管理するには、Cache.Org クラスのメソッドを使用します。1 つのパーティションのキャッシュ値を管理する場合は、代わりに Cache.OrgPartition メソッドを使用します。

Cache.Org のメソッド

組織キャッシュに値を保存するには、Cache.Org.put() メソッドをコールして、キーと値を指定します。キー名は namespace.partition.key 形式にします。たとえば、名前空間が ns1、パーティションが partition1、キーが orderDate の場合、完全修飾されたキー名は ns1.partition1.orderDate になります。

次の例では、DateTime キャッシュ値をキー orderDate で保存します。次に、このスニペットは orderDate キーがキャッシュ内にあるかどうかをチェックし、ある場合はキャッシュからその値を取得します。

1// Add a value to the cache
2DateTime dt = DateTime.parse('06/16/2015 11:46 AM');
3Cache.Org.put('ns1.partition1.orderDate', dt);
4if (Cache.Org.contains('ns1.partition1.orderDate')) {
5    DateTime cachedDt = (DateTime)Cache.Org.get('ns1.partition1.orderDate');
6}

呼び出し元クラスのデフォルトパーティションと名前空間を参照するには、namespace.partition プレフィックスを省略して、キー名を指定します。

1Cache.Org.put('orderDate', dt);
2if (Cache.Org.contains('orderDate')) {
3    DateTime cachedDt = (DateTime)Cache.Org.get('orderDate');
4}

local プレフィックスは、コードが実行されている現在の組織の名前空間を示します。local プレフィックスは、組織に名前空間が定義されているかどうかに関係なく、コードが実行されている現在の組織の名前空間を示します。組織に ns1 という名前空間が定義されている場合、次の 2 つのステートメントは同等です。

1Cache.Org.put('local.myPartition.orderDate', dt);
2Cache.Org.put('ns1.myPartition.orderDate', dt);

インストール済み管理パッケージの local プレフィックスは、パッケージの名前空間ではなく、登録者組織の名前空間を参照します。キャッシュの put コールは、呼び出し元のクラスが所有していないパーティションでは許可されません。

メモ

put() メソッドには複数のバージョン (オーバーロード) があり、各バージョンが取るパラメータは異なります。たとえば、キャッシュ値を他の名前空間で上書きできないことを指定するには、このメソッドの最後のパラメータを true に設定します。次の例では、キャッシュ値の有効期間 (3,600 秒 = 1 時間) も設定し、任意の名前空間で値を使用できるようにしています。

1// Add a value to the cache with options
2Cache.Org.put('ns1.partition1.totalSum', '500', 3600, Cache.Visibility.ALL, true);

組織キャッシュからキャッシュ値を取得するには、Cache.Org.get() メソッドをコールします。Cache.Org.get() はオブジェクトを返すため、戻り値を特定の型にキャストすることをお勧めします。

1// Get a cached value
2Object obj = Cache.Org.get('ns1.partition1.orderDate');
3// Cast return value to a specific data type
4DateTime dt2 = (DateTime)obj;

Cache.OrgPartition のメソッド

1 つのパーティションのキャッシュ値を管理する場合は、代わりに Cache.OrgPartition メソッドを使用します。パーティションオブジェクトが取得できたら、キャッシュ値を追加および取得するプロセスは、Cache.Org メソッドを使用する場合と同様です。Cache.OrgPartition メソッドは、名前空間およびパーティションのプレフィックスなしでキー名のみを指定するため、より簡単に使用できます。

最初に組織のパーティションを取得し、目的のパーティションを指定します。パーティション名には、名前空間プレフィックス namespace.partition が含まれます。取得したパーティションオブジェクトのキャッシュ値を追加および取得することで、そのパーティションのキャッシュ値を管理できます。次の例は、myNs 名前空間の myPartition という名前のパーティションを取得します。キャッシュにキー BookTitle という値が含まれている場合、このキャッシュ値が取得されます。新しい値がキー orderDate と今日の日付で追加されます。

1// Get partition
2Cache.OrgPartition orgPart = Cache.Org.getPartition('myNs.myPartition');
3// Retrieve cache value from the partition
4if (orgPart.contains('BookTitle')) {
5    String cachedTitle = (String)orgPart.get('BookTitle');
6}
7// Add cache value to the partition
8orgPart.put('OrderDate', Date.today());

次の例では、パーティションインスタンスを変数に割り当てることなく、1 つの式でパーティションに対する get メソッドをコールします。

1// Or use dot notation to call partition methods
2String cachedAuthor = (String)Cache.Org.getPartition('myNs.myPartition').get('BookAuthor');