Skip to main content

Apex でコードを作成する

学習の目的

この単元を完了すると、次のことができるようになります。

  • Apex を使用して基本的なコードアプリケーションを作成する。
メモ

メモ

日本語で受講されている方へ
Challenge は日本語の Trailhead Playground で開始し、かっこ内の翻訳を参照しながら進めていってください。Challenge での評価は英語データを対象に行われるため、英語の値のみをコピーして貼り付けるようにしてください。日本語の組織で Challenge が不合格だった場合は、(1) この手順に従って [Locale (地域)] を [United States (米国)] に切り替え、(2) [Language (言語)] を [English (英語)] に切り替えてから、(3) [Check Challenge (Challenge を確認)] ボタンをクリックしてみることをお勧めします。

翻訳版 Trailhead を活用する方法の詳細は、自分の言語の Trailhead バッジを参照してください。

基本的な Apex アプリケーションを作成する

用語を理解したところで、Apex を使用してシンプルなアプリケーションを開発してみましょう。この例では、3 つのことを行います。

  1. 条件付きステートメントを作成する。
  2. ループを作成する。
  3. トリガーの構文を構成する。

Apex でできることは、ほかにもたくさんありますが、条件付きステートメント、ループ、トリガーはほぼすべてのプロジェクトで使用する基本的なビルディングブロックです。この手順を理解したら、「システム管理者のための Apex の基本」「Apex を使用してビジネスプロセスを自動化する」のような、より複雑なバッジに挑戦することもできます。

条件付きステートメント

条件付きステートメントは、その名のとおり、定義した条件が true かどうかに応じて特定の処理を実行するコードです。どのような場合に特定のコードを実行するかをプログラムに指示するフローチャートのようなものと考えることができます。

条件付きステートメントは、if ステートメントと else ステートメントの両方の形式にできます。

条件の結果が false の場合に残りのコードを実行する、条件付きステートメントのロジックの流れを示すフローチャート式の図。条件の結果が false の場合に特定の代替コードブロックを実行する、条件付きステートメントのロジックの流れを示すフローチャート式の図。

すべての条件付きステートメントには if 条件が必要ですが、else 条件は省略可能です。else ステートメントは、常に最も近い if ステートメントに関連付けられます。

条件付きステートメントを記述するには、以下のような構文を使用します。

if ([Boolean_condition]){
    // Statement 1
}
else {
    // Statement 2
}

条件付きステートメントでは、定義する変数に基づいてプログラムがどのようなアクションを実行するかを、正確に定義できます。たとえば、if ステートメントを使用すると、取引先責任者の会社の従業員数が 10,000 人以上である場合にのみ特定のコードを実行することができます。else ステートメントを追加すれば、それより規模が小さい会社の取引先責任者に対して別のコードブロックを実行することもできます。複数の条件付きステートメントを連鎖させることで、単純な整数からより複雑な Boolean 変数まで、幅広い変数に対応して処理を実行するプログラムを作成できます。

ループステートメント

条件付きステートメントと同様に、ループステートメントは設定したコードブロックを繰り返し実行し、条件が満たされるまで、または条件が満たされている間、処理を続けます。たとえば、特定の値 (ロイヤルティステータスなど) が true である間、自動的に割引コードを適用するループステートメントを作成することができます。

ループステートメントを説明するフローチャート式の図。このループでは、false 条件でループが終了し、true 条件でループが再開します。

ループステートメントは、条件が頻繁に変わる場合や、特定のコードが実行されるタイミングを効率的に制御する必要がある場合など、より複雑なコーディングで役立ちます。

ループを記述するには、いくつかの異なる構文を使用できます。最も一般的な while ループは、条件が満たされている間、定義したコードブロックを実行します。do-while 構文の使用と非常に似ていますが、コードが少なくとも 1 回実行されることを保証します。最後に、for ステートメントを使用すると、条件が満たされた場合にコードを継続的ではなく、特定の回数だけ実行できます。以下に、これらのステートメントのコーディング構文での記述例を示します。

