Skip to main content

計算値

計算値は、1つ以上の入力フィールドに基づいた計算フィールドの値を設定することで、フィールド間の関係を明らかにします。 たとえば、オンラインショッピングカートアプリケーションでは、単価と数量に基づいて、各アイテムの小計を顧客に示した後、注文された全アイテムの合計を計算します。

その後、課税金を算定し、注文合計額に税金を追加して、顧客への最終的な請求額を算出します。 その他、プロモーション割引や買い物ポイントの値も計算できます。 計算は、ユーザーが入力フィールドの値を更新するたびに行われます。 フィールド計算を定義すると、手動の計算が不要になるので、エラーの可能性が減り、プロセスの効率化が図れます。

計算フィールドを別の計算への入力として使用して、従属計算のネットワークを作成できます。 ユーザーが計算入力として機能するフィールドの値を更新すると、結果として生じる計算により、従属フィールドに追加計算がトリガーされます。

App Studioでは、3種類の計算を利用できます。

  • 関数はリスト内の項目を反復処理します。
  • では単純なフィールドや複雑なフィールド、データリレーションシップを自由に組み合わせて参照し、フィールド値を計算します。
  • デシジョンテーブルは、一連の条件に基づいてプロパティ値をテストし、適切な応答を返します。
Calculated fields options

 

ユースケースに応じて、計算フィールドはケースタイプまたはデータオブジェクトのデータモデルで作成されます。 次の画像の中央にある縦線をスライドすると、ケースタイプのData modelタブにフィールドを追加する場合(左側)と、データオブジェクトのData modelタブにフィールドを追加する場合(右側)を比較できます。

以下のインタラクションで理解度をチェックしてください。

関数

関数はデータ関係の項目を反復処理し、Decimal、Currency、Integerのフィールドタイプでサポートされます。 App Studioでは、計算に使用する以下の4つの基本的な関数が提供されています。

  • Sumは、指定されたプロパティインスタンスのすべてのアイテムを追加します。
  • Averageは、指定されたプロパティのすべてのインスタンスの平均値を計算します。
  • MAXは、指定されたすべてのプロパティインスタンスの最大値を決定します。
  • MINは、指定されたすべてのプロパティインスタンスの最小値を決定します。

Sum of

オンラインショップでは、ショッピングカートの合計金額を計算する必要があります。 顧客が注文にアイテムを追加したり、削除したり、数量を更新したりすると、アプリケーションは合計額を更新しなくてはなりません。 Sum of関数を使用すれば注文合計フィールドの値を計算できます。

Average of

あるオンラインショップは、アプリケーションダッシュボードを構成して顧客の購買パターンを分析し、マネージャーが顧客一人当たりの最大および最小収益を生み出す地域を特定したいと考えています。 地域別にフィルターされた注文リストを作成できます。 次にAverage of関数を使用して、平均注文額を特定できます。

Maximum of

オンラインショップでは、顧客が1回限りのプロモーション割引を注文に適用できるようにする必要があります。 顧客は1つ以上のプロモーションコードを送信して、最高額商品の20%割引、指定された額を超える注文の配送料の免除など、複数の割引を適用しようとします。 プロモーション割引データ参照を作成すると、リスト内の各アイテムのプロモーションコードと割引額が識別されます。 次にMaximum of関数を使用すれば、注文に適用すべき最も価値のあるプロモーション割引を決定できます。

Minimum of

オンラインショップでは、注文時に無料アイテムと指定されたリストから最安値のアイテムを1つ贈呈するプロモーションが必要です。 Minimum of関数を使用すれば、注文で最低価格のアイテムを特定し、その金額のクレジットを注文に適用できます。

計算式

単純なフィールドやファンシーフィールド、データリレーションシップの値を自由に使用して、フィールド値の計算式を設定します。 次の図に示すように、オンライン注文アプリケーションでは、TeamHatsのコストとTeamMagnetsのコストを追加して、トランザクションの総費用を計算します。

Sample shopping cart display for sale of team hats and magnets.

式を設定する場合は、ドット演算子(".")を使用した名前でフィールドを参照します。 この演算子により、現在のケースのコンテキストで利用できるすべてのフィールドのリストが表示できます。 フィールドがデータリレーションシップの一部になっている場合は、プロパティ名またはリストをプレフィックスとして追加します。

