Salesforce 認定 Platform デベロッパー 無料問題 2 / 10 ・ 分野1: デベロッパーの基本
ある数式項目は式が 1,500 文字ほどで、文字数の上限には届いていない。それでも、コンパイルサイズの上限を超えるというエラーで保存できない。原因の説明として、ヘルプの数式項目の制限に合うものはどれか。
- コンパイルサイズは同じオブジェクトの全数式の合計で数えるので、ほかの数式が多いと超える
- コンパイルサイズは TEXT や DATEVALUE を使うと小さくなるので、これらを使わない式ほど超える
- コンパイルサイズは式の中の多バイト文字の数で決まるので、日本語の文字列が多いと超える
- コンパイルサイズは参照する項目や数式まで含めて数えるので、参照先の数式が大きいと超える
正解と解説を見る
正解: D
正解の理由
ヘルプの「Formula Field Limits and Restrictions」は、数式項目はコンパイル後に 15,000 バイトを超えられないとし、コンパイルサイズは数式が参照するすべての項目・値・数式を含めた大きさだと書いている。コンパイルサイズと文字数の上限の間に直接の相関は無い。そのため式そのものが短くても、大きな数式項目を参照していれば、コンパイルサイズの上限を超えることがある。
違う選択肢
「コンパイルサイズは式の中の多バイト文字の数で決まるので、日本語の文字列が多いと超える」… 多バイト文字で文字数とバイト数がずれるのは保存サイズの話である。コンパイルサイズは、参照する項目・値・数式を含めた大きさで数える。
「コンパイルサイズは同じオブジェクトの全数式の合計で数えるので、ほかの数式が多いと超える」… コンパイルサイズは1つの数式について、その数式が参照するものを含めて数える。同じオブジェクトのほかの数式の合計で数えるのではない。
「コンパイルサイズは TEXT や DATEVALUE を使うと小さくなるので、これらを使わない式ほど超える」… ヘルプは、TEXT・DATEVALUE・DATETIMEVALUE・DATE などの関数はコンパイルサイズを大きく増やすと書いている。使うほど小さくなるのではない。
押さえどころ
TEXT・DATEVALUE・DATETIMEVALUE・DATE などの関数はコンパイルサイズを大きく増やす。多バイト文字は保存サイズ(こちらも 15,000 バイト)に効く。文字数・保存サイズ・コンパイルサイズは別々の上限で、エラーの名前でどれに当たったかを見分ける。