while

while (condition) {
    code_block
}

do-while


do {
   code_block
} while (condition);

for

for (init_stmt; exit_condition; increment_stmt) {
    code_block
}

トリガー構文

条件付きステートメントと同様に、トリガーを使用すると、特定の事象が発生したときにコードを実行できます。ただし、トリガーの場合、「条件」は Salesforce レコードの変更です。たとえば、レコードが作成されたとき、更新されたとき、変換されたとき、または削除されたときにコードを実行することができます。

トリガーステートメントは、関連レコードを自動的に更新したい場合や、レコードがさらに変更されることを制限または許可したい場合に便利です。トリガーを記述するには、trigger キーワード、使用するトリガーの名前、トリガーに関連付ける Salesforce オブジェクト、トリガーを有効化するイベントが必要です。以下は、コードブロックでの記述例です。

trigger TriggerName on ObjectName (trigger_events) {
                     code_block
                     }

実際に試してみる

Apex でのコーディングを試してみる準備はできていますか? 実際のコードで習得度を確認しましょう! Apex にアクセスするには、Code Builder を使用できます。この演習では、学んだ知識を応用し、開発者コンソールで簡単なループステートメントを記述しますが、Code Builder を使用すると、より迅速にコードを記述でき、実際の開発課題に取り組む際にチームで協力しやすくなります。

この例では、10 からカウントダウンするループステートメントを記述します。

  1. Trailhead Playground で [Setup (設定)] [アイコン] をクリックします。
  2. [Developer Console (開発者コンソール)] をクリックして、開発者環境を起動します。
  3. [Debug (デバッグ)] | [Open Execute Anonymous Window (実行匿名ウィンドウを開く)] をクリックして、[Enter Apex Code (Apex コードを入力)] ウィンドウを開きます。
  4. [Enter Apex Code (Apex コードを入力)] ウィンドウで、以下のコード行を使用して整数の簡単なカウントを作成します。この整数カウントは、どこから始めるか (この場合は 10) を指定します。もちろん、この数は任意の整数にできます。重要なのは、コードが操作 (減算など) を実行するための開始番号が指定されていることです。
Integer count = 10;
  1. 次に、ループコードで実行する操作を定義します。10 からカウントダウンするには、デバッグログに 10 から順に値を書き込むようにします。「do」操作で、コードにこのアクションを実行することを指示し、「count--」で、そのアクションをカウントダウンと定義します。「count--」部分を別のコマンドに置き換えることで、整数に対してさまざまな操作を使用できます。
do {
    System.debug('Count: ' + count);
    count--;
}
  1. また、「while」条件を使用して、ループを終了する条件も定義する必要があります。各整数がデバッグログに記録されたらループの実行を停止するには、カウントされる整数が 0 より大きい限りループが実行されるようにコードを記述します。
while (count > 0);
  1. [Execute (実行)] をクリックして、コードを実行します。コードブロックの強調表示された部分だけを実行することもできますが、今回は全体を実行します。コードが正しく記述されていれば、このブロックは 10 から 1 までカウントダウンし、各数字をデバッグログに 1 回ずつ記録します。

最終的なコードは、次のようになります。

Integer count = 10;
do {
    System.debug('Count: ' + count);
    count--;
}
while (count > 0);

以上です! Apex コーディングはさらに複雑になりますが、ループステートメントのような基本操作は、機能的なアプリケーションを作成するための基盤です。Apex の概要と特徴を理解し、開発者コンソールでコードを記述する方法を確認しました。これで、最初のコーディングプロジェクトに挑戦する準備が整いました! その前に、Challenge で復習しましょう。

リソース

Salesforce ヘルプで Trailhead のフィードバックを共有してください。

Trailhead についての感想をお聞かせください。[Salesforce ヘルプ] サイトから新しいフィードバックフォームにいつでもアクセスできるようになりました。

詳細はこちら フィードバックの共有に進む