プログラムは、他のEssbaseAPI関数を呼び出す前に、EsbInit()関数を呼び出すことによって、APIを初期化する必要があります。EsbInit()は、内部API状態変数をすべて初期化し、プログラムの要件にAPIを適合させることができます。
EsbInit()の前に呼び出すことができる唯一の関数は、EsbGetAPIVersion()です。
呼出し側プログラムはEsbInit()関数に初期化構造体を渡す必要があります。この構造体は、ESB32.BASでESB_INIT_Tと定義されています。それには、APIをカスタマイズし、APIのデフォルトを設定するために使用される、一連のフィールドが含まれます。EsbInit()を呼び出す前に、この構造体のインスタンスを宣言し、関連するフィールドを初期化する必要があります。
EsbInit()関数は、インスタンス・ハンドルを戻します。これは、それが引数としてAPIログイン関数に渡されます。
Visual Basicでは、それを使用するプロシージャで初期化構造体を宣言できます。下に示した構造体は、ESB32.BASから取ったものです。
Type ESB_INIT_T Version As Long ' version of API MaxHandles As Integer ' maximum number of context handles required LocalPath As String * ESB_PATHLEN ' local path to use for file operations MessageFile As String * ESB_PATHLEN ' full path name of message database file HelpFile As String * ESB_PATHLEN ' full path name of help file ClientError As Integer ' allows use of a pseudo client error handler ErrorStack As Integer ' size of the error message stack End Type
このコードでは、フィールドは次のように定義されています:
Versionフィールドは、APIの現在のバージョンを示します。
MaxHandlesフィールドは、プログラムが同時に要求できるコンテキスト・ハンドルの最大数を含みます。デフォルトは255です。
LocalPathフィールドには、クライアント上でのファイルおよびオブジェクトの操作に使用するデフォルトのローカルのパス名が含まれています。デフォルトは$ESSBASEPATH\CLIENTです。ここで$ESSBASEPATHはESSBASEPATH環境変数によって定義されます。
MessageFileフィールドには、メッセージ・データベース・ファイルESSBASE.MDBの完全修飾パス名が含まれています。これが明示的に設定されていない場合、Essbaseは最初に、ARBORMSGPATH環境変数にある完全修飾パスを使用しようとします。それ以外の場合は、$ESSBASEPATH\BIN\ESSBASE.MDBを使用します。ここで$ESSBASEPATHはESSBASEPATH環境変数によって定義されています。ESSBASEPATH変数が設定されていない場合、実行時にエラー・メッセージが戻されます。
HelpFileフィールドには、アプリケーション・ヘルプ・ファイルの完全修飾名が含まれています。デフォルトでは、「ヘルプ」ボタンをクリックすると、Essbaseシステムのログインに関するヘルプ・トピックが表示されます。
ESSBASEPATHが定義されていない場合、ヘルプ・ファイル名はNULLに設定されます。
ClientErrorフィールドには値ESB_FALSEまたはESB_TRUEが含まれ、メッセージを取得するためにEsbGetMessage()が使用できるかどうかを示します。
ErrorStackフィールドには、EsbGetMessage()によって使用されるメッセージ・スタックのサイズを含みます。デフォルト値は100です。