Oracle® Fusion Middleware

Oracle Business Intelligence Discoverer WebサービスAPIユーザーズ・ガイド

11g リリース1（11.1.1）

E51913-01(原本部品番号:E10412-04)

2011年11月

このドキュメントでは、Discoverer WebサービスAPIについて説明します。また、APIを使用してDiscoverer接続およびワークブックにアクセスするためのリファレンス情報も提供します。

Oracle Fusion Middleware Oracle Business Intelligence Discoverer WebサービスAPIユーザーズ・ガイド 11g リリース1（11.1.1）

E51913-01

Copyright © 2011, Oracle and/or its affiliates.All rights reserved.

This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws.Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means.Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.

The information contained herein is subject to change without notice and is not warranted to be error-free.If you find any errors, please report them to us in writing.

If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable:

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007).Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

This software or hardware is developed for general use in a variety of information management applications.It is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury.If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use.Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications.

Oracle and Java are registered trademarks of Oracle and/or its affiliates.その他の名称は、他社の商標の可能性があります。

Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation.All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices.UNIX is a registered trademark of The Open Group.

This software or hardware and documentation may provide access to or information on content, products, and services from third parties.Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services.Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services.

目次

タイトルおよび著作権情報

はじめに

- 対象読者

- ドキュメントのアクセシビリティについて

- Oracle BI Discovererでのキーボード・ナビゲーション

- 関連ドキュメント

- 表記規則

- JGoodies社の使用許諾契約

1 Discoverer WebサービスAPIの概要

- 1.1 Simple Object Access Protocol

- 1.2 Oracle BI Discoverer Webサービス

- 1.3 Discoverer Webサービス用のSOAPエンドポイントのURL

- 1.4 WSDLフォーマット

- 1.5 認証

- 1.6 サポートされているDiscoverer接続モード

- 1.7 Discoverer Webサービス・セッションの保守

- 1.8 Discovererセッション・プールのサイズの管理

- 1.9 可用性の要件

- 1.10 エラー・メッセージ

- 1.11 問題の診断方法

- 1.12 Discoverer Webサービスを呼び出すための必要事項

- 1.12.1 Discoverer Webサービスにアクセスするための信頼できるユーザーの定義

- 1.12.2 Discoverer Webサービスへのアクセスの確認

- 1.12.3 Oracle Fusion Middleware Controlを使用したDiscoverer Webサービスの値の設定

- 1.12.4 Webサービス・クライアント・スタブの作成（Webサービス・プロキシ）

- 1.12.5 セッション保守プロパティの設定

- 1.12.6 生成済Webサービス・クライアント・スタブを使用してWebサービスを呼び出すためのクライアント・アプリケーションを記述

- 1.13 Discoverer WebサービスAPIにアクセスして結果を返すイベントの標準フロー

- 1.14 イベントの標準フロー: 詳細なタスク例

- 1.14.1 資格証明の提供によるDiscoverer Webサービスの呼出し

- 1.14.2 識別子の使用によるlogin()の呼出し

- 1.14.3 Oracle E-Business SuiteユーザーのためのDiscoverer Webサービスへのセキュアなアクセス

- 1.14.4 getConnectionList()の呼出しによる接続情報の検証

- 1.14.5 特定の接続の選択およびgetFolderEntryList()の呼出し

- 1.14.6 getWorksheetList()の呼出しによる特定のワークシートの選択

- 1.14.7 getLayoutMetadata()の呼出しによるワークシートのレイアウトの取得

- 1.14.8 getParameterMetadata()の呼出しによるワークシートのパラメータ・メタデータの選択

- 1.14.9 getParameterValueList()の呼出しによるワークシート・パラメータの選択およびLOVの取得

- 1.14.10 getCascadeParameterValueList()の呼出しによるカスケード・スタイルのワークシート・パラメータの選択とLOVの取得

- 1.14.11 submitWorksheetQuery()の呼出しによるワークシート・クエリーの発行（パラメータも含む）

- 1.14.12 getQueryStatus()の呼出しによるクエリー・ステータスの確認

- 1.14.13 getWorksheetData()の呼出しによるクエリー完了時のワークシート・データの表示

- 1.14.14 Logout()の呼出しによるログアウト

- 1.15 Discoverer Webサービスを呼び出すJavaクラスの例

2 Discoverer WebサービスAPIリファレンス

- 2.1 AppsConnect

- 2.2 getConnectionList

- 2.3 getFolderEntryList

- 2.4 getLayoutMetaData

- 2.5 getParameterMetaData

- 2.6 getParameterValueList

- 2.7 getCascadeParameterValueList

- 2.8 getQueryStatus

- 2.9 getVersion

- 2.10 getViewerURL

- 2.11 getWorksheetData

- 2.12 getWorkSheetList

- 2.13 isSessionValid

- 2.14 login

- 2.15 logout

- 2.16 requestQueryCancel

- 2.17 submitWorksheetQuery

索引

はじめに

『Oracle Fusion Middleware Oracle Business Intelligence Discoverer WebサービスAPIユーザーズ・ガイド』へようこそ。

対象読者

このマニュアルは、Discoverer Webサービスを介してDiscovererデータを使用するアプリケーションを開発する開発者を対象としています。読者は、Webサービスに関する実用的な知識を持ちあわせているものとします。

ドキュメントのアクセシビリティについて

オラクル社のアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイトhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=docaccを参照してください。

Oracleサポートへのアクセス

Oracleのお客様は、My Oracle Supportにアクセスして電子サポートを受けることができます。詳細は、http://www.oracle.com/pls/topic/lookup?ctx=acc&id=infoまたはhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs（聴覚障害者向け）を参照してください。

Oracle BI Discovererでのキーボード・ナビゲーション

Oracle BI Discovererでは、標準のキーボード・ナビゲーションがサポートされています。標準のキーボード・ナビゲーションとしては、[Tab]キー、ニーモニック（[Alt]キーと下線付き文字を使用）、アクセラレータ（例: [Alt]+[F4]でウィンドウを閉じる）を使用できることが挙げられます。

関連ドキュメント

このマニュアルで参照されているドキュメントおよびOracle Business Intelligenceに関するその他の情報（ホワイト・ペーパー、ベスト・プラクティス、ドキュメントの更新、その他の関連ドキュメントなど）は、Oracle Technology Networkから入手できます。URLは次のとおりです。

http://www.oracle.com/technology

表記規則

このマニュアルでは次の表記規則を使用します。

規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

イタリック体

イタリックは、ユーザーが特定の値を指定するプレースホルダ変数を示します。

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

< >

山カッコは、ユーザーが指定する名前または値を表します。

[]

大カッコは、カッコ内の項目を任意に選択することを表します。

メニュー名 | コマンド

メニューの選択順序を表します（例: メニューを選択し、次にそのメニューの下のコマンドを選択）。

Discoverer WebサービスAPIのメソッドの詳細は、「Discoverer WebサービスAPIリファレンス」を参照してください。

JGoodies社の使用許諾契約

Oracle Business Intelligenceには、JGoodies社のソフトウェアが組み込まれています。このソフトウェアの使用許諾契約は次のとおりです。

Copyright© 2003 JGoodies Karsten Lentzsch.All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

- Neither the name of JGoodies nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

1 Discoverer WebサービスAPIの概要

この章では、Discoverer WebサービスAPIの概要およびAPIの使用方法について説明します。項目は次のとおりです。

- 「Simple Object Access Protocol」

- 「Oracle BI Discoverer Webサービス」

- 「Discoverer Webサービス用のSOAPエンドポイントのURL」

- 「WSDLフォーマット」

- 「認証」

- 「サポートされているDiscoverer接続モード」

- 「Discoverer Webサービス・セッションの保守」

- 「Discovererセッション・プールのサイズの管理」

- 「可用性の要件」

- 「エラー・メッセージ」

- 「問題の診断方法」

- 「Discoverer Webサービスを呼び出すための必要事項」

- 「Discoverer WebサービスAPIにアクセスして結果を返すイベントの標準フロー」

- 「イベントの標準フロー: 詳細なタスク例」

- 「Discoverer Webサービスを呼び出すJavaクラスの例」

1.1 Simple Object Access Protocol

SOAP（Simple Object Access Protocol）は、Web上で情報を交換するためのXMLプロトコルに関するWorld Wide Web Consortium（W3C）勧告です。

1.2 Oracle BI Discoverer Webサービス

Oracle BI Discoverer Webサービスは、クライアントが次の処理を実行するためのApplication Programming Interface（API）の一部です。

- Discoverer接続、ワークブックおよびワークシートの取得

- ワークシート・クエリーの実行

- SOAPプロトコル（Version 1.1、JAX-WS/documentラップ・フォーマットを使用）を使用したワークシート・コンテンツの取得

1.3 Discoverer Webサービス用のSOAPエンドポイントのURL

Discoverer Webサービス用のSOAPエンドポイントのURLは、http(s)://<host>:<port>/discoverer/wsiです。

1.4 WSDLフォーマット

