« PODとログイン後のURL | メイン | Apexのトランザクション制御 »

2010年10月25日 (月)

ApexのDMLステートメントと失敗時の挙動

ApexのDMLステートメントには、スタンドアローン形式とメソッド形式があり、いずれかのレコードが失敗した時の動作に違いがあります

○スタンドアローン形式

・記述例:
insert obj;

・いずれかのレコードが失敗した場合の動作:
全てのレコードがロールバックされる。

○メソッド形式

・記述例:
Database.insert(obj, option);

・いずれかのレコードが失敗した場合の動作:
オプションが未指定またはtrueの場合、全てのレコードがロールバックされる。
オプションがfalseの場合、レコードは個別に成功 or 失敗となる。
失敗したレコードは無視され、処理が最後まで実行される

通常はスタンドアローン形式を使用し、バッチ処理など、個別レコードで失敗しても処理を続行したいときに、メソッド形式を使用すると良いでしょう。

一つ注意しなければいけないのは、いずれの形式であっても、 処理の成功/失敗によらず、コミットはされないということです。Apexが異常終了した際には、どちらの形式を使用していても、全てのレコードがロールバックされます。

コメント

コメントを投稿

コメントは記事の投稿者が承認するまで表示されません。

採用情報

株式会社フレクトでは、事業拡大のため、
・Salesforce/Force.comのアプリケーション開発
・HerokuやAWSなどのクラウドプラットフォーム上
でのWebアプリケーション開発
エンジニア、マネージャーを募集中です。

未経験でも、これからクラウドをやってみたい方、
是非ご応募下さい。

フレクト採用ページへ

会社紹介

  • 株式会社フレクトは、
      ・認定コンサルタント
      ・認定上級デベロッパー
      ・認定デベロッパー
    が在籍している、セールスフォースパートナーです。
    また、heroku partnersにも登録されています。
    herokuパートナー
    株式会社フレクト
    Salesforce/Force.com
    導入支援サービス
    弊社の認定プロフェッショナルが支援致します。
    ・Visualforce/Apexによるアプリ開発
    ・Salesforceと連携するWebアプリ開発
    も承っております。
    セールスフォースご検討の際は、
    お気軽にお問合せください。

Twitter

リファレンス

■Developer's Guide(リファレンス)
・Apex  HTML | PDF | 日本語PDF | ガバナ制限
・Visualforce  HTML | PDF
・Web Services API  HTML | PDF | 日本語PDF
・Bulk API  HTML | PDF
・REST API  HTML | PDF | 日本語PDF
・Metadata API  HTML | PDF
・Migration Tool  HTML | PDF
・AJAX Toolkit  HTML | PDF
・Data Loader PDF | 日本語PDF

■早見表 (日本語)
数式
Apex
Visualforce
Web Services API
Chatter