次の図は、ドット演算子を使用して現在のケース内のフィールドのリストを表示する例を示しています。 TeamHatsTeamMagnetsが、利用可能なデータリレーションシップです。 次のドット演算子は、それぞれのデータリレーションシップのすべてのフィールドを表示します。 これらのデータオブジェクトには、それぞれCostフィールドがあります。

Calculated values

計算式では、以下のような一般的な操作をサポートしています。

  • 足し算
  • 引き算
  • 掛け算
  • 割り算
  • グルーピング(カッコを使用)
  • ブール(値)AND
  • ブール(値)OR

たとえば、計算を構成すれば、注文合計額に税率を掛けて注文時の税を計算できます。

.TaxRate * .OrderTotal

Email、Phone、Picklistを除くすべてのSimpleフィールドタイプの式を定義できます。 テキストベースのフォーマットの場合、コンカチネート(連結)と呼ばれるプロセスを使用して、テキスト文字列を作成する計算を構成できます。 たとえば、ある鑑定会社が、アイテムを送ってくる顧客向けに、収集価値のあるアイテムの見積りを提示するとします。 この会社は、アイテムを表示するページに以下の情報をコメントとして追加したいと考えています。

  • 鑑定アイテムの名前
  • 評価額の概算
  • 鑑定人ID

フィールド参照と静的テキストの組み合わせを使用して、コメントを作成する計算を定義できます。ここでは静的テキストは引用符(")で囲まれています。

"Appraiser " + .AppraiserID + " appraised " + .ItemName + " at a value of " + .AppraisedAmount + "."

計算を評価する際に、アプリケーションが各フィールドへの参照を現在のフィールド値に置き換えます。 計算により、次の例のような文字列が作成されます。

鑑定人04795AD銀の大皿に350米ドルの価値があると鑑定しました。

補足: 先の例では、斜体を適用したテキストは参照されるフィールドの値を示しています。

デシジョンテーブル

デシジョンテーブルは、1つまたは複数のフィールドの値を、一連のロジックテストで評価し、適切な結果を返します。 たとえば、ローンの種類に応じてローンの金利を設定するには、ユーザーはローンの種類を選択します。 デシジョンテーブルでは、ローンタイプを使用して適切な金利を決定し、計算によりUIでレンダリングするフィールドの値を設定します。 App Studioでカスタムデシジョンテーブルを設定するか、デシチズンデベロッパーがApp Studioで参照できるデシジョンテーブルを、システムアーキテクトがDev Studioで設定することができます。 

補足: App Studioで再利用できるデシジョンテーブルをDev Studioで設定するには、デシジョンテーブルを関連レコードとしてマークする必要があります。 関連レコードのマーク付けの詳細については、「関連性のあるレコードとしてマークする」を参照してください。

次の画像の中央にある縦線をスライドさせると、Dev Studioでのデシジョンテーブルの設定(左側)と、App Studioのデシジョンテーブルリファレンス(右側)を比較できます。

補足: Constellationに基づくアプリケーションのみが、App Studioでのカスタムデシジョンテーブルの作成をサポートしています。 詳細については、「App Studioでのデシジョンテーブルのオーサリング」を参照してください。

計算ネットワーク

フィールド間の関係を識別するために、Pega Platform™ではアプリケーションの計算ネットワークを確立して更新します。フィールド計算を定義すると、Pega Platformにより、それが計算ネットワークに追加されます。 この計算ネットワークにより、Pega Platformは、値が変更されるたびにすべての関連フィールドを更新できます。 たとえば、ショッピングカートでは、アイテムの数量を変更すると、いくつかの依存する計算フィールドを介して更新をプッシュできます。

次の図で+アイコンをクリックすると、ショッピングカートの計算をトリガーする関数が表示されます。

以下のインタラクションで理解度をチェックしてください。


このトピックは、下記のモジュールにも含まれています。

If you are having problems with your training, please review the Pega Academy Support FAQs.

このコンテンツは役に立ちましたか?

改善できるところはありますか?

We'd prefer it if you saw us at our best.

Pega Academy has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice