Essbaseオブジェクトとは、データベース・アウトライン、計算スクリプトまたは他のデータのように、単にEssbaseが使用するファイルのことです。Essbaseは、APIを通して、単に名前、ファイル・タイプ、および関連付けられているアプリケーションやデータベースによって、このようなファイルを参照できる、オブジェクト・システムを備えています。これにより、(Essbaseの異なるプラットフォームおよび実装の間で異なる可能性がある)基本となるファイル・システムとは無関係に、オブジェクトを操作できます。
オブジェクトは、どのEssbaseサーバーまたはクライアント上にあってもかまいません。サーバーのロック・メカニズムが、オブジェクトへのアクセスを制御し、十分な権限を持ったユーザーは、(EsbGetObject()関数を使用して)サーバー・オブジェクトをロックし、クライアントにそれらをコピーできます。また、(EsbPutObject()関数を使用して)そのオブジェクトを編集したり、サーバーへ戻せます。サーバー・オブジェクトは、読取り専用のアクセスにはロックなしに開くことができますが、サーバーに戻して保存することはできません。ユーザーはまた、自分で使用するためにクライアント・ワークステーションのオブジェクトを作成または編集したり、他のユーザーと共有するためにこれをサーバーに保存できます。クライアントはサーバー間のコピーはできません。
APIを通してオブジェクトにアクセスするとき、オブジェクト名は、オブジェクトのファイル名(拡張子なし)を表します。オブジェクト・タイプは、ESB_OBJTYPE_xxxの形式でAPIヘッダー・ファイルで宣言されます(ここで、xxxは、ESB_OBJTYPE_REPORTでのように、特定のタイプを示します)。ほとんどのオブジェクトは、アプリケーションおよびデータベースと関連付けられています。しかし、計算スクリプトなどのオブジェクトやルール・ファイルは、アプリケーション・レベルで保管したり、アプリケーション内のデータベースで使用できます。
サーバー・オブジェクト・ファイルは、対応するアプリケーションまたはデータベースのサブディレクトリに物理的に位置します。ただし、サーバー・オブジェクト・ファイルを直接操作することは、通常望ましくありません。必ず、適切なAPI関数を使用して、ファイルをローカルにコピーしてください。クライアント・オブジェクト・ファイルも、デフォルトでは、ESB_INIT_TのLocalPath設定が指定するディレクトリのアプリケーションおよびデータベースのサブディレクトリに保管されています。これらのファイルは自由に操作や編集ができます。ただし、クライアントで編集しているサーバー・オブジェクトをロックおよびロック解除するときにプログラムが適切に操作されることを確認してください(必ず、編集前にオブジェクトをロックし、変更が保存されていてもいなくても、後でロックを解除してください)。
APIを通してクライアント・マシン上のファイル・オブジェクトにアクセスする場合、使用するAPIオブジェクト関数用のローカル・コンテキストを作成する必要があります。ローカル・コンテキストを作成するためには、EsbCreateLocalContext関数を使用します。この関数は、コンテキスト・ハンドルを戻します。このハンドルは、ログイン・コンテキスト・ハンドルのかわりに、オブジェクトAPI関数のいずれにも渡すことができます。また、サーバーではなくローカルのクライアント・オブジェクト・システム上で、要求された操作をAPIに実行させます。プログラムが最初にAPIを初期化した直後に、ローカル・コンテキストを1度作成する必要があるだけです。
ローカル・コンテキストを作成する場合、APIを終了する前にプログラムでEsbDeleteLocalContext()関数を呼び出してクリーン・アップする必要があります。