ヘッダーをスキップ

Oracle XML Publisherユーザーズ・ガイド
リリース11i
B25754-01
目次へ
目次
前のページへ
前へ
次のページへ
次へ

アプリケーションへの文書ビューワの統合

この章では、次のトピックについて説明します。

概要

XMLパブリッシャの共通ユーザー・インタフェース文書ビューワ、つまり共通リージョンは、Oracle Applicationsフレームワーク(OAF)共有リージョンです。文書ビューワは、スタンドアロン・ページとして実行するか、またはアプリケーション・フロー内に統合できます。文書ビューワは、パラメータ・セットを受け入れて出力インラインをレンダリングするか、これをエクスポートします。

Oracle Applicationsフレームワークでのアプリケーション開発の詳細は、OracleMetaLinkのNote 269138.1『Oracle Applications Framework Developer's Guide』を参照してください。コンポーネントの再利用の詳細は、第2章「OA Framework Essentials」を参照してください。

パラメータ

ビューワ・リージョンは、パラメータ・セットとともにコールされます。これらのパラメータの値により、リージョンのレンダリング方法が決定されます。

パラメータ 説明
p_DataSource (必須)次のXMLデータ・ソース・タイプがサポートされています。
  • DATA_SOURCE_TYPE_REQUEST_ID: コンカレント・プログラム要求ID

  • DATA_SOURCE_TYPE_FILE: XMLデータ・ファイル

  • DATA_SOURCE_TYPE_BLOB: BlobDomain

  • DATA_SOURCE_TYPE_DOCUMENT: プレビュー用の最終的な文書


これらのタイプは、xdo.oa.common.DocumentHelperクラスで定義されます。
データ・ソースのタイプに応じて、追加パラメータが必要となる場合があります。これらのパラメータについては、次の項で説明します。
p_TemplateCode (オプション)NULLに設定した場合、UIにより、p_DataSourceCodeパラメータに基づいて、使用可能なテンプレートからテンプレートを選択するリストが提供されます。このリージョンに使用するテンプレートを指定するには、「テンプレート・コード」を入力します。テンプレートはテンプレート・マネージャに存在する必要があります。例: AR_CustomerListing
p_TemplateAppsShortName p_TemplateCodeがNULLでない場合は必須です。テンプレート・マネージャでテンプレートの割当て先となるアプリケーションの短縮名を入力します。例: AR
p_Locale (オプション)NULLの場合、UIにより、選択したテンプレートについて使用可能なロケールを選択できるリストが提供されます。デフォルトのテンプレート・ロケールを選択するには、「Default」という値を入力します。
p_OutputType (オプション)NULLの場合、UIにより、選択したテンプレートについて使用可能な出力タイプを選択できるリストが提供されます。有効な出力タイプは、テンプレート・タイプに応じて、RTF、PDF、EXCELおよびHTMLがあります。
p_XDORegionHeight XDO共通リージョン・ウィンドウの高さをパーセントで表したものです。例: 60%

データ・ソース依存パラメータ

次のパラメータは、パラメータp_DataSourceがDocumentHelper.DATA_SOURCE_TYPE_REQUEST_IDである場合に必要です。このモードを使用すると、ビューワによりコンカレント要求出力がレンダリングされます。

パラメータ 説明
p_RequestId コンカレント要求IDを入力します。

次のパラメータは、パラメータp_DataSourceがDocumentHelper.DATA_SOURCE_TYPE_FILEである場合に必要です。

パラメータ 説明
p_DataSourceCode テンプレート・マネージャ・リポジトリからDataSourceCodeを入力します。例: AR_CUSTOM_LISTING
p_DataSourceAppsShortName データ・ソース定義に対するアプリケーション短縮名を入力します。例: AR
p_AbsolutePath XMLデータ・ファイルの絶対パスを入力します。

次のパラメータは、パラメータp_DataSourceがDocumentHelper.DATA_SOURCE_TYPE_BLOBである場合に必要です。

パラメータ 説明
p_DataSourceCode テンプレート・マネージャ・リポジトリからDataSourceCodeを入力します。例: AR_CUSTOM_LISTING
p_DataSourceAppsShortName データ・ソース定義に対するアプリケーション短縮名を入力します。例: AR
XML_DATA_FILE XMLデータ・ファイルが格納されたBLOBDomainを入力します。

次のパラメータは、パラメータp_DataSourceがDocumentHelper.DATA_SOURCE_TYPE_DOCUMENTである場合に必要です。

パラメータ 説明
p_AbsolutePath 文書ファイルの絶対パスを入力します。
p_DocumentType 正しいコンテンツ・タイプを決定する文書タイプを入力します。有効な値は、PDF、RTF、EXCEL、HTMLです。

アプリケーション・ページでの文書ビューワの実装

この項では、OAフレームワーク・アプリケーションにおける共通リージョン文書ビューワの実装について説明します。

テンプレート、ロケールおよび形式オプションの指定