WSDL（Web Services Definition Language）フォーマットは、サービスおよびメソッドを公式に定義する業界標準であり、Discoverer Webサ―ビスAPIの定義に使用されます。サービスのプロキシ・クラスを自動的に生成できます。

注記

- WSDLにはhttp(s)://<host>:<port>/discoverer/wsi?wsdlからアクセスできます。

- このマニュアルでは、Webサービスの開発者に、WSDLとSOAPの技術およびWSDLからのクライアント・コードの生成方法に関する知識があることを前提としています。

1.5 認証

Discoverer Webサービスは、信頼できるユーザーからのみアクセス可能です。自分のコードでこれらの資格証明を使用するためには、Discovererの中間層の管理者によって設定された信頼できるユーザー名とパスワードを取得する必要があります。

ユーザー資格証明を含むコードの例は、例1-4「保護されたWebサービスにアクセスするための資格証明の設定」を参照してください。

信頼できるユーザーを作成する方法の詳細は、「Discoverer Webサービスにアクセスするための信頼できるユーザーの定義」を参照してください。

1.6 サポートされているDiscoverer接続モード

現行リリースでは、Discoverer WebサービスでOracle Single Sign-On、Oracle Applications Single Sign-Onおよびパブリック接続がサポートされています。

1.7 Discoverer Webサービス・セッションの保守

Discoverer Webサービスは本質的にステートフルです。つまり、Webサービス・クライアント・スタブのインスタンスごとに、Discoverer Webサービスとの1つのHTTPセッションが必要です。このHTTPセッションを、すべてのクライアント・アプリケーション・ユーザーがすべてのWebサービス処理で使用できます。ユーザーごとに、クライアント・アプリケーションはDiscoverer Webサービスに新規ユーザー・セッションを通知するためにログイン・メソッドをコールする必要があります。各ユーザー・セッションは、Discovererセッション・プールから作成または再使用されたサーバー側の専用Discovererセッションと関連付けられます。関連付けられるDiscovererセッションは、ユーザーとのすべての相互作用で使用されます。クライアント・アプリケーションは、ユーザーのすべての操作が完了した後にログアウト・メソッドをコールする必要があります。

Webサービス・クライアントとサーバー間で確立されたHTTPセッションは、クッキーによって追跡され、Webサービスによって管理されます。

1.8 Discovererセッション・プールのサイズの管理

Discovererセッションはlogin（）コールとそれに続くデータ・フェッチ処理が実行されるたびに必要となり、logout（）コールが実行されるたびにリリースされるため、Discovererセッション・プールのサイズを把握しておくと役立ちます。

Oracle Fusion Middleware Controlを使用して、セッション・プールのサイズの最大値を設定できます（configuration.xmlで）。Discovererセッションのクリーン・アップ処理は定期的に実行され、失効したかまたは非アクティブなDiscovererSessionオブジェクトがあれば、プールから削除されます。

SSOusername、Connectionkey、Workbook、WorksheetおよびLocaleメソッドを使用して、新規ログイン・リクエストのためのDiscovererセッション割当てを最適化するために、どのDiscovererセッションを選択するかが決定されます。

1.9 可用性の要件

Discoverer Webサービスはクラスタに分散可能で、単一機器の故障がシステム全体の障害にはなりません。透過的フェイルオーバーはサポートされていないため、失敗時のイベントでは、新規ユーザー・セッションを作成するために各クライアントを再認証する必要があります。

1.10 エラー・メッセージ

WebサービスAPIコールで、クライアントの対処を必要する例外が発生することがあります。ログイン時に選択したロケールを使用して、エラー・メッセージが表示されます。

1.11 問題の診断方法

ログ・ファイルからおよびWebサービス例外から問題を診断できます。Oracle Fusion Middleware Controlを使用してログ・エントリを表示できます。詳細は、Oracle Fusion Middleware Oracle Business Intelligence Discoverer構成ガイドを参照してください。

1.12 Discoverer Webサービスを呼び出すための必要事項

Discoverer Webサービスを呼び出すには、次の条件を満たす必要があります。

- 「Discoverer Webサービスにアクセスするための信頼できるユーザーの定義」

- 「Discoverer Webサービスへのアクセスの確認」

- 「Oracle Fusion Middleware Controlを使用したDiscoverer Webサービスの値の設定」

- 「Webサービス・クライアント・スタブの作成（Webサービス・プロキシ）」

- 「セッション保守プロパティの設定」

- 「生成済Webサービス・クライアント・スタブを使用してWebサービスを呼び出すためのクライアント・アプリケーションを記述」

1.12.1 Discoverer Webサービスにアクセスするための信頼できるユーザーの定義

Discoverer Webサービスにアクセスできるのは信頼できるユーザーのみです。信頼できるユーザーは、WebLogic Server管理コンソールを使用して作成します。ユーザーの作成の詳細は、WebLogic管理コンソール・オンライン・ヘルプのユーザーの作成に関する項を参照してください。

注意:
デフォルトで、「管理者」グループにはDiscovererアプリケーションのスコープ指定されたセキュリティ・ロールが割り当てられます。Discoverer Webサービスへのアクセスを提供するには、新規ユーザーを 「管理者」グループに追加します。
グループへのユーザーの追加の詳細は、WebLogic管理コンソール・オンライン・ヘルプのグループへのユーザーの追加に関する項を参照してください。

新規ユーザーがDiscoverer Webサービスにアクセスできるようにするには、そのユーザーにDiscovererスコープ指定セキュリティ・ロールを割り当てる必要があります。セキュリティ・ロールへのユーザーの追加の詳細は、WebLogic管理コンソール・オンライン・ヘルプのロールへのユーザーの追加に関する項を参照してください。

1.12.2 Discoverer Webサービスへのアクセスの確認

Discoverer Webサービスを呼び出すためのJavaクラスを作成する前に、Discoverer Webサービスがインストールおよび設定されていることを確認する必要があります。

Discoverer Webサービスがインストールおよび構成されていることを確認するには、エンドポイントURLにアクセスします。URLにアクセスできない場合は、Discovererマネージャに問い合せてください。

リンクhttp://<host>:<port>/discoverer/wsiにナビゲートします。

前のステップで作成したユーザー/パスワードの入力が求められます。

注意: インストール時に入力した「weblogic」ユーザーのユーザー名とパスワードも使用できます（詳細は中間層の管理者に問い合せてください）。

1.12.3 Oracle Fusion Middleware Controlを使用したDiscoverer Webサービスの値の設定

Fusion Middleware Controlを使用してDiscoverer WebサービスのmaxSessions設定を構成する必要があります。この設定は、同時に有効にできるDiscovererセッションの最大数を指定します（推奨値は20です）。

Fusion Middleware Controlを使用したDiscoverer Web Servicesの構成に関する詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Discoverer構成ガイド』を参照してください。

1.12.4 Webサービス・クライアント・スタブの作成（Webサービス・プロキシ）

Webサービス・クライアント・ライブラリからプロキシ/クライアント・ファイルを生成できます。Oracle Webサービスには、この目的のためのライブラリが用意されています。詳細は、Oracle Fusion Middleware Oracle Web Services開発者ガイドを参照してください。

Discoverer WSDL URLからDiscoverer Webサービス・クライアントを生成する手順は、次のとおりです。

1. Webブラウザを表示します。

2. Discoverer WSDL URL: http://<host>:<port>/discoverer/wsi?wsdlにアクセスします。
詳細は、「WSDLフォーマット」と「生成済Webサービス・クライアント・スタブを使用してWebサービスを呼び出すためのクライアント・アプリケーションを記述」を参照してください。

1.12.5 セッション保守プロパティの設定

Webサービス・ライブラリでSESSION_MAINTAIN_PROPERTYの値を設定する必要があります。SESSION_MAINTAIN_PROPERTYはセッションがステートフルかどうかを指定します。Discoverer Webサービス・セッションはステートフルであるため、このプロパティは次のようにTrueに設定する必要があります。

Map requestContext = ((BindingProvider)proxy).getRequestContext();
requestContext.put(BindingProvider.SESSION_MAINTAIN_PROPERTY,true);

注意: サポートされている各Webサービス・ライブラリには、ステートフル・セッションを保守するための同等のSESSION_MAINTAIN_PROPERTYがあります。詳細は、お使いのWebサービスのマニュアルを参照してください。

1.12.6 生成済Webサービス・クライアント・スタブを使用してWebサービスを呼び出すためのクライアント・アプリケーションを記述

基本的なクライアント・アプリケーションのコードの例を次に示します。

例1-1 Javaクラスの定義

class webserviceclient
{
public static void main(String[] args)
{
}
}

例1-2 Webサービス・クライアント・スタブのインスタンス化

class webserviceclient
{
@WebServiceRef
private static Wsi_Service wsi_Service;
public static void main(String[] args)
{
wsi_Service = new Wsi_Service();
wsiProxy proxy = wsi_Service.getWsi();
}
}

例1-3 クライアントのセッション保守の保証

これが必要となるのは、Discoverer Webサービスがステートフルであるためです。

