Memos About Salesforce

Salesforceにハマってたこと!

SFDC クエリ使わず データ更新 制限考慮実装

SFDCの開発では、

データを更新したい場合に

大体、対象レコードのIDを使い、クエリするでしょう

そこで、クエリの消費になり、ガバナー制限のカウントにも

なるわけ

今回、クエリを使用しないまま、データを更新方法を

共有したいと思います。

欲しけりゃくれてやる・・・。

探せ!

この世の全てをそこに置いてきた〜笑

目次

クエリ不要、データ更新

従来のサンプルコード
    String targerRcdId = '対象レコードID';
    // クエリ 1カウント
    Account acc = [Select Id, Name, AnnualRevenue From Account Where Id = :targerRcdId];
    acc.AnnualRevenue = 2000;
    update acc;
クエリ消費しないサンプルコード
    String targerRcdId = '対象レコードID';
    Account acc = new Account();
    acc.Id = targerRcdId;
    acc.AnnualRevenue = 2000;
    update acc;
説明

上記のように新規オブジェクトのインスタンス

そこで、更新対象IDをインスタンスした変数のIDに設定して

さらに更新したい項目に値を設定し、

updateをかければ、更新可能、

対したことではない、バッチの場合に

対象IDを受け取って、使えるではないかと思います。


注意点:
このやり方はafterトリガでは使用できません。
当たり前ですが、一回IDでレコードをクエリしない、
その間にレコードが更新される可能性があり、
仕様上では、基本許されません!