Future Annotationによる非同期処理についてです。Apexクラスで非同期処理を実行したい場合はメソッドの上で「@future」を宣言します。
Future Annotation
http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_classes_annotation_future.htm
サンプルソースです。
上記サンプルでこんな画面が表示されます。
ボタンをクリックすると非同期処理が実行されます。
実行時のログはこんな感じです。
取引先の登録も行われます。
注意
- 非同期処理のテストクラスを作成するときはTest.stopTest();の後に System.assertEqualsで検証します。Test.stopTest();の後なら非同期処理完了後の正常な結果を取得して検証できます。
- 一度のトランザクションで実行できるFuture Annotationは10回までとなります。
- 引数で渡すパラメータは、プリミティブデータ型、プリミティブデータ型の配列、またはプリミティブデータ型のコレクションでなければなりません。
- 引数にsObjects型を指定することはできません。
- コールアウト処理を行う場合は@future (callout=true)を付ける必要があります。