class webserviceclient
{
@WebServiceRef
private static Wsi_Service wsi_Service;
public static void main(String[] args)
{
wsi_Service = new Wsi_Service();
wsiProxy proxy = wsi_Service.getWsi();
Map requestContext = ((BindingProvider)proxy).getRequestContext();
requestContext.put(BindingProvider.SESSION_MAINTAIN_PROPERTY,true);
}
}

例1-4 保護されたWebサービスにアクセスするための資格証明の設定

class webserviceclient
{
@WebServiceRef
private static Wsi_Service wsi_Service;
public static void main(String[] args)
{
wsi_Service = new Wsi_Service();
wsiProxy proxy = wsi_Service.getWsi();
Map requestContext = ((BindingProvider)proxy).getRequestContext();
requestContext.put(BindingProvider.USERNAME_PROPERTY,"username");
requestContext.put(BindingProvider.PASSWORD_PROPERTY,"password");
requestContext.put(BindingProvider.SESSION_MAINTAIN_PROPERTY,true);
}
}

例1-5 Webサービスのエンドポイントの設定

class webserviceclient{    @WebServiceRef    private static Wsi_Service wsi_Service;    public static void main(String[] args)
{
wsi_Service = new Wsi_Service();
wsiProxy proxy = wsi_Service.getWsi();
Map requestContext = ((BindingProvider)proxy).getRequestContext();
requestContext.put(BindingProvider.USERNAME_PROPERTY,"username");
requestContext.put(BindingProvider.PASSWORD_PROPERTY,"password");
requestContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,"http://host:port/discoverer/wsi");
requestContext.put(BindingProvider.SESSION_MAINTAIN_PROPERTY,true);
}}

例1-6 スタブでのWebサービス処理の実行

class webserviceclient{
@WebServiceRef
private static Wsi_Service wsi_Service;f
public static void main(String[] args)
{
wsi_Service = new Wsi_Service();
wsiProxy proxy = wsi_Service.getWsi();
Map requestContext = ((BindingProvider)proxy).getRequestContext();
requestContext.put(BindingProvider.USERNAME_PROPERTY,"username");
requestContext.put(BindingProvider.PASSWORD_PROPERTY,"password");
requestContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,"http://host:port/discoverer/wsi");
requestContext.put(BindingProvider.SESSION_MAINTAIN_PROPERTY,true);
DisplayName displayname = new DisplayName();
displayname.setUser("DISPLAYNAME");
Identifier idfr = new Identifier() ;
idfr.setId("IDENTIFIER");
UserCredential uc = new UserCredential();
uc.setDisplayName(displayname);
uc.setIdentifier(idfr);
LocaleBean locale = new LocaleBean();
locale.setCountry("US");
locale.setLanguage("en");
locale.setVariant("");
SessionKey sKey = proxy.login(uc, locale);
proxy.logout(sKey);
}}

注意: 上述のクライアント・アプリケーションをコンパイルするには、classpathでWebサービス・ライブラリを設定してください。Oracleライブラリを使用している場合、soap.jar、Http_client.jarおよびダウンロードされたproxy.jarが存在する必要があります。たとえば、コマンド・プロンプトからクライアント・アプリケーションを実行する場合、Java classpathを次のように設定できます。

set CLASSPATH=<absolute path of>/proxy.jar;<absolute path of>\soap.jar;<absolute path of>\Http_client.jar

注意: Oracle JDeveloperやEclipseのような統合開発環境を使用している場合は、その環境のユーザー・インタフェースを使用してJava classpathを設定してください。

1.13 Discoverer WebサービスAPIにアクセスして結果を返すイベントの標準フロー

クライアント・アプリケーションでDiscoverer WebサービスAPIを使用して、Discoverer接続およびワークシートに関連するXMLデータを取得できます。イベントの標準フローを次に示します（詳細は、「イベントの標準フロー: 詳細なタスク例」を参照）。

イベントの標準フロー

1. 「資格証明の提供によるDiscoverer Webサービスの呼出し」

2. 「識別子の使用によるlogin()の呼出し」
これによりユーザー・セッションが開始され、有効なセッション・キーが提供されます。

注意:
Oracle E-Business Suiteユーザーは、AppConnect() APIを使用してセッション・キーを生成する必要があります。詳細は、「Oracle E-Business SuiteユーザーのためのDiscoverer Webサービスへのセキュアなアクセス」を参照してください。

3. 「getConnectionList()の呼出しによる接続情報の検証」
クライアントが表示および選択に使用できる接続リストが返されます。

4. 「特定の接続の選択およびgetFolderEntryList()の呼出し」
ユーザーの表示および選択に使用できるワークブックのリストが返されます。

OLAP接続の場合は、フォルダとワークブックが返される場合もあります。

5. 「getWorksheetList()の呼出しによる特定のワークシートの選択」
ワークシートのリストのみが空のパラメータ情報とともに返されます。

6. 「getLayoutMetadata()の呼出しによるワークシートのレイアウトの取得」

7. 「getParameterMetadata()の呼出しによるワークシートのパラメータ・メタデータの選択」

8. 「getParameterValueList()の呼出しによるワークシート・パラメータの選択およびLOVの取得」
クライアントがユーザーの表示および選択に使用するLOVデータのまとまりが返されます。

または、getCascadeParameterValueList()を呼び出すことによって、カスケード・スタイルのワークシート・パラメータを選択することもできます。詳細は、「getCascadeParameterValueList()の呼出しによるカスケード・スタイルのワークシート・パラメータの選択とLOVの取得」を参照してください。

注意: ワークシートにパラメータが含まれない場合、クライアントはgetParameterValueList()またはgetCascadeParameterValueList()を呼び出すことができません。

9. 「submitWorksheetQuery()の呼出しによるワークシート・クエリーの発行（パラメータも含む）」
クライアントは必要に応じてパラメータを渡して、発行を実行します。

ワークシート・クエリー・リクエストが発行されると、queryKeyが取得されます。

10. 「getQueryStatus()の呼出しによるクエリー・ステータスの確認」
ユーザーの表示および選択に使用できるクエリーの現在のステータスが返されます。

11. 「getWorksheetData()の呼出しによるクエリー完了時のワークシート・データの表示」

12. 「Logout()の呼出しによるログアウト」

注意: クエリーは順次実行し、クライアント・アプリケーションがユーザーに対して1つのログオン・コールを実行する際、前のクエリー発行の結果が出るのを待ってからワークシートのクエリー発行が行われるようにする必要があります。

注意: OLAPワークシートでは、XMLに総計が含まれていることがあります。その場合、APIクライアントが総計の入ったOLAPワークシートについて合計を作成すると、誤った結果が生成されます。

1.14 イベントの標準フロー: 詳細なタスク例

次のイベント・フローは、各タスク例の標準的なJavaクラス・エントリを示しています。

1.14.1 資格証明の提供によるDiscoverer Webサービスの呼出し

login() APIコールを正常に実行するには、次のコードを実行する必要があります。

wsi_Service = new Wsi_Service();
Wsi proxy = wsi_Service.getWsi();
Map requestContext = ((BindingProvider)proxy).getRequestContext();
requestContext.put(BindingProvider.USERNAME_PROPERTY,"weblogic");
requestContext.put(BindingProvider.PASSWORD_PROPERTY,"weblogic");
requestContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,testEndpoint);
requestContext.put(BindingProvider.SESSION_MAINTAIN_PROPERTY,true);

1.14.2 識別子の使用によるlogin()の呼出し

login()コールを使用するには、Discoverer Webサービスを呼び出すための資格証明を提供する必要があります。詳細は、「資格証明の提供によるDiscoverer Webサービスの呼出し」を参照してください。

注意: このlogin()コールは、他のDiscoverer Webサービスを呼び出す前に呼び出す必要があります。

DisplayName displayname = new DisplayName();
displayname.setUser("DISPLAYNAME");
Identifier idfr = new Identifier() ;
idfr.setId("IDENTIFIER");
UserCredential uc = new UserCredential();
uc.setDisplayName(displayname);
uc.setIdentifier(idfr);
LocaleBean locale = new LocaleBean();
locale.setCountry("US");
locale.setLanguage("en");
locale.setVariant("");
System.out.println("Invoke the login() WS API");
SessionKey sKey = proxy.login(uc, locale);
System.out.println("Session Key :"+sKey.getKey());

注意: SSOベースの接続にアクセスするには、GUIDとSSOUsernameをそれぞれIdentifierとDisplayNameとして提供します。

1.14.3 Oracle E-Business SuiteユーザーのためのDiscoverer Webサービスへのセキュアなアクセス

login() APIを使用するかわりに、Oracle E-Business Suiteユーザーは、AppsConnect() APIを使用してセキュアなチケットと接続詳細を指定し、Discoverer Worksheetsにアクセスできます。

注記

- Oracle E-Business Suiteユーザーは、Single Sign-On (SSO)またはOracle Access Manager (OAM)認証は使用できません。DiscovererのSSOまたはOAMを有効化および無効化する方法の詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Discoverer構成ガイド』を参照してください。

