
計算値
フィールド間の関係
計算値は、1つ以上の入力フィールドに基づいた計算フィールドの値を設定することで、フィールド間の関係を明らかにします。 たとえば、オンライン ショッピングカート アプリケーションでは、単価と数量に基づいて、各アイテムの小計を顧客に示した後、注文された全アイテムの合計を計算します。
その後、課税金を算定し、注文合計額に税金を追加して、顧客への最終的な請求額を算出します。 その他、プロモーション割引や買い物ポイントの値も計算できます。 計算は、ユーザーが入力フィールドの値を更新するたびに行われます。 フィールド計算を定義すると、手動の計算が不要になるので、エラーの可能性が減り、プロセスの効率化が図れます。
App Studioでは、関数とカスタム計算の2種類を利用できます。 関数は複数のソースデータの関係にあるアイテムを反復処理しますが、カスタム計算では、シンプルおよびファンシーフィールドのいずれかの組み合わせを参照できます。 計算フィールドを別の計算への入力として使用して、従属計算のネットワークを作成できます。 ユーザーが計算入力として機能するフィールドの値を更新すると、結果として生じる計算により、従属フィールドに追加計算がトリガーされます。
次の問題に答えて、理解度をチェックしましょう。
関数
関数はデータ関係の項目を反復処理し、Decimal 、Currency、Integerのフィールドタイプでサポートされます。 App Studioでは、計算に使用する以下の4つの基本的な関数が提供されています。
- Sum–データ関係で指定されたプロパティのすべてのインスタンスの合計を計算する
- Average–指定されたプロパティのすべてのインスタンスの平均値を計算する
- MAX–指定されたすべてのプロパティ インスタンスの最大値を決定する
- MIN–指定されたすべてのプロパティ インスタンスの最小値を決定する
次の合計
ショッピングカートの合計を計算する必要があるとしましょう。 顧客が注文にアイテムを追加したり、削除したり、数量を更新したりすると、アプリケーションは合計額を更新しなくてはなりません。 Sum関数を使用すれば注文合計フィールドの値を計算できます。
次の平均
あるオンラインショップは、アプリケーション ダッシュボードを構成して顧客の購買パターンを分析し、マネージャーが顧客一人当たりの最大および最小収益を生み出す地域を特定したいと考えています。 地域別にフィルターされた注文リストを作成できます。 次に、Average関数を使用して、平均注文額を特定できます。
最大
顧客が1つ限りのプロモーション割引を注文に適用できるようにする必要があるとしましょう。 顧客は1つ以上のプロモーションコードを送信して、最高額商品の20%割引、指定された額を超える注文の配送料の免除など、複数の割引を適用しようとします。 プロモーション割引複数ソースデータ関係を作成すると、リスト内の各アイテムのプロモーションコードと割引額が識別されます。 次にMAX関数を使用すれば、注文に適用すべき最も価値のあるプロモーション割引を決定できます。
最小
優先顧客に対して、注文時に無料アイテムと指定されたリストから最安値のアイテムを1つ贈呈するプロモーションがあるとしましょう。 MIN関数を使用すれば、注文で最低価格のアイテムを特定し、その金額のクレジットを注文に適用できます。
カスタム計算
カスタム計算を設定すれば、その他シンプルまたはファンシーフィールドのあらゆる値を使用してフィールド値を計算できます。 次の例では、オンライン注文アプリケーションが数量に単価を掛けて各アイテムタイプのコストを計算します。
カスタム計算を構成する場合、ピリオド(".")を使用して名前でフィールドを参照します。 フィールドがデータ関係の一部である場合は、データ関係をプレフィックスとして追加します。 以下の例は、2つのデータ関係フィールド「TeamHats」と「TeamMagnets」の「Cost」フィールドを追加するカスタム計算を示したものです。
カスタム計算では、以下のような一般的な操作をサポートしています。
- 加法
- 減法
- 乗法
- 担当部署
- グルーピング(カッコを使用)
- ブール(値)AND
- ブール(値)OR
たとえば、計算を構成すれば、注文合計額に税率を掛けて注文時の税を計算できます。
.TaxRate * .OrderTotal
Email、Phone、Picklistを除くすべての
フィールドタイプのカスタム計算を定義できます。 テキストベースのフォーマットの場合、コンカチネート(連結)と呼ばれるプロセスを使用して、テキスト文字列を作成する計算を構成できます。 たとえば、ある鑑定会社が、アイテムを送ってくる顧客向けに、収集価値のあるアイテムの見積りを提示するとします。 この会社は、アイテムを表示するページに以下の情報をコメントとして追加したいと考えています。- 鑑定アイテムの名前
- おおよその評価額
- 鑑定人ID
- 鑑定日
フィールド参照と静的テキストの組み合わせを使用して、コメントを作成する計算を定義できます。ここでは静的テキストは引用符(")で囲まれています。
"Appraiser " + .AppraiserID + " appraised " + .ItemName + " at a value of " + .AppraisedAmount + " on " + .AppraisalDate + "."
計算を評価する際に、アプリケーションが各フィールドへの参照を現在のフィールド値に置き換えます。 計算により、次の例のような文字列が作成されます。
鑑定人04795ADが2019年1月9日に銀の大皿に350米ドルの価値があると鑑定しました。
補足: 先の例では、斜体を適用したテキストは参照されるフィールドの値を示しています。
計算ネットワーク(Calculation networks)
フィールド間の関係を識別するために、Pega Platform™ではアプリケーションの計算ネットワークを確立して更新します。フィールド計算を定義すると、Pega Platformにより、それが計算ネットワークに追加されます。 この計算ネットワークにより、Pega Platformは、値が変更されるたびにすべての関連フィールドを更新できます。 たとえば、ショッピングカートでは、アイテムの数量を変更すると、いくつかの依存する計算フィールドを介して更新をプッシュできます。
次の図で+アイコンをクリックすると、ショッピングカートの例で計算をトリガーする関数が表示されます。
このトピックは、下記のモジュールにも含まれています。
- 値の計算 v1
- Calculating values v2