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