次の図では、「顧客リスト」レポートのコピーを示しています。このページには2つのリージョンがあります。上部のパラメータ・リージョンでは、パラメータ・セットを受け入れます。下部の出力リージョンでは、レポート出力をレンダリングするためにoracle.apps.xdo.oa.common.DocumentViewerRn.xmlが拡張されます。

テキストで説明されている画像

XMLパブリッシャのサポートされる形式(EXCEL、HTML、PDF、RTF)に出力をエクスポートするには、「エクスポート」ボタンを使用します。

この図に示す「顧客リスト」のコントローラ・コードは次のとおりです。

public void processRequest(OAPageContext pageContext, OAWebBean webBean)
  {
    super.processRequest(pageContext, webBean);
   pageContext.putParameter("p_DataSource",DocumentHelper.DATA_SOURCE_TYPE_BLOB);
    pageContext.putParameter("p_DataSourceCode","CUST_LISTING");
    pageContext.putParameter("p_DataSourceAppsShortName","XDO");
    pageContext.putParameter("p_XDORegionHeight","55%");
   }
 public void processFormRequest(OAPageContext pageContext, OAWebBean webBean)
  {
    super.processFormRequest(pageContext, webBean);

    OAApplicationModule am = pageContext.getApplicationModule(webBean);

     if (pageContext.getParameter("Go") != null)
    {
     String customerNameLow = pageContext.getParameter("CustomerNameLow");
     String customerNameHigh = pageContext.getParameter("CustomerNameHigh");
     String customerNoLow = pageContext.getParameter("CustomerNoLow");
     String customerNoHigh = pageContext.getParameter("CustomerNoHigh");
     String orderBy = pageContext.getParameter("OrderBy");

     Serializable[] tcParameter = {customerNameLow,
                                  customerNameHigh,
                                  customerNoLow,
                                  customerNoHigh,
                                  orderBy};

    BlobDomain result = (BlobDomain) am.invokeMethod("getXMLData",tcParameter);
    pageContext.putSessionValueDirect("XML_DATA_BLOB", result);

  }

固定テンプレートおよびロケール・オプションの使用

この実装では、リージョンが固定テンプレート「Customer_Listing」および「デフォルト」ロケールによりレンダリングされています。このリージョンについては「フォーマット」リストのみがレンダリングされています。

このオプションのコントローラ・コードは次のとおりです。

public void processRequest(OAPageContext pageContext, OAWebBean webBean)
  {
    super.processRequest(pageContext, webBean);

pageContext.putParameter("p_DataSource",DocumentHelper.DATA_SOURCE_TYPE_BLOB);

    pageContext.putParameter("p_DataSourceCode","CUST_LISTING");
    pageContext.putParameter("p_DataSourceAppsShortName","XDO");
    pageContext.putParameter("p_XDORegionHeight","55%");
    pageContext.putParameter("p_TemplateCode","Customer_Listing");
    pageContext.putParameter("p_TemplateAppsShortName","XDO");
    pageContext.putParameter("p_Locale","Default");


   }

文書ビューワの共通リージョンAPI

XMLパブリッシャの共通リージョンは、oracle.apps.xdo.oa.common.DocumentHelper.java APIに基づいています。このAPIには、文書をレンダリングおよびエクスポートする公開メソッド・セットが含まれます。XDO共通リージョンの外部でDocumentHelper.javaを使用することもできます。

次の機能を実行するためのメソッドについて、以降に説明します。

DocumentHelper.GetOutputURL

このメソッドによりURLが戻され、このURLはOAHTML Beanに関連付けて文書出力をレンダリングできます。

public static String getOutputURL(

    OAPageContext pageContext,
    String appShortName,
    String templateCode,
    InputStream inputStream,
    String outputType,
    Properties properties,
    String language,
    String territory)

このメソッドのサンプル実装は次のとおりです。

String redirectURL = DocumentHelper.getOutputURL(pageContext,
                                               appShortName,
                                               templateCode,
                                               dataInputStream,
                                               outputType,
                                               properties,
                                               language,
                                               territory );

 OAHTMLWebBean  outRegion = (OAHTMLWebBean)createWebBean(pageContext, HTML_WEB_BEAN, null, "IFRAME");
        outRegion.setHTMLAttributeValue("src",redirectURL);
        outRegion.setHTMLAttributeValue("width", "100%");
        outRegion.setHTMLAttributeValue("height"", "60%");
        outRegion.setHTMLAttributeValue("title ",templateCode);
        outRegion.setHTMLAttributeValue("name ",templateCode);
        pageContext.getPageLayoutBean().addIndexedChild(outRegion);

DocumentHelper.exportDocument

このメソッドは、文書をエクスポートするための「発行」ボタンなど、任意のイベントからコールできます。

public static void exportDocument(

    OAPageContext pageContext,
    String appShortName,
    String templateCode,
    String language,
    String territory,
    InputStream  inputStream,
    String outputType,
    Properties properties)