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);

API

前の記事

SalesForce
FastAPI

次の記事

FastAPI 構成