このトピックでは、Groovyルールを使用して変更済データのみを計算することで、ビジネス・プロセス計算パフォーマンスを改善する方法を説明します。
フォーム内のデータを更新したら、データを計算する必要があります。標準計算スクリプトを計算するビジネス・ルールを使用すると、フォームのすべてのデータが計算されます。データベースの大きな領域に影響する大規模なフォームまたは計算では、計算のパフォーマンスが低下する場合があります。
行を右クリックすると、一度に1つの行を手動で計算できます。こうすると計算のパフォーマンスが速くなりますが、データの複数行に変更を加えるために適した方法ではありません。
Groovyルールは、更新するセルに動的に集中することができます。
フォームに対してGroovyルールを使用するには次の2つの方法があります。
保存時にデータを計算するとき、Groovyルールによって、更新したセルに基づいたFIX文を含む計算スクリプトが生成されます。次に、フォーム上のすべてのレコードではなく変更済データに対して、サーバー上で計算が実行されます。多数のデータを更新する大規模なフォームでは、このオプションをベスト・プラクティスとして使用します。
データを保存する前に計算する場合は、Groovyルールによって、メモリー内の変更済データが計算され、フォーム上に結果が表示された後で、データベースに保存されます。実行する計算の数が少ない場合、またはアウトラインに構築するのが難しい複雑な手続き型計算を実行しようとする場合には、このオプションをベスト・プラクティスとして使用します。
この例では、給与の割合としてボーナスが計算されます。
保存時の計算について説明します。このフォームは、保存時に計算するGroovyルールを含むように定義されていることに注意してください。
フォーム上で一部の給与データと一部の電話番号を更新した後、電話番号は保存されますが、計算には影響しません。
関連するGroovyルールを実行するフォームを保存するとき、計算されたボーナス・データがフォームに表示されます。
「ジョブの詳細」を表示すると、Groovyルールによって作成された計算スクリプトがあります。FIX文には変更済の従業員のみが含まれることに注意してください。
Calculation Managerを開いて、Groovyルールを表示します。この最初のセクションは、フォームのグリッドに対して反復処理を行い、編集された給与のセルを見つけて、関連する従業員名を収集します。
このセクションでは計算スクリプトが生成されます。フォームのPOVメンバーを見つけて、POVメンバーと編集された従業員に対するFIX文を作成します。
ここからは、保存前の計算について説明します。
これは同じフォームですが、保存前に計算を行う別のGroovyルールが定義されています。
ここでも、給与データと一部の電話番号を更新した後で、フォームを保存して、関連付けられたGroovyルールを実行します。計算されたボーナス・データがフォームに表示されますが、「ジョブの詳細」を見ると、一部のボーナス・データが更新されたことがわかりますが、今回は計算スクリプトは生成されていません。
Calculation ManagerでGroovyルールを開きます。
最初のルールと同様に、このスクリプトはフォームのグリッドに対して反復処理を行い、編集された給与のセルを見つけて、関連する従業員名を収集します。次に、編集された従業員のみに対してボーナス・データを計算します。Oracle Essbase計算スクリプトは生成されないことに注意してください。
また、Groovyルールは、Oracle Smart View for Officeのフォームでも使用できます。Smart Viewでは、データの一括修正を行うためにMicrosoft Excelのすべての機能を利用できます。保存の前または後で実行するように設定されたフォームのGroovyルールはすべて、データを送信するときに実行されます。