- AppsConnect()コールは、他のDiscoverer Webサービスを呼び出す前に呼び出す必要があります。

LocaleBean locale = new LocaleBean();
locale.setCountry("US");
locale.setLanguage("en");
locale.setVariant("");
public SessionKey AppsConnect
(
Ticket ticket,
ConnectString connectStr,
DiscoEulName eul,
LocaleBean aLocale
)
throws DiscovererWSException, DiscovererSessionUnavailableException
System.out.println("Invoke the AppsConnect() WS API");
SessionKey sKey = AppsConnect(ticket,ConnectStr,eul,locale);
System.out.println("Session Key :"+sKey.getKey());

AppsConnect() APIでは、Ticket、ConnectStringおよびDiscoEulNameはstring wrapperオブジェクトです。これらのオブジェクトの値は、DiscovererユーザーがDiscovererを起動するために使用したDiscoverer URLから取得できます。

Discoverer Viewer URLの例は次のとおりです。

http://hostname.domain/discoverer/viewer?Connect=[APPS_SECURE]discor11&SessionCookieName=discor11&eul=EUL_US&opendbid=HRIPWCMP&FrameDisplayStyle=separate&acf=453560870&NLS_LANG=AMERICAN_AMERICA&NLS_DATE_FORMAT=DD-MON-RRRR&NLS_NUMERIC_CHARACTERS=.,&NLS_DATE_LANGUAGE=AMERICAN&NLS_SORT=BINARY&exitURL=http://hostname.domain/OA_HTML/OA.jsp?OAFunc=OAHOMEPAGE

SessionCookieNameパラメータの値が、クッキーのticketキーです。

Connectパラメータの値が、ConnectStringオブジェクトに渡す値です。上のURLでは[APPS_SECURE]discor11になります。

eulパラメータの値が、DiscoEulNameオブジェクトに渡す値です。上のURLではEUL_USになります。

ロケール詳細は、LocaleBeanオブジェクトを使用して定義するか、URLから取得します。

acfパラメータは、ユーザー/職責/セキュリティ・グループを識別します。このパラメータに変更があると、新規のDiscovererセッションが開始されます。

1.14.4 getConnectionList()の呼出しによる接続情報の検証

ログイン後、ユーザーはgetConnectionList() APIを呼び出して、次のような使用可能な接続のリストを取得できます。

System.out.println("Invoke the getConnectionList() API");
ConnectionList cl = proxy.getConnectionList(sKey);
List conns = cl.getConnections();
System.out.println("Discoverer connections:");
for(int i=0; i<conns.size(); i++)
{
System.out.println("Name:"+conns.get(i).getConnectionName().getName());
System.out.println(" Key:"+ conns.get(i).getConnectionKey().getKey());
System.out.println(" Desc:"+ conns.get(i).getConnectionDesc().getDesc());
}

1.14.5 特定の接続の選択およびgetFolderEntryList()の呼出し

getFolderEntryList() APIを使用するには、Discoverer Webサービスを呼び出すための資格証明を提供する必要があります。また、有効なセッション・キーを取得する（login()コールを実行）必要があります。詳細は、「資格証明の提供によるDiscoverer Webサービスの呼出し」および「識別子の使用によるlogin()の呼出し」を参照してください。

注意:
Oracle E-Business Suiteユーザーは、AppsConnect() APIを使用してセッション・キーを生成する必要があります。AppsConnect()を使用してDiscovererに接続した後、getFolderEntryList() APIを呼び出すために、ConnectionKeyにNULLを渡します。

ConnectionKey cKey = new ConnectionKey();
cKey.setKey("CONNECTIONKEY");
FolderEntryPath fPath = new FolderEntryPath();
fPath.setPath("");
System.out.println("Invoke the getFolderEntryList() API");
FolderEntryList fList = proxy.getFolderEntryList(sKey, cKey, fPath);
List fEntries = fList.getFolderEntries();
for(int i=0; i<fEntries.size(); i++)
{
System.out.println("Name:"+ fEntries.get(i).getName().getName());
System.out.println(" Path:"+ fEntries.get(i).getPath().getPath());
System.out.println("    Desc:"+fEntries.get(i).getDesc().getDesc());
System.out.println("       Type:"+ fEntries.get(i).getType().getType());
}

注記

- リレーショナル・データベース接続では、フォルダ・パスは空の文字列になります。OLAP接続では、完全なフォルダ名を指定します。

- リレーショナル・データベースでは、Typeは常に"Workbook"になります。OLAP接続の場合は、"Folder"をTypeとみなします。

1.14.6 getWorksheetList()の呼出しによる特定のワークシートの選択

getWorksheetList() APIを使用して、指定されたワークブックのワークシートのリストを取得します。

注意:
Oracle E-Business Suiteユーザーは、AppsConnect() APIを使用してDiscovererに接続するため、ConnectionKeyを作成する必要はありません。Discovererに接続した後、getWorksheetList() APIを呼び出すために、ワークブックに関連付けられたConnectionKeyをNULLまたは空の文字列として渡します。

WorkbookKey wbKey = new WorkbookKey();
wbKey.setConnKey(cKey);
wbKey.setKey("ANALYTIC_FUNCTION_EXAMPLES");
System.out.println("Invoke the getWorksheetList() API");
WorksheetList wsList = proxy.getWorksheetList(sKey, wbKey);
List wsheets = wsList.getWorksheets();
for(int i=0; i<wsheets.size(); i++)
{
System.out.println("Name:" +wsheets.get(i).getName().getName());
System.out.println("    Key:"+wsheets.get(i).getKey().getKey());
}

前述の呼出しで取得したキーは、後続のWebサービス・コールのワークシート・キーとして使用できます。

1.14.7 getLayoutMetadata()の呼出しによるワークシートのレイアウトの取得

このAPIは、Discovererワークシートのディメンションに関する情報を提供します。

WorksheetKey wsKey = new WorksheetKey();
wsKey.setWbKey(wbKey);
wsKey.setKey("ANALYTIC_FUNCTION_EXAMPLES/1817");
System.out.println("Invoke the getLayoutMetadata() API");
Layout layout = proxy.getLayoutMetadata(sKey, wsKey);
List dimensions = layout.getDimensions();
List measures = layout.getMeasures();
for(int i=0; i< dimensions.size(); i++)
{
System.out.println("Dimension :"+dimensions.get(i).getName());
}
for(int i=0; i<measures.size(); i++)
{
System.out.println("Measure :"+measures.get(i).getName());
}

1.14.8 getParameterMetadata()の呼出しによるワークシートのパラメータ・メタデータの選択

このAPIを使用して、ワークシートで使用可能なパラメータ・メタデータがあるかどうかを確認します。

System.out.println("Invoke the getParameterMetaData() API");
ParameterList pList = proxy.getParameterMetadata(sKey, wsKey);
List parameters = pList.getParameters();
for(int i=0; i< parameters.size(); i++)
{
System.out.println("Name:"+ parameters.get(i).getName().getName());
System.out.println("  Key:"+parameters.get(i).getKey().getKey());
}

ワークシートにパラメータが含まれていない場合、このAPIは空のリストを返します。

1.14.9 getParameterValueList()の呼出しによるワークシート・パラメータの選択およびLOVの取得

このAPIのパラメータは、sessionKey、parameterKeyおよび整数です。

ParameterKey pKey = new ParameterKey();
pKey.setKey("ANALYTIC_FUNCTION_EXAMPLES/1817/36211");
pKey.setWsKey( wsKey);
ParameterValueList pvList = proxy.getParameterValueList(sKey,pKey,new Integer(50));
List pvs = pvList.getParamValues();
System.out.println("Invoke the getParameterValueList() API");
System.out.println("Parameter Lovs:");
for(int i=0; i< pvs.size(); i++)
{
System.out.println("Val :"+pvs.get(i).getValue()); // Lov
System.out.println(" DescriptorKey :"+pvs.get(i).getDescriptorKey());
//paramter descriptor key. This is valid if the parameter is an indexed type;
}

1.14.10 getCascadeParameterValueList()の呼出しによるカスケード・スタイルのワークシート・パラメータの選択とLOVの取得

このAPIのパラメータは、sessionKey、parameterKey、整数およびParameterSelectListです。

// Code to retrieve cities from the region 'west'.
// To build the ParameterSelectList with the region as "west"
ParameterValue[] pval_region = new ParameterValue[1];
pval_region[0] = new ParameterValue();
pval_region[0].setValue("West");
pval_region[0].setDescriptorKey(null);
ParameterSelect[] pselect_region = new ParameterSelect[1];
pselect_region[0] = new ParameterSelect();
pselect_region[0].setKey(pKey_region);
ArrayList<ParameterValue> pval_regionlist = new ArrayList<ParameterValue>();
pval_regionlist.add(pval_region[0]);
pselect_region[0].getValues().addAll(pval_regionlist);
ParameterSelectList pselectList= new ParameterSelectList();
ArrayList<ParameterSelect> pSelectArraylist = new ArrayList<ParameterSelect>();
pSelectArraylist.add(pselect_region[0]);
pselectList.getSelParams().addAll(pSelectArraylist);
// To get the values for the city parameter
ParameterKey pKey_city = new ParameterKey();
pKey_city.setKey("XMLP_PARAMETERSCASCADE/1/10");
pKey_city.setWsKey(wsKey);
do
{
pvList = proxy.getCascadeParameterValueList(sKey,pKey_city,new Integer(10),pselectList);
pvs= pvList.getParamValues();
System.out.println("Invoke the getParameterValueList() API");
System.out.println("Parameter Lovs: "+pvs.size());
for(int i=0; i< pvs.size(); i++)
{
System.out.println("Val :"+pvs.get(i).getValue()); // Lov
System.out.println("    DescriptorKey :"+pvs.get(i).getDescriptorKey());
}
}while (pvs.size()>0 );

