計算式フィールド
アプリケーション・コンポーザを使用すると、標準オブジェクトとカスタム・オブジェクトの両方にフィールドを追加することで、アプリケーションのオブジェクト・モデルを拡張できます。 そのようなフィールドの1つは、フィールドの定義に含まれるGroovyベースの式を使用してランタイム・アプリケーションで計算される式フィールドです。
式フィールドのプロパティ
表示ラベルやフィールド名など、フィールド・プロパティの共通セットの値を指定して、式フィールドを作成します。 また、計算式フィールド・タイプに固有のこのフィールドのプロパティも設定します。
次の表に、複数のフィールド・タイプに共通のプロパティを示します:
フィールドのプロパティ |
フィールド・プロパティ・リージョン |
---|---|
ラベル |
外観 |
ヘルプ・テキスト |
外観 |
表示幅 |
外観 ノート:
使用しないでください。 フィールドの表示幅は、フィールド・タイプと解像度に基づいて動的に計算されます。 |
名前 |
名前 |
説明 |
名前 |
次の表に、式フィールドなど、特定のフィールド・タイプに固有のプロパティを示します:
フィールドのプロパティ |
フィールド・プロパティ・リージョン |
---|---|
Formulaタイプ テキスト、数値、日付など、フィールドのデータ型を指定します。 フィールドの作成時にのみタイプを指定できます。 |
フィールド値タイプ |
表示タイプ 式タイプが「テキスト」の場合は、この式フィールドをランタイム・アプリケーションで単純なテキスト・ボックスとしてレンダリングするか、テキストを折り返す複数の行を許可するかを指定します。 |
外観 |
依存先 |
制約 |
式ビルダーと選択内容依存リストの使用
「依存先」選択リストを使用して、別のフィールドの値が変更された場合に、(記述した式を使用して)フィールドを自動的に再計算するかどうかを指定します。

「依存先」選択リストには、同じオブジェクトに属するフィールドのリストが含まれます。 別のオブジェクトの別のフィールドの値が変わった場合に、この計算式フィールドを自動的に再計算する場合は、サーバー・スクリプトを作成する必要があります。
式ビルダーを使用して、実行時にフィールドの値を計算する式を記述します。
このリストは、式ビルダーを使用するタイミングの例をいくつか示します:
-
式で従業員の年間賞与金額の値が計算される場合は、従業員の給与が変更された場合に、その金額が自動的に再計算されるように式を設定します。
-
商談に使用する正しい顧客の電話番号が式によって決定される場合は、商談の顧客アカウントが変更された場合に電話番号が自動的にリセットされるように式を設定します。
算式フィールドは、フィールドの値の導出にのみ使用し、追加のフィールド値の設定には使用しないでください。
追加の算式フィールドの仕様
このフィールド・タイプの追加仕様には、次の詳細が含まれます:
-
データ型は、「式のタイプ」プロパティによって設定されます。
-
算式フィールド・タイプはサブジェクト領域ではサポートされていません。 カスタム・レポートに算式フィールドを追加することはできません。
-
算式フィールドでは検索できません。
-
算式フィールドは計算済属性であり、実行時にのみ存在します。 これは、データベースに表の列として保持されない一時的なタイプの属性です。 したがって、オブジェクトには式フィールドの最大数が存在しません。
-
式フィールドのGroovyスクリプトは、フィールドの値が任意のレイヤーによってリクエストされるたびに評価されます。 したがって、外部webサービスの呼出しなど、プロセス集中型のスクリプトはページのパフォーマンスに影響する可能性があるため、記述しないでください。
-
レンダリングの順序により、フィールドが処理される順序が保証されないため、他のフィールドの値の設定に算式フィールドを使用しないでください。 他のフィールドの値が変更されたときに他のフィールド値を導出するコードを記述する場合は、Groovyスクリプト・リファレンス・ガイドに記載されている「フィールドの変更後」トリガーを使用します。
- 算式フィールド内で単純な計算ロジックを使用します。
- 算式フィールドは導出にのみ使用し、追加のフィールド値は設定しません。
- 計算式フィールドは編集できませんが、カスタム・フィールドを読取り専用として表示するために使用しないでください。
- 式フィールドのGroovy式を記述する場合は、式ロジックで一時属性(動的選択リスト・フィールドの表示ラベルなど)を参照しないでください。
- 式フィールド内で'setAttribute() 'を使用しないでください。 これにより、ページ・レンダリングの様々な時点で式フィールドが繰り返し評価されるため、レコード・ロックの問題が発生する可能性があります。
- 算式フィールド計算にオブジェクトの問合せが含まれている場合は、概要ページ(要約表)およびサブタブにそのような算式フィールドが表示されないようにします。 このタイプの算式フィールドが表の列として公開されている場合、算式が評価され、その問合せが行ごとに起動されます。 これにより、リスト・ページのパフォーマンスに影響します。 式に複雑な問合せが含まれている場合は、リスト・ページではなく、オブジェクト「詳細」ページに式フィールドを表示します。
- 特定のビジネス・ケースで必要ない場合は、RESTコールに算式フィールドを含めないでください。 これを確認するには、「サービス・ペイロードに含める」チェック・ボックスの選択を解除します。
-
算式フィールドを使用してRESTの子収集の値を評価する場合、子のすべての算式フィールドがすべての子レコードについて評価され、パフォーマンスが低下します。
パフォーマンスを向上させるには、式フィールドを使用してSQL問合せの実行などのロジックを実装するのではなく、テキスト・フィールドなどの永続フィールドを使用し、そのフィールドの挿入または更新トリガーにロジックを追加して、そのフィールドに値を設定します。