データベースの再計算

データベースのデータを更新した後は、連結した合計が正しくなるように再計算する必要があります。データベースを再計算するためには、デフォルト計算を実行、または特定の計算スクリプトを送信できます。また、計算スクリプトをデフォルトの計算スクリプトとして設定できます。計算スクリプトは、単一文字列、連続文字列またはファイルとして送信できます。計算スクリプト・ファイルは、クライアント・マシンまたはEssbaseサーバーのいずれにあってもかまいません。

単一文字列としての計算スクリプトの送信

単一文字列として計算スクリプトを送信するには、EsbCalc()を呼び出し文字列全体を因数として渡します(文字列の長さが32KBを超えないように注意してください)。EsbCalc()の呼出しでCalculateフラグをTRUEに設定し、計算スクリプトが実行されるようにします。その後、一定の間隔で計算の進行状況を確認する必要があります。

連続文字列としての計算スクリプトの送信

連続文字列として計算スクリプトを送信するためには、最初にEsbBeginCalc()を呼び出し、その後、計算スクリプトの文字列をすべて送信するためにEsbSendString()を繰り返し呼び出します(各文字列の長さが32KBを超えないように注意してください)。最後に、EsbEndCalc()を呼び出して、スクリプトを終了します。データベースが再計算されるように、EsbBeginCalc()への呼出しではCalculateフラグをTRUEに設定します。その後、一定の間隔で計算の進行状況を確認する必要があります。

ファイルとしての計算スクリプトの送信

ファイルとして計算スクリプトを送信するためには、EsbCalcFile()関数を使用して、計算スクリプトのファイル名を渡します。データベースが再計算されるように、EsbCalcFile()への呼出しにおいてCalculateフラグをTRUEに設定します。その後、一定の間隔で計算の進行状況を確認する必要があります。

デフォルトの計算スクリプトの使用

現在のデフォルト計算スクリプトを使用して、データベースを再計算するためには、EsbDefaultCalc()関数を使用します。データベースのデフォルトの計算スクリプトを設定するためには、EsbSetDefaultCalc()を使用して、単一文字列として計算スクリプトを渡します。ファイルからデフォルト計算スクリプトを設定するためには、EsbSetDefaultCalcFile()関数を使用して、計算スクリプト・ファイル名を渡します。EsbGetProcessState()を使用して、計算がいつ終了したかを判断します。

計算の進行状況の確認

データベースの計算が始まったら、一定の間隔(推奨は5秒)で、EsbGetProcessState()関数を呼び出すことにより、計算の進行状況を確認します。この関数は、計算状態を示す構造体を戻します。計算が終了したことまたはエラーが発生したことが示されるまで、EsbGetProcessState()を呼び出します。また、EsbCancelProcess()関数を使用して、進行中の計算を取り消せます。

注意

計算が進行中である間、計算操作が正常に完了または取り消されるまで、同じコンテキスト・ハンドルを使用して、EsbGetProcessState()またはEsbCancelProcess()以外のAPI関数を呼び出そうとしないでください。計算が終了したことをEsbGetProcessState()が示した後、プログラムは、そのコンテキスト・ハンドルで他のAPI操作の実行を続行できます。