数式項目とは
項目のデータ型の1種で、複雑な計算や他項目の文字列の連結、他項目の値に応じた値を表示するなど、設定次第で様々な値を表示することができる項目です。
数式内では、直接数値や文字列を設定したり、他の項目の値を参照することができます。
また、様々な便利な関数が用意されており、高度な数式を組むことが可能です。
よく使われる関数
数式項目には多くの関数が用意されていますが、筆者がシステム開発をしていた際に比較的よく使った関数を紹介します。
条件分岐・論理演算
AND(logical1,logical2,…)
すべての引数が真かどうかを確認し、すべての引数が真の場合には TRUE を返します
OR(logical1,logical2,…)
いずれかの引数が真かどうかを確認し、TRUE または FALSE を返します。すべての引数が偽の場合にのみ FALSE を返します
CASE(expression, value1, result1, value2, result2,…,else_result)
式を一連の値に照らして確認します。式がいずれの値とも等しい場合には、対応する結果が返されます。いずれかの値と等しくない場合には、別の結果が返されます。
IF (logical_test, value_if_true, value_if_false)
条件が真かどうかを確認し、TRUE の場合と FALSE の場合とで異なる値を返します。
NOT(logical)
FALSE から TRUE に、または TRUE から FALSE に変更します
文字変換・数値変換系
CASESAFEID(id)
15 文字の ID を 大文字と小文字を区別しない 18 文字の ID に変換します
CEILING(number)
数値を最も近い整数 (負の場合は 0 から遠い方) に切り上げます。
MCEILING(number)
負の場合、数値を切り上げて最も近い整数 (0 に近い方) に丸めます
FLOOR(number)
数値を切り捨てて、0 にもっとも近い整数に丸めます
ROUND(number,num_digits)
数値を指定した桁数に丸めます
ABS(number)
数値の絶対値、つまり記号のない数値を返します
LEFT(text, num_chars)
テキスト文字列の開始からの指定文字数の文字を返します
LOWER(text)
値に含まれるすべての文字を小文字に変換します
UPPER(text)
値に含まれるすべての文字を大文字に変換します
TEXT(value)
標準表示形式を使用して、値をテキストに変換します
VALUE(text)
数値を表すテキスト文字列を数値に変換します
文字チェック・数値チェック
CONTAINS(text, compare_text)
テキストに指定した文字が含まれているかどうかを確認し、含まれている場合は TRUE を返します。指定文字が含まれていない場合は FALSE を返します
BEGINS(text, compare_text)
テキストが指定した文字で始まるかどうかを確認し、始まっている場合は TRUE を返します。指定文字で始まっていない場合は FALSE を返します
LEN(text)
テキスト文字列の文字数の文字を返します
MAX(number,number,…)
すべての引数の最大値を返します
MIN(number,number,…)
すべての引数の最小値を返します
空白チェック系関数
ISBLANK(expression)
式が空白かどうかを確認し、TRUE または FALSE を返します
ISNULL(expression)
式が null かどうかを確認し、TRUE または FALSE を返します
TRIM(text)
単語間のスペース 1 つを除き、テキスト文字列からすべてのスペースを削除します
日時関数
NOW()
現在の時刻を返します
DATE(year,month,day)
年、月、および日から日付を作成します
DATEVALUE(expression)
日時またはテキスト表示から日付を作成します
数式項目の作成手順
今回は下記3つの数式項目を作成します。
数式項目1⃣:数量と価格から、合計金額を計算する数式項目
数式項目2⃣:ある項目に特定の文字列が含まれているか否かで表示内容を変更する数式項目
数式項目3⃣:主従関係(参照関係)で参照しているレコードの任意の項目値を表示する項目
数式項目1⃣の作成
- オブジェクトマネージャーから、数式項目を作成したいオブジェクトのページへ移動する

- 「項目とリレーション」を選択し、「新規」を押下する

- 「数式」を選択し、「次へ」を押下する

- 名称等を入力(①)し、戻り値のデータ型を選択(②)して「次へ」を押下(③)する
※数式項目1⃣の作成のため、②戻り値のデータ型は「通貨」を選択する
- ここから数式を入力していく
※①では、「簡単な数式」と「高度な数式」を選択できる。
簡単な数式は使用できる項目や関数が少ないだけなので、高度な数式を選択しておく。
※②では、項目を選択し、クリックで数式に挿入できる。
※③では、四則演算や文字連結の演算子を選択し、クリックで数式に挿入できる。
※④では、論理演算や条件分岐、文字変換などの関数を、クリックで数式に挿入できる。
※⑤では、作成している数式が表示される。
②~④を使用せず、ここに直接数式を記載することも可能です。
※「空白項目の処理」は、参照している通貨・数値・パーセントなどの数字で表す項目が空欄の場合に、空白として処理するか0として処理するかを選択できる
- 項目の挿入でカスタム項目「数量」を挿入する

- 演算子の挿入で「乗算」を挿入する

- 手順6同様に、カスタム項目「価格」を挿入する

- 数式を作成したら「構文を確認」を押下し、空白項目の処理を設定して「次へ」を押下する
※「構文を確認」を押下してエラーが表示される場合は、数式に誤りがあるため確認する
※下図の青点線で囲ってある(☆)をクリックすると、入力エリアの大きさを調節できる
※手順6~手順8を飛ばして、数式に「amount__c * price__c」を直接入力してもOK
※本項目は合計金額の項目のため、②は「0として処理」を選択する
- 項目レベルセキュリティやレイアウト追加は、変更せず「次へ」「保存」を押下する


- 数式項目「合計金額」が作成されたことを確認

数式項目2⃣の作成
- 数式項目1⃣同様、「項目とリレーション」から数式項目作成を進めていく
- 戻り値のデータ型は「テキスト」を選択し、「次へ」を押下する

- 数式を作成して(①)、「空白として処理」を選択(②)し、「次へ」を押下(③)する
※最終的に数式項目2⃣の数式は「IF( CONTAINS( text__c , “テスト”),”〇”,”×”)」となる
- 以降は数式項目1⃣の手順10同様に進め、項目を保存する

数式項目3⃣
- 数式項目1⃣同様、「項目とリレーション」から数式項目作成を進めていく
- 戻り値のデータ型は「テキスト」を選択し、「次へ」を押下する

- 数式を作成して(①)、「空白として処理」を選択(②)し、「次へ」を押下(③)する
※最終的に数式項目2⃣の数式は「test_object__r.Name」となる
※参照(主従)関係先レコードの値を数式で使用する場合、
「参照関係項目名__r.参照先オブジェクトの項目名」というように表記します。
カスタム項目の末尾は”__c“ですが、参照先を表す場合、
「c」を「r」に変えて記載します。
- 以降は数式項目1⃣の手順10同様に進め、項目を保存する

動作確認
上記で作成した数式項目1⃣~3⃣が、想定通り挙動しているか確認します
- 数式項目を作成したオブジェクトを選択し、「新規」を押下する

- 各項目の値を入力して「保存」を押下する
※数式項目は編集不可のため(他の項目の値によって決まるため)、ページレイアウトに配置していたとしても、新規作成時の入力画面には表示されません。
- 各数式項目が、他の項目の値に応じた値として表示されていることを確認し、「編集」を押下する

- 各数式項目に影響のある項目を変更して「保存」を押下する

- レコードが更新され、数式項目の値も更新されていることを確認

