Essbaseにおけるデータの計算とは、データベース・アウトラインで定義された階層および式(デフォルト計算)、または計算スクリプトに含まれている式を使用してデータベースの一部または全部を集計することを意味しています。
デフォルト計算はデータベースに保管されており、EsxDefaultCalc()を呼び出して実行します。デフォルト計算に使用されているスクリプトを入手および設定するには、EsxGetDefaultCalc()と、EsxSetDefaultCalc()またはEsxSetDefaultCalcFile()を使用します。
レポートと同様に、計算には次の3つの方法があります:
計算の指定を文字列としてEsxCalc()に渡す方法
EsxBeginCalc()、EsxSendString()、EsxEndCalc()を使用して一連の文字列を渡す方法
EsxCalcFile()を使用して計算スクリプト・ファイルを指定する方法
Essbaseにおける計算は非同期の操作で、該当する計算関数を呼び出すと、APIが計算の終了を待たずに、呼出し元にすぐ戻ります(たとえばレポートの実行とは異なります)。計算の完了には時間がかかることもあるため(数時間かかることも多い)、Essbaseでは非同期に計算を行っています。したがって、計算開始後は、計算が終了したかどうかをプログラムに定期的に確認させる必要があります(EsxGetProcessState()の呼出しによって行います)。
最も簡単な確認方法は、システム・タイマーを設定して、頻繁に(5から10秒程度)プロセスをウェイク・アップし、計算のステータスを確認する方法です。計算中はプログラム内で別な操作を行えますが、同じコンテキスト・ハンドルを使用してEssbase APIへの関数呼出しを行うことはできません。
これらの関数の詳細な説明は、EssCalc、EssBeginCalc、EssCalcFile、EsbCalc、EsbBeginCalc、およびEsbCalcFileを参照してください。
APIライブラリを参照してください。