1.14.11 submitWorksheetQuery()の呼出しによるワークシート・クエリーの発行（パラメータも含む）

このAPIのパラメータは、sessionKey、workSheetKey、ParameterSelectListおよびQueryOptionです。

ParameterSelectListは、選択されたパラメータのリストを渡す際に役立ちます。次のコードは、複数のパラメータおよび各パラメータの複数の値に使用します。

ParameterValue[] pval = new ParameterValue[1];
pval[0] = new ParameterValue();
pval[0].setValue("Aladdin");
pval[0].setDescriptorKey(null);
pval[1] = new ParameterValue();
pval[1].setValue("A Few Good Men");
pval[1].setDescriptorKey(null);
ParameterSelect[] pselect = new ParameterSelect[1];
pselect[0] = new ParameterSelect();
pselect[0].setKey(pKey);
ArrayList pvallist = new ArrayList();
pvallist.add(pval[0]);
pvallist.add(pval[1]);
pselect[0].getValues().addAll(pvallist);
ParameterSelectList pselectList = new ParameterSelectList();
ArrayList pselectlist = new ArrayList();
pselectlist.add(pselect[0]);
pselectList.getSelParams().addAll(pselectlist);

QueryOptionは、結果セットのプロパティの制御に役立ちます。サポートされる結果タイプは、XMLROWSET、PDF、HTMLおよびXLSです。XMLROWSETタイプの場合、フェッチごとの行数を指定できます。

指定したQueryOptionsのうち、適用可能なオプションが考慮され、その他は破棄されます。

ResultType rt = new ResultType();
rt.setType("XMLROWSET");
QueryOption qo = new QueryOption();
qo.setChunkSize(1021);
qo.setNoOfrows(25);
qo.setResultType(rt);
qo.setUserCredential(uc);

次のコードはクエリーを発行します。

QueryKey qKey = proxy.submitWorksheetQuery(sKey, wsKey,pselectList,qo);
System.out.println("Query Key :" + qKey.getKey());

1.14.12 getQueryStatus()の呼出しによるクエリー・ステータスの確認

String status="";
String resultsReady = "Results Ready";
String cancelled = "Cancelled";
QueryStatus qs = null;
while(!status.equalsIgnoreCase(resultsReady) &&
!status.equalsIgnoreCase(cancelled))
{ qs = proxy.getQueryStatus(sKey, qKey);
status = qs.getStatus();
System.out.println("Status :"+qs.getStatus());
Thread.sleep(5);
}

1.14.13 getWorksheetData()の呼出しによるクエリー完了時のワークシート・データの表示

クエリーが「準備完了」ステータスになったら、getWorksheetData() APIを使用してワークシート・データを取得できます。次のコードは、XMLROWSET結果タイプのワークシート・データを取得する方法を示しています。

if(qs!= null && qs.getStatus().equalsIgnoreCase(resultsReady))
{
System.out.println("Invoking getWorksheetData() API");
QueryResult qr = null;
do
{
qr = proxy.getWorksheetData(sKey, qKey,false);
String data = qr.getData();
if (qo.getResultType().getType().matches("XMLROWSET") )
{
System.out.println("------------Data block begin------------");
System.out.println(data);
System.out.println("------------Data block end------------");
}
}while(qr.isFinished()== false);
}

次のコード・サンプルは、バイナリ・データ型（XLSなど）のワークシート・データを取得する方法を説明しています。

if(qs!= null && qs.getStatus().equalsIgnoreCase(resultsReady))
{
System.out.println("Invoking getWorksheetData() API");
QueryResult qr = null;
do
{
qr = proxy.getWorksheetData(sKey, qKey,false);
String data = qr.getData();
if(qo.getResultType().getType().matches("XLS") )
{
String opFilename = "/tmp/out.xls" ;
else if
Base64Decoder myBase64Decoder = new Base64Decoder();
byte _myTempByteArray [] = null;
FileOutputStream fout = null;
String opFilename = "/tmp/out.xls" ;
try
{
fout =new FileOutputStream(opFilename);
}
catch(FileNotFoundException e)
{
System.out.println("Error Opening Output File");
return;
}
_myTempByteArray = myBase64Decoder.decode(data);
fout.write(_myTempByteArray);
}
}while(qr.isFinished()== false);
}

1.14.14 Logout()の呼出しによるログアウト

proxy.logout(sKey);

1.15 Discoverer Webサービスを呼び出すJavaクラスの例

