セーブポイントが見つからない

【Salesforce】Apexの予約キーワードについて

こんにちは、にいるです。

今回は、Apexの予約キーワードについて、紹介したいと思います。
ふと、開発していて変数に「now」を使っていたんですが、コンパイルが通ったので、記事にしておきたいなと!

【ヘルプ】Apexの基本概念について
【ヘルプ】予約キーワード

1.予約キーワードとは

予約キーワードとは、Salesforceがシステム上でユーザが任意に使用できないように設定しているキーワードです。
開発でしか予約キーワードという言葉は見たことないです。

例えば、変数宣言をするときに、変数名は自由に定義できますよね。

ただ、なんでもかんでも自由にしてしまうと、書いたApexコードが想定外の動きをすることになるかもしれません。

上記の場合、newはnew時に使用しますし、ifはif文で使いますし、insertもDMLで使用します。
これらが正しく動作するようにキーワードが被ることを事前に防ぐため、Salesforceではキーワードを予め、変数や定数には使用できないようにしています。

それを予約キーワードと呼んでいます。

2.予約語の変数宣言

では、実際に予約語の変数宣言をしてみましょう。

 

 

どれもコンパイルが通っていないですね。

このようにApexを動かすプログラムで制御が掛けられているので、変数宣言はできません。

3.予約キーワード一覧

現時点の予約キーワードです。
2020年6月時点では、132個あるようですね。(下のテーブル作成するの大変でした笑)

# 予約キーワード # 予約キーワード # 予約キーワード
1 abstract 45 activate 89 and
2 any 46 array 90 as
3 asc 47 autonomous 91 begin
4 bigdecimal 48 blob 92 break
5 bulk 49 by 93 byte
6 case 50 cast 94 catch
7 char 51 class 95 collect
8 commit 52 const 96 continue
9 convertcurrency 53 decimal 97 default
10 delete 54 desc 98 do
11 else 55 end 99 enum
12 exit 56 export 100 exception
13 extends 57 FALSE 101 final
14 finally 58 float 102 for
15 from 59 future 103 global
16 goto 60 group 104 having
17 hint 61 if 105 implements
18 import 62 in 106 inner
19 insert 63 instanceof 107 interface
20 into 64 int 108 join
21 last_90_days 65 last_month 109 last_n_days
22 last_week 66 like 110 limit
23 list 67 Long 111 loop
24 map 68 merge 112 new
25 next_90_days 69 next_month 113 next_n_days
26 next_week 70 not 114 null
27 nulls 71 number 115 object
28 of 72 on 116 or
29 outer 73 override 117 package
30 parallel 74 pragma 118 private
31 protected 75 public 119 retrieve
32 return 76 returning 120 rollback
33 savepoint 77 search 121 select
34 set 78 short 122 sort
35 stat 79 static 123 super
36 switch 80 synchronized 124 system
37 testmethod 81 then 125 this
38 this_month 82 this_week 126 throw
39 today 83 tolabel 127 tomorrow
40 transaction 84 trigger 128 TRUE
41 try 85 type 129 undelete
42 update 86 upsert 130 using
43 virtual 87 webservice 131 when
44 where 88 while 132 yesterday

4.まとめ

いかがでしたでしょうか。

Salesforceでは決められた予約キーワードを変数や定数に使用することはできません。

知っていれば問題ないですが、もしコンパイルが正常に通らない場合は予約キーワードの使用を疑ってみるのもありかもしれません。
ただし、その前に予約キーワードに近いキーワードの使用を避けた方が無難かもしれませんね。

皆さんもぜひ色々と試してみてください。
他にも色々と標準機能やSalesforce機能について紹介していますので、ご覧ください。

ではでは!