SalesForce Apex
クラス
開発者コンソール > File > New > Apex Class
トリガー
開発者コンソール > File > New > Apex Trigger
trigger クラス名 on オブジェクト名 (before insert) {
〜
}
トリガーイベント | タイミング |
---|---|
before insert | レコードが作成される前に処理 |
before update | レコードが更新される前に処理 |
before delete | レコードが削除される前に処理 |
after insert | レコードが作成された後に処理 |
after update | レコードが更新された後に処理 |
after delete | レコードが削除された後に処理 |
after undelete | レコードが復元された後に処理 |
データ型変換
Integer int = Integer.valueOf(〜);
String string = Integer.valueOf(〜);
DB操作
SELECT
「変数の埋め込み」参照
取得判定
List<Object> objects = [ 〜 ]
objects.istEmpty() {
〜
}
集計関数利用
SOQLでは集計関数の結果をそのままListで取得できない
List<AggregateResult> aggregateIds = [
SELECT MIN(Id) minId
FROM Object
GROUP BY colmun
];
オブジェクト変換
List<Id> ids = new List<Id>();
for (AggregateResult id : aggregateIds) {
集計結果を取得、変換
ids.add( (Id) id.get(‘minId’) );
}
UPDATE
object.column = 〜;
update object;
INSERT
Object object = new Object(Name=’aaa’);
insert object;
変数の埋め込み
String value = ‘aaa’;
List<String> params = new List<String>{‘aaa’, ‘bbb’};
List<Object> object = [
SELECT id, Name FROM Object
WHERE
id = ‘zzz’
AND columnA = :value
AND columnB IN :params
];
LIMIT 1指定の場合
Object object = [ SELECT 〜 LIMIT 1 ]
デバッグ
Debug > Open Executte Anonymous Window(CTRL+E)
※Anonymous Window
クラスの実行コード
例
テストクラス test = new テストクラス();
test.メソッド();
「execute」押下
※開発者コンソール
Logsタブ選択
「Debug Only」チェック
行選択
ログを確認
テスト
アノテーション
アノテーション | 機能 | 備考 |
---|---|---|
@isTest | テストクラスのClass、メソッドに付与する必要がある | |
@testSetUp | テストクラス内の全てのメソッドで参照可能 |
アサーション
Assert.areEqual(‘Red’, value);
Assert.isTrue(value);