次に、Discoverer Webサービス呼び出すJavaクラス（wsiClient.java）の例を示します。

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.List;
import java.util.Map;
import javax.xml.ws.BindingProvider;
import javax.xml.ws.WebServiceRef;
import jaxwstest.proxy.Wsi;
import jaxwstest.proxy.Wsi_Service;
import jaxwstest.proxy.types.ConnectionKey;
import jaxwstest.proxy.types.ConnectionList;
import jaxwstest.proxy.types.DisplayName;
import jaxwstest.proxy.types.FolderEntry;
import jaxwstest.proxy.types.FolderEntryList;
import jaxwstest.proxy.types.FolderEntryPath;
import jaxwstest.proxy.types.Identifier;
import jaxwstest.proxy.types.LocaleBean;
import jaxwstest.proxy.types.QueryKey;
import jaxwstest.proxy.types.QueryOption;
import jaxwstest.proxy.types.QueryResult;
import jaxwstest.proxy.types.QueryStatus;
import jaxwstest.proxy.types.ResultType;
import jaxwstest.proxy.types.SessionKey;
import jaxwstest.proxy.types.UserCredential;
import jaxwstest.proxy.types.WorkbookKey;
import jaxwstest.proxy.types.Worksheet;
import jaxwstest.proxy.types.WorksheetKey;
import jaxwstest.proxy.types.WorksheetList;
import oracle.net.www.Base64Decoder;
public class wsiClient
{
@WebServiceRef
private static Wsi_Service wsi_Service;
public static void main(String[] args)
{
try
{
// Create a new stub
wsi_Service = new Wsi_Service();
wsiProxy proxy = new wsiProxy();
Map requestContext = ((BindingProvider)proxy).getRequestContext();
requestContext.put(BindingProvider.USERNAME_PROPERTY,"weblogic");
requestContext.put(BindingProvider.PASSWORD_PROPERTY,"weblogic");
requestContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,testEndpoint);
requestContext.put(BindingProvider.SESSION_MAINTAIN_PROPERTY,true);
// Add your code to call the desired methods
String version = proxy.getVersion();
System.out.println("Version ="+version );
DisplayName ssouser = new DisplayName();
ssouser.setUser("SSOUSER1");
Identifier  idfr = new Identifier();
idfr.setId("IDENTIFIER");
UserCredential uc = new UserCredential();
uc.setDisplayName(ssouser);
uc.setIdentifier(idfr);
LocaleBean locale = new LocaleBean();
locale.setCountry("US");
locale.setLanguage("en");
locale.setVariant("");
System.out.println("Invoke the login() WS API");
SessionKey sKey = proxy.login(uc, locale);
System.out.println("Session Key :"+sKey.getKey());
System.out.println("-----------------------------------------------");
// Get the list of connections accessible to this SSOUser
System.out.println("Invoke the getConnectionList() API");
ConnectionList cl = proxy.getConnectionList(sKey);
List conns = cl.getConnections();
System.out.println("Discoverer connections:");
for(int i=0; i<conns.size(); i++)
{
System.out.println("Name:"+conns.get(i).getConnectionName().getName());
System.out.println(" Key:"+ conns.get(i).getConnectionKey().getKey());
System.out.println(" Desc:"+ conns.get(i).getConnectionDesc().getDesc());
}
System.out.println("-----------------------------------------------");
System.out.println("Invoke the getFolderEntryList() API");
// Create a valid connectionKey object using one of the connection keys obtained
in the getConnectionList
ConnectionKey cKey = new ConnectionKey();
cKey.setKey("CONNECTIONKEY");
FolderEntryPath fPath = new FolderEntryPath();
fPath.setPath("");
System.out.println("Invoke the getFolderEntryList() API");
FolderEntryList fList = proxy.getFolderEntryList(sKey, cKey, fPath);
List fEntries = fList.getFolderEntries();
for(int i=0; i<fEntries.size(); i++)
{
System.out.println("Name:"+ fEntries.get(i).getName().getName());
System.out.println("   Path:"+ fEntries.get(i).getPath().getPath());
System.out.println("   Desc:"+fEntries.get(i).getDesc().getDesc());
System.out.println("   Type:"+ fEntries.get(i).getType().getType());
}
System.out.println("-----------------------------------------------");
WorkbookKey wbKey = new WorkbookKey();
wbKey.setConnKey(cKey);
wbKey.setKey("ANALYTIC_FUNCTION_EXAMPLES");
System.out.println("Invoke the getWorksheetList() API");
WorksheetList wsList = proxy.getWorksheetList(sKey, wbKey);
List wsheets = wsList.getWorksheets();
for(int i=0; i<wsheets.size(); i++)
{
System.out.println("Name:" +wsheets.get(i).getName().getName());
System.out.println("    Key:"+wsheets.get(i).getKey().getKey());
}
System.out.println("-----------------------------------------------");
WorksheetKey wsKey = new WorksheetKey();
wsKey.setWbKey(wbKey);
wsKey.setKey("ANALYTIC_FUNCTION_EXAMPLES/1817");
System.out.println("Invoke the getLayoutMetadata() API");
Layout layout = proxy.getLayoutMetadata(sKey, wsKey);
List dimensions = layout.getDimensions();
List measures = layout.getMeasures();
for(int i=0; i< dimensions.size(); i++)
{
System.out.println("Dimension :"+dimensions.get(i).getName());
}
for(int i=0; i<measures.size(); i++)
{
System.out.println("Measure :"+measures.get(i).getName());
}
System.out.println("-----------------------------------------------");
System.out.println("Invoke the getParameterMetaData() API");
ParameterList pList = proxy.getParameterMetadata(sKey, wsKey);
List parameters = pList.getParameters();
for(int i=0; i< parameters.size(); i++)
{
System.out.println("Name:"+ parameters.get(i).getName().getName());
System.out.println("  Key:"+parameters.get(i).getKey().getKey());
}
System.out.println("-----------------------------------------------");
ParameterKey pKey = new ParameterKey();
pKey.setKey("ANALYTIC_FUNCTION_EXAMPLES/1817/36211");
pKey.setWsKey( wsKey);
ParameterValueList pvList = proxy.getParameterValueList(sKey,pKey,new Integer(50));
List pvs = pvList.getParamValues();
System.out.println("Invoke the getParameterValueList() API");
System.out.println("Parameter Lovs:");
for(int i=0; i< pvs.size(); i++)
{
System.out.println("Val :"+pvs.get(i).getValue()); // Lov
System.out.println(" DescriptorKey :"+pvs.get(i).getDescriptorKey());
//paramter descriptor key. This is valid if the parameter is an indexed type;
}
ParameterValue[] pval = new ParameterValue[1];
pval[0] = new ParameterValue();
pval[0].setValue("Aladdin");
pval[0].setDescriptorKey(null);
pval[1] = new ParameterValue();
pval[1].setValue("A Few Good Men");
pval[1].setDescriptorKey(null);
ParameterSelect[] pselect = new ParameterSelect[1];
pselect[0] = new ParameterSelect();
pselect[0].setKey(pKey);
ArrayList pvallist = new ArrayList();
pvallist.add(pval[0]);
pvallist.add(pval[1]);
pselect[0].getValues().addAll(pvallist);
ParameterSelectList pselectList = new ParameterSelectList();
ArrayList pselectlist = new ArrayList();
pselectlist.add(pselect[0]);
pselectList.getSelParams().addAll(pselectlist);
ResultType rt = new ResultType();
rt.setType("XMLROWSET");
QueryOption qo = new QueryOption();
qo.setChunkSize(1021);
qo.setNoOfrows(25);
qo.setResultType(rt);
qo.setUserCredential(uc);
QueryKey qKey = proxy.submitWorksheetQuery(sKey, wsKey,pselectList,qo);
System.out.println("Query Key :" + qKey.getKey());
String status="";
String resultsReady = "Results Ready";
String cancelled = "Cancelled";
QueryStatus qs = null;
while(!status.equalsIgnoreCase(resultsReady) &&
!status.equalsIgnoreCase(cancelled))
{
qs = proxy.getQueryStatus(sKey, qKey);
status = qs.getStatus();
System.out.println("Status :"+qs.getStatus());
Thread.sleep(5);
}
if(qs!= null && qs.getStatus().equalsIgnoreCase(resultsReady))
{
System.out.println("Invoking getWorksheetData() API");
QueryResult qr = null;
do
{
qr = proxy.getWorksheetData(sKey, qKey,false);
String data = qr.getData();
if (qo.getResultType().getType().matches("XMLROWSET") )
{
System.out.println("------------Data block begin------------");
System.out.println(data);
System.out.println("------------Data block end------------");
}
}while(qr.isFinished()== false);
}
proxy.logout(sKey);
}
catch(Exception ex){
ex.printStackTrace();
}
}
}

2 Discoverer WebサービスAPIリファレンス

この章では、次のDiscoverer WebサービスAPIのリファレンス情報について詳細に説明します。

- 「AppsConnect」

- 「getConnectionList」

- 「getFolderEntryList」

- 「getLayoutMetaData」

- 「getParameterMetaData」

- 「getParameterValueList」

- 「getCascadeParameterValueList」

- 「getQueryStatus」

- 「getVersion」

- 「getViewerURL」

- 「getWorksheetData」

- 「getWorkSheetList」

- 「isSessionValid」

- 「login」

- 「logout」

- 「requestQueryCancel」

- 「submitWorksheetQuery」

2.1 AppsConnect

このAPIは、Oracle E-Business Suite (EBS)ユーザーがDiscoverer Webサービスへのセキュアな接続を確立するために使用します。

このAPIコールは、APP_SECUREチケット、接続文字列、EULの名前およびLocaleBean情報を受け付け、一意なSessionKeyを返します。その後、SessionKeyは他のすべてのAPIコールに渡されます。

API

詳細

メソッド

Public SessionKey AppsConnect(ticket,ConnectStr,eul,locale) { }

入力:

- ticket
このオブジェクトは、Discovererアプリケーション用の有効なAPP_SECUREチケットを含む必要があります。

- ConnectStr
このオブジェクトは、Discovererに接続するための接続詳細を渡します。

- eul
ユーザーの接続先のEULを含むデータベース・スキーマの名前を指定します。

- ロケール
このオブジェクトは、Webサービス・セッションにロケール情報を渡します。デフォルトでは、ロケールは英語（en-US）です。

出力

- SessionKey

例外

- DiscovererWSException

- DiscovererSessionUnavailableException

次の表は、構造のフィールドを示しています。

構造

フィールド

Ticket

- String ticket_name

ConnectString

- String name

DiscoEulName

- String eulname

LocaleBean

- String language

- String country

- String variant

2.2 getConnectionList

このAPIコールは接続のリストを取得します。SessionKeyを受け付け、Connectionリスト・オブジェクトを返します。シングル・サインオン・モードでは、パブリック接続とプライベート接続のリストが返されます。使用できる接続タイプはリレーショナル、OLAPまたはAPPSです。

API

詳細

メソッド

Public ConnectionList getConnectionList(SessionKey aSessionKey) { }

入力:

- SessionKey

出力

- ConnectionList

例外

- java.rmi.RemoteException

次の表は、構造のフィールドを示しています。

構造

フィールド

ConnectionList

- Connectionオブジェクトの配列

Connection

- ConnectionName

- ConnectionKey

- ConnectionDescription

- ConnectionEUL

- ConnectionDBIdentifier

- ConnectionAccessType

ConnectionName

- String name

ConnectionKey

- String key

ConnectionDescription

- String description

ConnectionEUL

- String eulname

ConnectionDBIdentifier

- String database name

ConnectionAccessType

- String accesstype

2.3 getFolderEntryList

このAPIコールは接続を使用して非スケジュール・ワークブックとFolderEntriesのリストを取得します。SessionKey、ConnectionKey、およびFolderEntrypathを受け付け、FolderEntrypathの接続からアクセス可能な非スケジュール・ワークブックとFolderEntriesデータを提供します。非スケジュール・ワークブックのリストには、接続で使用されているデータベース・ユーザーのすべての共有ワークブックが含まれます。

リレーショナル・データへの接続の場合、ワークブックはEULの単一レベルに格納されます。FolderEntrypathの有効値は“”のみです。空白の文字列は、Discoverer Plus RelationalとDiscoverer Plus OLAPの両方のルート・フォルダ・エントリを示します。

OLAPデータへの接続の場合、FolderEntriesとワークブックはDiscovererカタログに格納されます。FolderEntriesは複数のレベルで構成されている可能性があり、適切なFolderEntryPathを指定してクエリーできます。クライアントは、FolderEntriesを参照するために、このWebサービスを連続してコールする必要があります。

API

詳細

メソッド

Public FolderEntryList getFolderEntryList(SessionKey aSessionKey,
ConnectionKey aCkey, FolderEntrypath fpath ) { }

