イントロダクション
このチュートリアルでは、Groovyスクリプト言語を紹介し、Oracle EPM Enterprise CloudサービスのPlanning用のGroovyスクリプトを作成する方法を示します。
バックグラウンド
Groovyは、スムーズにJava統合とJavaパフォーマンスの利点を兼ね備えたJavaプラットフォームのアジャイルの動的言語ですGroovyの機能の多くは、Python、Ruby、Smalltalkなどの言語から着想を得たものであり、Javaと同様の構文を使用しているため、Java開発者が使用可能です。Groovyは、その静的と動的の両方の言語とクラウド環境向けの保護可能性、ドメイン固有の言語といった強力な機能のために、Oracle、IBM、SAPなどの多くの大規模企業および小規模企業によって採用されています。
前提条件
Cloud EPMのハンズオン・チュートリアルでは、Cloud EPM Enterprise Serviceインスタンスにスナップショットをインポートする必要がある場合があります。チュートリアル・スナップショットをインポートする前に、別のCloud EPM Enterprise Serviceインスタンスをリクエストするか、現在のアプリケーションおよびビジネス・プロセスを削除する必要があります。チュートリアル・スナップショットは、既存のアプリケーションまたはビジネス・プロセスにはインポートされません。また、現在作業中のアプリケーションまたはビジネス・プロセスを自動的に置換または復元することもありません。
このチュートリアルを開始する前に、次のことを行う必要があります。
- サービス管理者にCloud EPM Enterprise Serviceインスタンスへのアクセス権を付与します。
- このスナップショットをPlanningインスタンスにアップロードおよびインポートします。
ノート:
スナップショットのインポート中に移行エラーが発生した場合は、HSS-Shared Servicesコンポーネントを除く移行、およびコア・コンポーネントのセキュリティ・アーティファクトとユーザー・プリファレンス・アーティファクトを再実行します。スナップショットのアップロードおよびインポートの詳細は、Oracle Enterprise Performance Management Cloud移行の管理のドキュメントを参照してください。なぜGroovy?
計算スクリプトの制限の理解
Planningでは、計算スクリプトベースのビジネス・ルールを使用して、計算とアクションを実行します。これらのスクリプトは強力ですが、いくつかの制限があります。
- ユーザーは、ユーザーが入力した実行時プロンプト以外のコンテキストに基づいて、実行時に動的にスクリプトを生成できません。たとえば、フォーム内のいくつかのセルを変更した場合、計算スクリプトのビジネス・ルールでは、どのデータが変更されたかを識別できず、そのデータのみに基づいて計算できません。
- これらは(プロジェクト・タイプや地域などによって)現在のメンバーの親を動的に指定できません。
- 計算の実行前に、ユーザーが入力したデータまたは実行時プロンプトの値を検証することはできません。
- 複数のEPM関数を組み合せて、単一のルールまたはルール・セットにすることはできません(計算後にスマート・プッシュ操作を自動的に実行するなど)。
- これらは、その静的な性質により、パフォーマンス上の問題が発生することがあります(たとえば、いくつかのセルのみが更新された場合でも、データベースの大部分の計算が必要になります)。
- 特定の行のみでマウスの右ボタンをクリックして計算する方法で、限定されたコンテキスト固有の計算がフォームで利用可能になりますが、このオプションは、大きいフォームや複数の行のセルを更新した場合にはあまり役立ちません。
- ASOアプリケーションでは、これらは単純な計算のみを提供します。
Groovy文字ルールの利点
Oracle EPM Enterprise CloudでのGroovyルールのサポートにより、これらの問題すべてに対処できます。Groovyルールを使用すると、次のことができます。
- Groovyスクリプトで定義されたコンテキストに基づいて、実行時に計算スクリプトを動的に生成します。
- 計算の実行前の実行時プロンプトの値の検証チェックを追加し、データの送信前のデータ検証チェックを追加し、エラー処理を追加します
- 単一のルールを使用して複数のEPM関数を起動します(たとえば、計算を実行してから、スマート・プッシュ操作を実行し、計算されたデータをレポート・キューブに移動します)。
- 集中的な計算を作成して、パフォーマンスを向上させます(現在のフォームでどのデータが変更されたのかに基づいて、カスタムのターゲット設定された計算スクリプトが動的に作成するなど)。
- データベースへ結果を送信する前に、メモリー内で複雑な手続き的計算を実行します。
Oracle EPM Enterprise CloudのGroovy
Groovy規則のタイプ
Oracleでは、次の2つのタイプのGroovyルールをサポートしています。
-
実行時プロンプト以外のコンテキストに基づいて実行時に計算スクリプトを動的に生成し、Oracle Essbaseに対して実行される計算スクリプトを返すルール。
たとえば、プロジェクトの期間(開始日から終了日まで)のみを対象としたプロジェクト費用を計算するルールを作成できます。
また、フォーム上にある勘定科目のみを対象としたトレンドベースの計算も同様の例の1つです。この計算を収益、費用、貸借対照表およびキャッシュ・フローの各種フォームで使用できます。これにより、最適化と再利用が可能になります。
-
データ検証を実行し、入力されたデータが会社のポリシーに違反する場合に操作を取り消すような純粋なGroovyルール。
ノート:
文字列を返すGroovyスクリプトは、指定したEssbaseキューブに対して実行されるEssbase計算スクリプトを返します。最後の文の最後の値として文字列を使用することは避けてください。ただし、Groovyスクリプトが正常に起動された後で実行する計算スクリプトの場合は、最後の文の最後の値として文字列を使用しないでください。Calculation ManagerでGroovyルールを作成し、そのルールを、アプリケーション内のビジネス・ルールを実行できる任意の場所から実行できます。
EPM GroovyスクリプティングAPIの使用
- EPM Groovyスクリプト作成APIにより、Groovyスクリプトで、EPMオブジェクト・モデルに対して様々な操作を実行できます。現在のアプリケーション、キューブ、グリッドなどのオブジェクトの多くは、操作変数から取得できます。多くの場合、APIのエントリ・ポイントは、
EpmScript
ベース・クラスまたはOperation
オブジェクトのいずれかのメソッドです。 - ベース・スクリプトと現在の操作には、スクリプトに適用される一連の変数があります。たとえば、スクリプトが
operation.grid
などの変数を参照し、グリッドが操作に存在しない場合、スクリプトが実行されると、システムによってスクリプトが停止されて、ジョブ・コンソールにエラーがログに記録されます。スクリプトに、グリッドが存在する場合にフォーマットするなどのオプションの処理がある場合は、operation.hasGrid()
を呼び出して、グリッドの存在を最初に確認できます。モデルの他のオブジェクトに、同様のパターンを使用できます。
ヒント :
EPM Groovyスクリプト・プラットフォームのAPI仕様の詳細は、『Oracle Enterprise Performance Management Cloud GroovyルールJava APIリファレンス』を参照してくださいGroovyビジネス・規則の作成
Oracleでは、次の2つのタイプのGroovyルールをサポートしています。
- EPM Enterprise CloudのPlanningアプリケーションでナビゲータを開き、「作成および管理」で「ルール」をクリックしてCalculation Managerを表示します。
- Calculation Managerで、「アクション」、「新規オブジェクト」の順に選択します。ダイアログ・ボックスで、アプリケーション・タイプ、アプリケーションおよびキューブを選択します。「オブジェクト・タイプ」で、「ルール」を選択します。ルールの名前を入力します。「OK」をクリックします。
- ルールが作成され、編集のために開いているというメッセージが表示されます。「OK」をクリックして続行します。
- 「デザイナ」ドロップダウン・リストで、「スクリプトの編集」を選択します。
- 「スクリプト・タイプ」ドロップダウン・リストで、「Groovyスクリプト」を選択します。
(保存)をクリックします。ルールはGroovyスクリプト・ベースのビジネス・ルールになり、エディタを使用してビジネス・ユース・ケースに従ってスクリプトを開発できます。次の例は、数値しきい値に基づいてデータ・グリッド内のセルの背景色を変更する単純なGroovyスクリプトを示しています。スクリプトを開くと、別のタブでスクリプトを表示することもできます。





関連リンク
その他の学習リソース
docs.oracle.com/learnで他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。さらに、Oracle Universityにアクセスして、利用可能なトレーニング・リソースを確認してください。
製品ドキュメントについては、Oracle Help Centerを参照してください。