入力:

- SessionKey

- ConnectionKey

- FolderEntryPath
ワークブックとFolderEntriesが必要なパス。

出力

- FolderEntryListオブジェクト

例外

- java.rmi.RemoteException

次の表は、構造のフィールドを示しています。

構造

フィールド

FolderEntryList

- FolderEntryオブジェクトの配列

- String country

- String variant

FolderEntry

- FolderEntryName

- FolderEntrypath
FolderEntryまたはWorkbookEntryへの完全修飾パス。

- FolderEntryType

- FolderEntryDescription

FolderEntryName

- String name

FolderEntryPath

- String path

FolderEntryDescription

- String description

FolderEntryType

- String type
FolderEntryまたはWorkbookEntry

- WorkbookKey
タイプはWorkbookEntryの場合、有効です。

WorkbookKey

- String wbDevKey

- ConnectionKey

2.4 getLayoutMetaData

このAPIコールは、選択したワークシートのレイアウト・メタデータを取得します。このAPIコールは、SessionKeyおよびWorksheetKeyを受け付け、WorksheetKeyで識別されるワークシートのレイアウト情報を提供します。

API

詳細

メソッド

Public Layout getLayoutMetaData(SessionKey aSessionKey,
WorksheetKey  aWorksheetKey ) {}

入力:

- SessionKey

- WorksheetKey

出力

- Layout

例外

- java.rmi.RemoteException

次の表は、構造のフィールドを示しています。

構造

フィールド

Layout

- Dimensionオブジェクトの配列

- Measureオブジェクトの配列

Dimension

- String label

Measure

- String label

2.5 getParameterMetaData

このAPIコールは、選択したワークシートのパラメータ・メタデータを取得します。SessionKeyおよびWorksheetKeyを受け付け、WorksheetKeyで識別されるワークシートのパラメータ・リストを提供します。

API

詳細

メソッド

Public ParameterList getParameterMetaData(SessionKey aSessionKey,
WorksheetKey  aWorksheetKey ) {}

入力:

- SessionKey

- WorksheetKey

出力

- ParameterList

例外

- java.rmi.RemoteException

次の表は、構造のフィールドを示しています。

構造

フィールド

ParameterList

- Parameterオブジェクトの配列

2.6 getParameterValueList

このAPIコールは、ParameterKeyを使用してパラメータLOVを取得します。SessionKey、ParameterKeyおよびnumValuesを受け付け、値リスト（LOV）を提供します。このメソッドはLOVを持つパラメータに対してコールします。LOVはまとまりで取得され（サイズはnumValuesで指定されます）、先頭から末尾への1方向にのみページングできます（パラメータの双方向ページングはサポートされていません）。パラメータはクライアント・アプリケーションがキャッシュします。

API

詳細

メソッド

Public ParameterValueList getParameterValueList(SessionKey
aSessionKey, ParameterKey aParamKey, int numValues){ }

入力:

- SessionKey

- ParameterKey

- numValues
Webサービスが1回のコールで返す値の数を指定する整数値です。さらに値がある場合は、getParameterValueListを繰り返しコールする必要があります。

出力

- ParameterValueList

例外

- java.rmi.RemoteException

注記

- パラメータのリンクは非アクティブです。

次の表は、構造のフィールドを示しています。

構造

フィールド

ParameterValueList

- ParameterValueオブジェクトの配列

- Boolean finished

2.7 getCascadeParameterValueList

このAPIコールは、ParameterKeyおよびParameterSelectListを使用してパラメータLOVを取得します。SessionKey、ParameterKey、numValuesおよびParameterSelectListを受け付け、値リスト（LOV）をカスケード・スタイルで提供します。カスケード・パラメータでは、1つのパラメータのLOVは、ワークシートの前のパラメータに選択された値に依存します。LOVはまとまりで取得され（サイズはnumValuesで指定されます）、先頭から末尾への1方向にのみページングできます（パラメータの双方向ページングはサポートされていません）。パラメータはクライアント・アプリケーションがキャッシュします。

API

詳細

メソッド

Public ParameterValueList getCascadeParameterValueList(SessionKey
aSessionKey, ParameterKey aParamKey, int numValues, ParameterSelectList pselectList){ }

入力:

- SessionKey

- ParameterKey

- numValues
Webサービスが1回のコールで返す値の数を指定する整数値です。さらに値がある場合は、getCascadeParameterValueListを繰り返しコールする必要があります。

- ParameterSelectList

出力

ParameterValueList

例外

- DiscovererWSException

- DiscovererSessionUnavailableException

- DiscovererSessionCreationFailedException

次の表は、構造のフィールドを示しています。

構造

フィールド

ParameterValueList

- ParameterValueオブジェクトの配列

- Boolean finished

2.8 getQueryStatus

このAPIコールは、クエリーのステータス（実行中、取消など）を返します。このAPIコールはSessionKeyおよびQueryKeyを受け付けます。

API

詳細

メソッド

Public QueryStatus getQueryStatus(SessionKey aSessionKey,
QueryKey aQueryKey){ }

入力:

- SessionKey

- QueryKey

出力

- QueryStatus

例外

- java.rmi.RemoteException

次の表は、構造のフィールドを示しています。

構造

フィールド

QueryStatus

- String detail

- String status

ステータスは次のいずれかです。

- QUERY_FAILED

- QUERY_EXECUTING

- QUERY_CANCELED

- QUERY_RESULTS_READY

- QUERY_NEEDS_EXECUTING

- QUERY_NOT_DEFINED

- QUERY_SCHEDULED

- QUERY_VALIDATING

2.9 getVersion

このAPIコールはWebサービス・コンポーネントのバージョンを提供します。Webサービス・インタフェースまたはAPIになんらかの変更が加えられると、バージョン番号が変更されます。バージョン番号を使用して、Webサービスで使用可能な機能を特定できます。

API

詳細

メソッド

Public String getVersion( ) { }

入力:

- Void

出力

- String

バージョン1.0には、Oracle BI Publisherとの統合のサポートが含まれます。

バージョン2.0には、Oracle BI Publisherとの統合およびOracle BI Enterprise Editionとの相互運用のサポートが含まれます。

例外

- なし

2.10 getViewerURL

このAPIコールは、同一マシン上にWebサービスとしてホストされたDiscoverer ViewerインスタンスのURLを提供します。クライアントはこのURLを使用して、それぞれのアプリケーションからDiscoverer Viewerを起動できます。

API

詳細

メソッド

Public String getViewerURL(SessionKey aSessionKey,
WorksheetKey aWorksheetkey, List aParameteSelectList){ }

入力:

- SessionKey

- WorksheetKey

- ParameterSelectのJava.util.List

出力

- String
Discoverer Viewerを起動するURL

例外

- java.rmi.RemoteException

2.11 getWorksheetData

このAPIコールは、SessionKeyおよびQueryKeyを受け付け、SubmitWorksheetQueryメソッドのQueryOptionで指定されたフォーマット・タイプでワークシート・データを提供します。結果セットが大きく、かつRowset XMLの場合、デフォルトで25行のデータが返されます。他のフォーマット・タイプの場合は、1MBのデータが返されます。残りのデータは、このメソッドを繰り返しコールすることによってページングできます。QueryResultsの終了フラグがFALSEの場合、このメソッドを再度コールして、データのページングを続行します。ページングは先頭から末尾への1方向のみ可能です。双方向のページングはサポートされていません。

API

詳細

メソッド

Public QueryResult getWorksheetData(SessionKey aSessionKey,
QueryKey aQueryKey){ }

入力:

- SessionKey

- QueryKey

出力

- QueryResult

例外

- java.rmi.RemoteException

次の表は、構造のフィールドを示しています。

構造

フィールド

QueryResult

- String data
行セットXML、HTML、PDF、XLSデータ。HTML、PDF、XLSデータはbase64でエンコードされます。

- Boolean finished
finishedがtrueの場合は、GetWorksheetDataをコールしません。

次の表に、エクスポート・タイプを示します。

エキスポート・タイプ

リレーショナル

OLAP

HTML

HTMLファイルは、転送する前に圧縮されbase64でエンコードされます。

HTMLファイルは、転送する前に圧縮されbase64でエンコードされます。

PDF

PDFファイルは、転送する前にbase64でエンコードされます。

PDFファイルは、転送する前にbase64でエンコードされます。

XLS

XLSファイルは、転送する前にbase64でエンコードされます。Discoverer Viewerの場合と同様、グラフはエクスポートされません。

XLSファイルは、転送する前にbase64で圧縮されます。グラフはエクスポートされます。

エクスポート・タイプがHTML、PDFまたはXLSの場合は次のとおりです。

- ワークシートにページ・アイテムがない場合、すべてのデータがエクスポートされます。

- ワークシートにページ・アイテムがある場合、OLAP接続とリレーショナル接続とでは、出力が次のように異なります。

- リレーショナル接続の場合
エクスポート・タイプがHTML、PDFまたはXLSの場合、ワークシートで選択されたページ・アイテムのワークシート・データが返されます。

- OLAP接続の場合
エクスポート・タイプがXLSの場合、ページ・アイテム値のすべての組合せについてワークシート・データが返されます。

エクスポート・タイプがHTMLまたはPDFの場合、選択されたページ・アイテムのワークシート・データが返されます。

このエクスポート動作は、configuration.xmlのisCurrentPageItemsExportForOLAPの設定が考慮されない点を除いて、Viewerと同様です。

行セットXML構造のサンプル

<BIData>
<Query id="1">
<PAGE>
<ROWSET>
<ROW>
<Dimension L="Time Dimension Values">1996</D>
< Dimension L="Product Dimension Values">TOTALPROD</D>
< Dimension L="Geography Dimension Values">WORLD</D>
< Dimension L="Channel Dimension Values">TOTALCHANNEL</D>
<Measure L="Dollar Sales">1.18247112042864E8</M>
<Measure L="Quota">5475441.87541972</M>
</ROW>
<ROW>
< Dimension L="Time Dimension Values">1997</D>
< Dimension L="Product Dimension Values">TOTALPROD</D>
< Dimension L="Geography Dimension Values">WORLD</D>
< Dimension L="Channel Dimension Values">TOTALCHANNEL</D>
<Measure L="Dollar Sales">4.64121127850704E7</M>
<Measure L="Quota">2917189.84519184</M>
</ROW>
</ROWSET>
</PAGE>
</Query>
</BIData>

2.12 getWorkSheetList

このAPIコールは、SessionKeyおよびWorkbookKeyを受け付け、WorkbookKeyで指定されたワークブック内のワークシートのリストを提供します。

API

詳細

メソッド

Public WorksheetList getWorkSheetList(SessionKey aSessionKey, WorkbookKey  aWorkbookKey ) {}

入力:

- SessionKey

- WorkbookKey

出力

- WorksheetList

例外

- java.rmi.RemoteException

次の表は、構造のフィールドを示しています。

構造

フィールド

WorksheetList

- Worksheetオブジェクトの配列

Worksheet

- WorksheetName

- WorksheetKey

- Parameterオブジェクトの配列
常にゼロ・サイズの配列です。

WorksheetName

- String name

WorksheetKey

- String wsDevKey
ワークシートを識別します。Discoverer Plus RelationalまたはDiscoverer Plus OLAPの場合は文字列です。

- WorkbookKey

2.13 isSessionValid

このAPIは、SessionKeyを受け付け、指定されたセッションが有効かどうかを示すブール値を返します。

API

詳細

メソッド

Public boolean isSessionValid( SessionKey sKey ) { }

入力:

- SessionKey

出力

- セッションが有効な場合はTRUE、無効な場合はFALSE

例外

- java.rmi.RemoteException

2.14 login

このAPIコールは、クライアント・アプリケーションとDiscoverer Webサービス間のユーザー・アイデンティティ伝播メカニズムを提供します。認証は、Discoverer Webサービスが呼び出されるたびに行われます。詳細は、「認証」を参照してください。クライアント・アプリケーションによって行われるログインごとに、Discoverer Webサービスは新規Discovererユーザー・セッションを作成してユーザーに割り当てます。このAPIコールは、UserCredentialおよびLocaleBeanを受け付け、一意なSessionKeyを返します。その後、SessionKeyは他のすべてのAPIコールに渡されます。クライアント・アプリケーション・インスタンスとDiscoverer Webサービスとの間にセッションが存在する場合、このAPIコールは新規HTTPセッションを作成しません。

API

詳細

メソッド

Public SessionKey login(UserCredential aUserCredential, LocaleBean aLocale) { }

入力:

- UserCredential
このオブジェクトは、Discovererユーザーの有効なログイン詳細を含む必要があります。

- LocaleBean
このオブジェクトは、Webサービス・セッションにロケール情報を渡します。デフォルトでは、ロケールは英語（en-US）です。

出力

- SessionKey

例外

- java.rmi.RemoteException

次の表は、構造のフィールドを示しています。

構造

フィールド

LocaleBean

- String language

- String country

- String variant

UserCredential

- Identifier anIdentifier

- DisplayName aDisplayName

Identifier

- String id

DisplayName

- String user

SessionKey

- String key
安全に生成されたランダムな英数字列。

2.15 logout

このAPIコールは、Discoverer WebサービスAPIにユーザー・セッションの完了を通知します。このコールは、ユーザー・セッションに関連付けられたDiscoverer専用セッションを解放し、Discovererセッションをセッション・プールに返します。

API

詳細

メソッド

Public void logout(SessionKey aSessionKey ) { }

入力:

- SessionKey

出力

- Void

例外

- java.rmi.RemoteException

2.16 requestQueryCancel

このAPIは、クエリー・リクエストを取り消し、そのリクエストに関連付けられたリソースを削除します。このメソッドは、発行されてもデータがまだフェッチされていないクエリーに対して使用します。クエリー・データがフェッチされていた場合は、リソースが削除されます。この非同期APIコールは即時に返されます。

API

詳細

メソッド

Public Void requestQueryCancel(SessionKey aSessionKey, QueryKey){ }

入力:

- SessionKey

出力

- Void

例外

- java.rmi.RemoteException

2.17 submitWorksheetQuery

このAPIコールは、実行対象として指定されたワークシートへのクエリーを発行します。この非同期APIコールは、クエリー実行の完了まで待機せず、即時に返されます。

API

詳細

メソッド

Public QueryKey submitWorksheetQuery(SessionKey aSessionKey, WorksheetKey aWorksheetkey, List aParameteSelectList, QueryOption aQueryOption){ }

入力:

- SessionKey

- WorksheetKey

- ParameterSelectのJava.util.List

- QueryOption

出力

- QueryKey

例外

- java.rmi.RemoteException

次の表は、構造のフィールドを示しています。

構造

フィールド

QueryKey

- String queryId
ランダムに生成されるセキュアな一意キー。

ParameterSelect

- ParameterKey

- ParameterValueオブジェクトの配列

QueryOption

- int NoOfRows
行セットXMLで返す行数。デフォルトは25。

- int NoOfRows
行セットXMLで返す行数。デフォルトは25。

- int chunksize
PDF、XLSおよびHTMLフォーマットの場合はデータ・チャンクのKB単位のサイズ。デフォルトは64KB。

- ResultType

- UserCredential
クエリー実行対象のユーザーのGUIDUsernameまたはSSOUsername。ユーザーが指定されていない場合、クエリーはログイン・ユーザーに対して実行されます。

LocaleBean

- String type

有効なタイプは次のとおりです。

- XMLROWSET

- HTML - base64でエンコードされたコンテンツがデータ文字列で返されます。

- PDF - base64でエンコードされたコンテンツがデータ文字列で返されます。

- XLS - base64でエンコードされたコンテンツがデータ文字列で返されます。

索引
A  C  D  E  J  O  S  T  W

A

APIコール

getConnectionList (), 2.2

getFolderEntryList (), 2.3

getLayoutMetaData (), 2.4

getParameterMetaData (), 2.5

getParameterValueList (), 2.6, 2.7

getQueryStatus (), 2.8

getVersion (), 2.9

getViewerURL (), 2.10

getWorksheetData (), 2.11

getWorkSheetList (), 2.12

isSessionValid (), 2.13

login (), 2.14

logout (), 2.15

requestQueryCancel (), 2.16

submitWorksheetQuery (), 2.17

認証, 1.5, 1.6 可用性の要件, 1.9

C

Webサービス・クライアント・スタブの作成, 1.12.4

D

問題の診断, 1.11

Discoverer WebサービスAPI

呼出しの必要条件, 1.12

アクセスの確認、1.12.2

E

エンドポイントURL, 1.3

エラー・メッセージ, 1.10

J

Discoverer Webサービスを呼び出す可能性のあるJavaクラスの例, 1.15

O

Oracle BI Discoverer Webサービス

概要, 1.2

S

セッション

保守, 1.7

プール・サイズ, 1.8

SOAPエンドポイントURL, 1.3 SOAPプロトコル, 1.1

T

イベントの標準フロー

詳細なタスク例, 1.14

リスト, 1.13

W

クライアント・アプリケーションの記述

生成済Webサービス・クライアント・スタブの使用, 1.12.6

WSDLフォーマット, 1.4

Oracle Legal Notices

Copyright Notice

Copyright © 1994-2014, Oracle and/or its affiliates. All rights reserved.

Trademark Notice

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group.

License Restrictions Warranty/Consequential Damages Disclaimer

This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.

Warranty Disclaimer

The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.

Restricted Rights Notice

If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable:

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

Hazardous Applications Notice

This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications.

Third-Party Content, Products, and Services Disclaimer

This software or hardware and documentation may provide access to or information on content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services.

Alpha and Beta Draft Documentation Notice

If this document is in preproduction status:

This documentation is in preproduction status and is intended for demonstration and preliminary use only. It may not be specific to the hardware on which you are using the software. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to this documentation and will not be responsible for any loss, costs, or damages incurred due to the use of this documentation.