Fusion Middleware Oracle Business Intelligence Publisher開発者ガイド

11g リリース1(11.1.1)

B66710-02(原本部品番号:E22259-02)

目次

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

はじめに

- 対象読者

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

- 関連ドキュメントとその他のリソース

- 表記規則

第I部 Oracle BI PublisherのWebサービス

1 BI PublisherのWebサービスの概要

- 1.1 BI Publisher Webサービスについて

- 1.2 インセッション・メソッドについて

- 1.3 Webサービス・アプリケーションのデバッグ

2 Oracle BI PublisherのWebサービスのデータ型

- 2.1 ベース・データ型

- 2.2 XMLデータ型とJavaデータ型とのマッピング

- 2.3 複合データ型

- 2.3.1 ArrayOf_xsd_string

- 2.3.2 ArrayOfEMailDeliveryOption

- 2.3.3 ArrayOfFaxDeliveryOption

- 2.3.4 ArrayOfFTPDeliveryOption

- 2.3.5 ArrayOfItemData

- 2.3.6 ArrayOfJobInfo

- 2.3.7 ArrayOfJobOutput

- 2.3.8 ArrayOfJobOutputDelivery

- 2.3.9 ArrayOfLocalDeliveryOption

- 2.3.10 ArrayOfMetaData

- 2.3.11 ArrayOfParamNameValue

- 2.3.12 ArrayOfPrintDeliveryOption

- 2.3.13 ArrayOfString

- 2.3.14 ArrayOfTemplateFormatLabelValue

- 2.3.15 ArrayOfTemplateFormatLabelValues

- 2.3.16 ArrayOfWebDAVDeliveryOption

- 2.3.17 BIPDataSource

- 2.3.18 CatalogContents

- 2.3.19 CatalogObjectInfo

- 2.3.20 DeliveryChannels

- 2.3.21 DeliveryRequest

- 2.3.22 DeliveryServiceDefinition

- 2.3.23 EMailDeliveryOption

- 2.3.24 FaxDeliveryOption

- 2.3.25 FileDataSource

- 2.3.26 FTPDeliveryOption

- 2.3.27 ItemData

- 2.3.28 JDBCDataSource

- 2.3.29 JobDetail

- 2.3.30 JobFilterProperties

- 2.3.31 JobInfo

- 2.3.32 JobInfoList

- 2.3.33 JobOutput

- 2.3.34 JobOutputDelivery

- 2.3.35 JobOutputDeliverysList

- 2.3.36 JobOutputsList

- 2.3.37 JobStatus

- 2.3.38 LocalDeliveryOption

- 2.3.39 MetaData

- 2.3.40 MetaDataList

- 2.3.41 ParamNameValue

- 2.3.42 ParamNameValues

- 2.3.43 PrintDeliveryOption

- 2.3.44 ReportDataChunk

- 2.3.45 ReportDefinition

- 2.3.46 ReportRequest

- 2.3.47 ReportResponse

- 2.3.48 ScheduleRequest

- 2.3.49 TemplateFormatLabelValue

- 2.3.50 TemplateFormatsLabelValues

- 2.3.51 WebDAVDeliveryOption

3 ScheduleService

- 3.1 cancelSchedule()メソッド

- 3.2 cancelScheduleInSession()メソッド

- 3.3 deleteJobHistory()メソッド

- 3.4 deleteJobHistoryInSession()メソッド

- 3.5 deleteSchedule()メソッド

- 3.6 deleteScheduleInSession()メソッド

- 3.7 deliveryService()メソッド

- 3.8 deliveryServiceInSession()メソッド

- 3.9 downloadDocumentData()メソッド

- 3.10 downloadDocumentDataInSession()メソッド

- 3.11 downloadXMLData()メソッド

- 3.12 downloadXMLDataInSession()メソッド

- 3.13 getAllScheduledReport()メソッド

- 3.14 getAllScheduledReportHistory()メソッド

- 3.15 getAllScheduledReportHistoryInSession()メソッド

- 3.16 getAllScheduledReportInSession()メソッド

- 3.17 getDeliveryServiceDefinition()メソッド

- 3.18 getDeliveryServiceDefinitionInSession()メソッド

- 3.19 getDocumentData()メソッド

- 3.20 getDocumentDataInSession()メソッド

- 3.21 getScheduledJobInfo()メソッド

- 3.22 getScheduledJobInfoInSession()メソッド

- 3.23 getScheduledReportDeliveryInfo()メソッド

- 3.24 getScheduledReportDeliveryInfoInSession()メソッド

- 3.25 getScheduledReportOutputInfo()メソッド

- 3.26 getScheduledReportOutputInfoInSession()メソッド

- 3.27 getXMLData()メソッド

- 3.28 getXMLDataInSession()メソッド

- 3.29 purgeJobHistory()メソッド

- 3.30 purgeJobHistoryInSession()メソッド

- 3.31 resendScheduledReport()メソッド

- 3.32 resendScheduledReportInSession()メソッド

- 3.33 resumeSchedule()メソッド

- 3.34 resumeScheduleInSession()メソッド

- 3.35 scheduleReport()メソッド

- 3.36 scheduleReportInSession()メソッド

- 3.37 suspendSchedule()メソッド

- 3.38 suspendScheduleInSession()メソッド

4 ReportService

- 4.1 createReport()メソッド

- 4.2 createReportInSession()メソッド

- 4.3 downloadReportDataChunk()メソッド

- 4.4 downloadReportDataChunkInSession()メソッド

- 4.5 getReportDefinition()メソッド

- 4.6 getReportDefinitionInSession()メソッド

- 4.7 getReportParameters()メソッド

- 4.8 getReportParametersInSession()メソッド

- 4.9 getReportSampleData()メソッド

- 4.10 getReportSampleDataInSession()メソッド

- 4.11 getTemplate()メソッド

- 4.12 getTemplateInSession()メソッド

- 4.13 getTemplateParameters()メソッド

- 4.14 getTemplateParameterInSession()メソッド

- 4.15 getXDOSchema()メソッド

- 4.16 getXDOSchemaInSession()メソッド

- 4.17 removeTemplateForReport()メソッド

- 4.18 removeTemplateForReportInSession()メソッド

- 4.19 runReport()メソッド

- 4.20 runReportInSession()メソッド

- 4.21 updateReportDefinition()メソッド

- 4.22 updateReportDefinitionInSession()メソッド

- 4.23 updateTemplateForReport()メソッド

- 4.24 updateTemplateForReportInSession()メソッド

- 4.25 updateXLIFFForReport()メソッド

- 4.26 updateXLIFFForReportInSession()メソッド

- 4.27 uploadReportDataChunk()メソッド

- 4.28 uploadReportDataChunkInSession()メソッド

- 4.29 uploadTemplateForReport()メソッド

- 4.30 uploadTemplateForReportInSession()メソッド

- 4.31 uploadXLIFFForReport()メソッド

- 4.32 uploadXLIFFForReportInSession()メソッド

5 SecurityService

- 5.1 assignRolesToUser()メソッド

- 5.2 createRole()メソッド

- 5.3 createUser()メソッド

- 5.4 deleteRole()メソッド

- 5.5 deleteUser()メソッド

- 5.6 getBIPHTTPSessionInterval()メソッド

- 5.7 getObjectSecurityXML()メソッド

- 5.8 getSecurityModel()メソッド

- 5.9 hasObjectAccess()メソッド

- 5.10 hasObjectAccessInSession()メソッド

- 5.11 impersonate()メソッド

- 5.12 isUserExists()メソッド

- 5.13 login()メソッド

- 5.14 logout()メソッド

- 5.15 notifyBIEEPreferencesUpdated()メソッド

- 5.16 notifyBIEEPreferencesUpdatedWithString()メソッド

- 5.17 removeRolesFromUser()メソッド

- 5.18 updateRole()メソッド

- 5.19 updateUser()メソッド

- 5.20 validateLogin()メソッド

6 CatalogService

- 6.1 copyObject()メソッド

- 6.2 copyObjectInSession()メソッド

- 6.3 createFolder()メソッド

- 6.4 createFolderInSession()メソッド

- 6.5 createObject()メソッド

- 6.6 createObjectInSession()メソッド

- 6.7 deleteObject()メソッド

- 6.8 deleteObjectInSession()メソッド

- 6.9 downloadObject()メソッド

- 6.10 downloadObjectInSession()メソッド

- 6.11 downloadXLIFF()メソッド

- 6.12 downloadXLIFFInSession()メソッド

- 6.13 getFolderContents()メソッド

- 6.14 getFolderContentsInSession()メソッド

- 6.15 getObject()メソッド

- 6.16 getObjectInfo()メソッド

- 6.17 getObjectInfoInSession()メソッド

- 6.18 getObjectInSession()メソッド

- 6.19 objectExist()メソッド

- 6.20 objectExistInSession()メソッド

- 6.21 renameObject()メソッド

- 6.22 renameObjectInSession()メソッド

- 6.23 updateObject()メソッド

- 6.24 updateObjectInSession()メソッド

- 6.25 uploadObject()メソッド

- 6.26 uploadObjectInSession()メソッド

- 6.27 uploadXLIFF()メソッド

- 6.28 uploadXLIFFInSession()メソッド

第II部 Oracle BI Publisher Java API

7 BI Publisher Java APIの使用

- 7.1 BI PublisherのコアAPI

- 7.2 前提条件

- 7.3 ライブラリの取得

- 7.4 PDFフォーム処理エンジン

- 7.4.1 PDFフォーム処理エンジンの概要

- 7.4.2 PDFテンプレートとXMLデータのマージ

- 7.4.3 入力/出力ファイル名を使用したXMLデータとPDFテンプレートのマージ

- 7.4.4 入力/出力ストリームを使用したXMLデータとPDFテンプレートのマージ

- 7.4.5 XMLデータ文字列とPDFテンプレートのマージ

- 7.4.6 フィールド名リストの取得

- 7.4.7 >XFDFデータの生成

- 7.4.8 XSLTを使用したXMLデータのXFDF形式への変換

- 7.5 RTFプロセッサ・エンジン

- 7.5.1 XLIFFファイルとのペアリング

- 7.5.2 XSLの生成

- 7.6 FOプロセッサ・エンジン

- 7.6.1 FOプロセッサの主な機能

- 7.6.2 XMLファイルおよびXSLファイルからの出力の生成

- 7.6.3 ファイル名を使用した出力の生成

- 7.6.4 ストリームを使用した出力の生成

- 7.6.5 XSLテンプレートおよびXMLデータの配列からの出力の生成

- 7.6.6 XSL-FOユーティリティの使用

- 7.7 PDFドキュメント・マージ機能

- 7.7.1 PDFドキュメントのマージ

- 7.7.2 テキストまたはイメージの透かしの設定

- 7.8 PDF製本プロセッサ

- 7.8.1 使用方法

- 7.8.2 XML制御ファイル

- 7.8.3 コマンドライン・オプション

- 7.8.4 APIメソッド・コール

- 7.9 PDFデジタル署名エンジン

- 7.9.1 PDFデジタル署名エンジンの概要

- 7.9.2 PDFドキュメントの署名

- 7.9.3 署名済PDFドキュメントの配信

- 7.9.4 署名済PDFドキュメントの検証

- 7.10 eTextプロセッサ

- 7.10.1 RTF eTextテンプレートのXSLへの変換

- 7.10.2 EDIおよびEFT伝送用のテキスト出力の作成

- 7.11 ドキュメント・プロセッサ・エンジン

- 7.11.1 ドキュメント・プロセッサXMLファイルの階層と要素

- 7.11.2 XMLファイルのサンプル

- 7.11.3 プロセッサの起動

- 7.12 BI Publisherのプロパティ

- 7.12.1 プロパティの設定

- 7.13 バーコードの拡張書式設定

8 配信マネージャJava APIの使用

- 8.1 配信マネージャの使用

- 8.2 電子メールによるドキュメントの配信

- 8.2.1 複数の受信者の定義

- 8.2.2 1つのリクエストへの複数のドキュメントの添付

- 8.2.3 HTMLドキュメントの添付

- 8.2.4 電子メールの最上部への添付の表示

- 8.2.5 電子メールの本文としてのStringオブジェクトの使用

- 8.2.6 電子メールの本文としてのHTMLドキュメントの使用

- 8.2.7 認証用ユーザー名とパスワードの入力

- 8.3 プリンタへのドキュメントの配信

- 8.3.1 HTTPプロキシ・サーバー経由での印刷

- 8.4 ローカル・プリンタへのドキュメントの配信

- 8.5 Faxサーバーへのドキュメントの配信

- 8.6 RightFaxサーバーへのドキュメントの配信

- 8.7 WebDAVサーバーへのドキュメントの配信

- 8.8ファイル転送プロトコル(FTP)によるドキュメントの配信

- 8.9 Secure FTPによるドキュメントの配信

- 8.9.1 認証モード

- 8.10 Hypertext Transfer Protocol(HTTP)によるドキュメントの配信

- 8.11 AS2によるドキュメントの配信

- 8.11.1 配信通知

- 8.11.2 同期

- 8.11.3 ドキュメントの署名

- 8.11.4 ドキュメントの暗号化

- 8.12 外部コマンドによるドキュメントの配信

- 8.13 ローカル・ファイル・システムへのドキュメントの配信

- 8.14 ダイレクト・モードとバッファリング・モード

- 8.14.1 ダイレクト・モード

- 8.14.2 バッファリング・モード

- 8.15 非同期の配信リクエスト

- 8.16 ドキュメントのフィルタのサポート

- 8.16.1 PDFからPostScriptへの変換フィルタ

- 8.17 日付式のサポート

- 8.18 国際化のサポート

- 8.18.1 SMTP

- 8.18.2 IPP

- 8.18.3 WebDAV

- 8.18.4 FTP

- 8.18.5 HTTP

- 8.19 グローバル・プロパティの設定

- 8.20 カスタム配信チャネルの追加

- 8.20.1 配信プロパティの定義

- 8.20.2 DeliveryRequestインタフェースの実装

- 8.20.3 DeliveryRequestHandlerインタフェースの実装

- 8.20.4 DeliveryRequestFactoryインタフェースの実装

- 8.20.5 DeliveryManagerへのカスタムなDeliveryRequestFactoryの登録

- 8.21 構成ファイル・サポート

- 8.21.1 配信チャネルに対する複数のサーバーの定義

- 8.21.2 配信チャネルに対するデフォルト・サーバーの指定

- 8.21.3 サポートされている構成ファイルのプロパティと要素

第III部 その他のトピック

9 ビュー・オブジェクトをデータソースとしてBI Publisherで使用可能にするには

- 9.1 前提条件

- 9.2 アプリケーション・モジュールの構成

- 9.3 web.xmlの更新

- 9.4 weblogic.xmlの更新

- 9.5 アプリケーション・モジュールのデプロイ

- 9.6 providers.xmlファイルの更新

10 After-Reportトリガーの設定

- 10.1 After-Reportトリガーの概要

- 10.1.1 制限事項

- 10.1.2 After-Reportトリガーのレポートへの追加に対するプロセスの概要

- 10.2 After-Reportトリガーの設定

- 10.2.1 HTTPサーブレットの登録

- 10.2.2 サンプル・プログラム

索引

Oracle® Fusion Middleware

Oracle Business Intelligence Publisher開発者ガイド

11g リリース1(11.1.1)

B66710-02(原本部品番号:E22259-02)

2012年4月

JavaサービスおよびWebサービスのアプリケーション・プログラミング・インタフェースを使用して、Oracle Business Intelligence Publisherの機能をカスタム・アプリケーションに取り込む方法を説明します。

Oracle Fusion Middleware Oracle Business Intelligence Publisher開発者ガイド, 11g リリース1(11.1.1)

B66710-02

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

原本著者: Leslie Grumbach Studdard

原本協力者: Joe Paradise

原本協力者: Oracle Business Intelligence Publisher開発、製品管理および品質保証チーム

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントが、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供される場合は、次のNoticeが適用されます。

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.

このソフトウェアまたはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアまたはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用する際、このソフトウェアまたはハードウェアを安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle およびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXはThe Open Groupの登録商標です。

このソフトウェアまたはハードウェアおよびドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。

はじめに

Oracle Business Intelligence Publisher(BI Publisher)は、包括的な企業向けビジネス・インテリジェンス・ツールであり、インフラストラクチャです。これには、スケーラブルで効率的な問合せとデータの生成エンジン、企業向けレポート・ドキュメント生成、対話型レポートの利用、スケジュールされたレポートの実行と配信などの機能が備わっています。Oracle BI Publisherは、組織を運営するのに必要なすべての運用ドキュメントを記述、生成、配信し、様々なユーザーに多くの手掛かりを提供できるように設計されています。

Oracle BI Publisherには、共通のサービス指向アーキテクチャ(SOA)およびJava APIが用意されていて、データのアクセスと生成、ドキュメントの生成と配信、セキュリティ・モデルとユーザー・プリファレンスおよびWebベース管理に対応します。Oracle BI Publisherには、データ生成をレポート生成とレンダリングから区別する多層アーキテクチャでスケーラビリティとパフォーマンスが備わっています。また、Oracle BI Publisheは高機能のデータおよびドキュメントのキャッシュ・サービスを提供し、高可用性のためにクラスタ化したり、大容量の要件をサポートするためにスケールアウトすることもできます。

このガイドでは、Oracle BI Publisherに備わったデータ・アクセス、ドキュメント生成および配信に対応するWebサービスやJava APIでカスタム・アプリケーションの開発について説明します。

対象読者

このガイドは、Oracle BI Publisher WebサービスとJava APIを使用してカスタム・アプリケーションを開発する開発者を対象としています。

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

オラクル社のアクセシビリティへの取組みの詳細は、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 Business Intelligenceドキュメントの一覧については、Oracle Business Intelligenceドキュメント・ライブラリを参照してください。

さらに、Oracle Business Intelligence関連オンライン・トレーニング・リソースについては、Oracle Learning Libraryにアクセスしてください。

表記規則

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

規則

意味

太字

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

イタリック体

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

固定幅フォント

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

第I部

Oracle BI PublisherのWebサービス

この部では、Oracle BI PublisherのWebサービスの使用法について説明します。次の章で構成されています。

- 第1章「BI PublisherのWebサービスの概要」

- 第2章「Oracle BI PublisherのWebサービスのデータ型」

- 第3章「ScheduleService」

- 第4章「ReportService」

- 第5章「SecurityService」

- 第6章「CatalogService」

1 BI PublisherのWebサービスの概要

この章では、Oracle BI PublisherのWebサービスの概要について説明します。

内容は次のとおりです。

- 第1.1項「BI Publisher Webサービスについて」

- 第1.2項「インセッション・メソッドについて」

- 第1.3項「Webサービス・アプリケーションのデバッグ」

1.1 BI Publisher Webサービスについて

Oracle BI Publisher Webサービスでは、データ型とサービスがサポートされています。データ型には、ベース・データ型と複合データ型があります。Oracle BI Publisher Webサービスでは、XMLデータ型とJavaデータ型とのマッピングもサポートされています。サポートされているデータ型とマッピングの詳細は、第2章「Oracle BI PublisherのWebサービスのデータ型」を参照してください。

Oracle BI Publisherでは、次のパブリックWebサービスが提供されます。

- ScheduleService: レポート・ジョブのスケジュール作成、レポート出力の取得、レポート履歴の管理など、スケジューラのタスクを実行するメソッドが提供されます。第3章「ScheduleService」を参照してください。

- ReportService: レポートの実行、レポートに関する情報の取得、レポートの定義および変更、レポート・テンプレートのアップロードなど、BI PublisherのReportオブジェクトとやり取りするメソッドが提供されます。第4章「ReportService」を参照してください。

- SecurityService: 認証、偽装、ログイン、ログアウト、アカウント管理など、セキュリティ操作に対応するメソッドが提供されます。第5章「SecurityService」を参照してください。

- CatalogService: フォルダ、レポート、データ型、スタイル・テンプレート、サブテンプレートなど、レポート・カタログ・オブジェクトを管理する(作成、コピー、アップロード、ダウンロード、削除)メソッドが提供されます。第6章「CatalogService」を参照してください。

これらのサービスの多くのメソッドは、ペアで提供されます。1番目のサービスでは、ログインの資格証明が必要なステートレス操作がサポートされます。2番目のサービスでは、既存ユーザーのセッションIDを使用するインセッション操作がサポートされています。セッションIDは、SecurityServiceのlogin()メソッドまたはimpersonate()メソッドを介して取得されます。詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

1.2 インセッション・メソッドについて

Oracle BI Publisher Webサービスには、deliveryServiceInSession()メソッド、createReportInSession()メソッド、copyObjectInSession()メソッドなど、インセッション・メソッドが用意されています。インセッション・メソッドを使用すると、アクティブなユーザー・セッションに対する様々な操作を実行できます。そのため、これらのメソッドはbipSessionToken文字列に依存しています。この文字列は、専用トークンとして機能し、ユーザーのログイン時に生成されます。

インセッション・メソッドを活用するには、ユーザーはSecurityService login()メソッドまたはimpersonate()メソッドを介してログインする必要があります。SecurityServiceのユーザー認証が正常に完了すると、BI PublisherサーバーはbipSessionToken文字列を生成します。このbipSessionToken文字列を使用すると、このガイドに記載されているすべてのインセッション操作を実行できます。

1.3 Webサービス・アプリケーションのデバッグ

Webサービス開発者として、SOAPリクエスト・メッセージを表示する必要が発生する場合があります。SOAPリクエスト・メッセージは、これらのリクエスト・メッセージに対するSOAPレスポンスとともにWebサービスを起動するために使用されます。これを実行するには、Apache Axis TCP Monitorユーティリティを使用します。このユーティリティを使用すると、SOAPメッセージ・フローを監視できます。その際、特別な構成の実行、サーバーの再起動、BI Publisherが稼働しているコンピュータへのアクセス権の取得などは必要ありません。

TCP Monitorをインストールするには、Apache Webサイト(apache.org)にアクセスし、axis.jarをコンピュータにダウンロードします。

TCP Monitorを起動するには、コマンド・ウィンドウを開き、axis.jarをダウンロードしたディレクトリにcdコマンドで移動します。次に、コマンド・ラインから次のコマンドを入力します。

% java -classpath axis.jar org.apache.axis.utils.tcpmon

次の画面が表示されます。

図1-1 サンプルAxis TCP Monitorウィンドウ

TCP Monitorを構成するには、次の手順を実行します。

1. 「Listen Port #」フィールドに、コンピュータで使用されていないローカル・ポートを入力します。TCP Monitorはそれを使用して、メッセージをリスニングします。たとえば、7777などです。

2. 「Target Hostname」フィールドに、BI Publisherを稼働しているサーバーのホスト名を入力します。たとえば、mypublisher.foobar.com.exampleなどです。

3. 「Target Port #」フィールドに、BI Publisherサーバーに使用されるポートを入力します。たとえば、9704などです。

4. 「追加」ボタンをクリックします。ローカル・コンピュータのリスニング・ポート番号をリスニングする新規モニターが記載された新しいタブが表示されます。

これで、ブラウザ、SOAPユーティリティまたはアプリケーションを起動して、ローカル・コンピュータのリスニング・ポート(例: localmachine:7777/xmlpserver)を使用して、ローカル・コンピュータに対するコマンドを実行できます。TCP Monitorは、これらのリクエストをターゲット・ホストおよびポートにルーティングします。ここには、SOAPリクエスト・メッセージとレスポンス・メッセージが表示されます。これによってデバッグが容易になります。

2Oracle BI PublisherのWebサービスのデータ型

この章では、Oracle BI PublisherのWebサービスが使用または定義するデータ型の詳細について説明します。

この章には次の項目があります。

- 第2.1項「ベース・データ型」

- 第2.2項「XMLデータ型とJavaデータ型とのマッピング」

- 第2.3項「複合データ型」

2.1 ベース・データ型

Oracle BI PublisherのWebサービスでは、次のベース・データ型が使用されます。

表2-1 ベース・データ型

ベース型

説明

例

xsd:boolean

ブール

true、false

xsd:dateTime

日付と時間

2007-10-26T21:32:52

xsd:int

整数

23

xsd:string

文字列

Home/Shared/HR Reports/Salary Report

xsd:base64Binary

64ビットのバイナリ値

PDFやHTMLのレポートなどのドキュメント

2.2 XMLデータ型とJavaデータ型とのマッピング

BI PublisherのWebサービスでは、ドキュメント/リテラル形式が使用されます。WebサービスのXMLスキーマ・データ型とJavaデータ型のマッピングは、SOAP開発環境によって異なります。次の表に、Oracle JDeveloper環境におけるマッピングを示します。

表2-2 XMLデータ型とJavaデータ型とのマッピング

ベース型

Oracle JDeveloper

xsd:boolean

java.lang.Boolean

xsd:dateTime

java.util.Date

xsd:int

java.lang.Integer

xsd:string

java.lang.String

xsd:base64Binary

java.lang.Byte

2.3 複合データ型

Oracle BI PublisherのWebサービスは、次の複合データ型を定義して使用します。

- ArrayOf_xsd_string

- ArrayOfEMailDeliveryOption

- ArrayOfFaxDeliveryOption

- ArrayOfFTPDeliveryOption

- ArrayOfItemData

- ArrayOfJobInfo

- ArrayOfJobOutput

- ArrayOfJobOutputDelivery

- ArrayOfLocalDeliveryOption

- ArrayOfMetaData

- ArrayOfParamNameValue

- ArrayOfPrintDeliveryOption

- ArrayOfString

- ArrayOfTemplateFormatLabelValue

- ArrayOfTemplateFormatLabelValues

- ArrayOfWebDAVDeliveryOption

- BIPDataSource

- CatalogContents

- CatalogObjectInfo

- DeliveryChannels

- DeliveryRequest

- DeliveryServiceDefinition

- EMailDeliveryOption

- FaxDeliveryOption

- FileDataSource

- FTPDeliveryOption

- ItemData

- JDBCDataSource

- JobDetail

- JobFilterProperties

- JobInfo

- JobInfoList

- JobOutput

- JobOutputDelivery

- JobOutputDeliverysList

- JobOutputsList

- JobStatus

- LocalDeliveryOption

- MetaData

- MetaDataList

- ParamNameValue

- ParamNameValues

- PrintDeliveryOption

- ReportDataChunk

- ReportDefinition

- ReportRequest

- ReportResponse

- ScheduleRequest

- TemplateFormatLabelValue

- TemplateFormatsLabelValues

- WebDAVDeliveryOption

2.3.1 ArrayOf_xsd_string

このデータ型は、カタログ内に含まれるオブジェクトなどの文字列の配列を保持します。

表2-3 ArrayOf_xsd_stringにより使用可能になるフィールド

フィールド

説明

String[] item

文字列の配列。

2.3.2 ArrayOfEMailDeliveryOption

このデータ型は、EMailDeliveryOptionオブジェクトの配列を保持します。

表2-4 ArrayOfEMailDeliveryOptionにより使用可能になるフィールド

フィールド

説明

EMailDeliveryOption[] item

第2.3.23項「EMailDeliveryOption」を参照してください。

2.3.3 ArrayOfFaxDeliveryOption

このデータ型は、FaxDeliveryOptionオブジェクトの配列を保持します。

表2-5 ArrayOfFaxDeliveryOptionにより使用可能になるフィールド

フィールド

説明

FaxDeliveryOption[] item

第2.3.24項「FaxDeliveryOption」を参照してください。

2.3.4 ArrayOfFTPDeliveryOption

このデータ型は、FTPDeliveryOptionオブジェクトの配列を保持します。

表2-6 ArrayOfFTPDeliveryOptionにより使用可能になるフィールド

フィールド

説明

FTPDeliveryOption[] item

第2.3.26項「FTPDeliveryOption」を参照してください。

2.3.5 ArrayOfItemData

このデータ型は、カタログ内に含まれるオブジェクトの文字列の配列を保持します。

表2-7 ArrayOfItemDataにより使用可能になるフィールド

フィールド

説明

ItemData[] item

第2.3.27項「ItemData」を参照してください。

2.3.6 ArrayOfJobInfo

このデータ型は、JobInfoオブジェクトの配列を保持します。

表2-8 ArrayOfJobInfoにより使用可能になるフィールド

フィールド

説明

JobInfo[] item

第2.3.31項「JobInfo」を参照してください。

2.3.7 ArrayOfJobOutput

このデータ型は、JobOutputオブジェクトの配列を保持します。

表2-9 ArrayOfJobOutputにより使用可能になるフィールド

フィールド

説明

JobOutput[] item

第2.3.33項「JobOutput」を参照してください。

2.3.8 ArrayOfJobOutputDelivery

このデータ型は、JobOutputDeliveryオブジェクトの配列を保持します。

表2-10 ArrayOfJobOutputDeliveryにより使用可能になるフィールド

フィールド

説明

JobOutputDelivery[] item

第2.3.34項「JobOutputDelivery」を参照してください。

2.3.9 ArrayOfLocalDeliveryOption

このデータ型は、LocalDeliveryOptionオブジェクトの配列を保持します。

表2-11 ArrayOfLocalDeliveryOptionにより使用可能になるフィールド

フィールド

説明

LocalDeliveryOption[] item

第2.3.38項「LocalDeliveryOption」を参照してください。

2.3.10 ArrayOfMetaData

このデータ型は、MetaDataオブジェクトの配列を保持します。

表2-12 ArrayOfMetaDataにより使用可能になるフィールド

フィールド

説明

MetaData[] item

第2.3.39項「MetaData」を参照してください。

2.3.11 ArrayOfParamNameValue

このデータ型は、ParamNameValueオブジェクト(フィールド名と値のペア)の配列を保持します。

表2-13 ArrayOfParamNameValueにより使用可能になるフィールド

フィールド

説明

ParamNameValue[] item

第2.3.41項「ParamNameValue」を参照してください。

2.3.12 ArrayOfPrintDeliveryOption

このデータ型は、PrintDeliveryOptionオブジェクトの配列を保持します。

表2-14 ArrayOfPrintDeliveryOptionにより使用可能になるフィールド

フィールド

説明

PrintDeliveryOption[] item

第2.3.43項「PrintDeliveryOption」を参照してください。

2.3.13 ArrayOfString

このデータ型は、文字列の配置を保持します。

表2-15 ArrayOfStringにより使用可能になるフィールド

フィールド

説明

String[] item

文字列の配列。

2.3.14 ArrayOfTemplateFormatLabelValue

このデータ型は、TemplateFormatLabelValueオブジェクト(テンプレート・ラベルと値のペア)の配列を保持します。

表2-16 ArrayOfTemplateFormatLabelValueにより使用可能になるフィールド

フィールド

説明

TemplateFormatLabelValue[] item

第2.3.49項「TemplateFormatLabelValue」を参照してください。

2.3.15 ArrayOfTemplateFormatLabelValues

このデータ型は、TemplateFormatsLabelValuesオブジェクトの配列を保持します。ArrayOfTemplateFormatsLabelValuesは、ReportDefinition複合データ・タイプの一部として、使用可能なテンプレート・フォーマットを記述する特定のフィールドを格納します。

表2-17 ArrayOfTemplateFormatLabelValueにより使用可能になるフィールド

フィールド

説明

TemplateFormatsLabelValues[] item

第2.3.50項「TemplateFormatsLabelValues」を参照してください。

2.3.16 ArrayOfWebDAVDeliveryOption

このデータ型は、WebDAVDeliveryOptionオブジェクトの配列を保持します。

表2-18 ArrayOfWebDAVDeliveryOptionにより使用可能になるフィールド

フィールド

説明

WebDAVDeliveryOption[] item

第2.3.51項「WebDAVDeliveryOption」を参照してください。

2.3.17 BIPDataSource

このデータ型は、runReport()メソッド使用時にデータソースを動的に指定します。第4.19項「runReport()メソッド」を参照してください。

BIPDataSourceはReportRequest複合データ型により使用されます。

次の表にフィールドを示します。

表2-19 BIPDataSourceにより使用可能になるフィールド

フィールド

説明

JDBCDataSource JDBCDataSource

JDBCデータソースを指定する要素が格納されています。第2.3.28項「JDBCDataSource」を参照してください。

FileDataSource fileDataSource

ファイル・データソースを指定する要素が格納されています。第2.3.25項「FileDataSource」を参照してください。

2.3.18 CatalogContents

このデータ型は、カタログ内に含まれるオブジェクトを保持します。

表2-20 CatalogContentsにより使用可能になるフィールド

フィールド

説明

ArrayOfItemData catalogContents

第2.3.5項「ArrayOfItemData」を参照してください。

2.3.19 CatalogObjectInfo

このデータ型は、カタログ内のオブジェクに関する情報を戻します。このデータ型は、次のメソッドにより戻されます。

- getObjectInfo()メソッド

- getObjectInfoInSession()メソッド

表2-21 CatalogObjectInfoにより使用可能になるフィールド

フィールド

説明

String accessPermissions

カタログ・オブジェクトにアクセスする際に必要な権限。

String[] availableLocales

カタログ・オブジェクトで使用できるロケールの配列。

long creationDate

カタログ・オブジェクトの作成日。

String description

カタログ・オブジェクトの説明。

String displayName

カタログ・オブジェクトの表示名。

long lastModifiedDate

カタログ・オブジェクトが最後に変更された日付。

String objectAbsolutePath

カタログ・オブジェクトへの絶対パス。

String objectName

カタログ・オブジェクトの名前。

String objectSubType

カタログ・オブジェクトのサブタイプ。

Folderオブジェクトの場合、オブジェクトのタイプとサブタイプはFolder。

Reportオブジェクトの場合、オブジェクトのタイプはReportItem、サブタイプはxdo。

Data Modelオブジェクトの場合、オブジェクトのタイプはReportItem、サブタイプはxdm。

Style Templateオブジェクトの場合、オブジェクトのタイプはStyleTemplate、サブタイプはRTFまたはXSL。

Sub Templateオブジェクトの場合、オブジェクトのタイプはSubTemplate、サブタイプはRTFまたはXSL。

String objectType

カタログ・オブジェクトのタイプです。有効な値は次のとおりです。

xdm (データ・モデル)

xdo (レポート)

xsb (サブテンプレート)

xss (スタイル・テンプレート)

String owner

カタログ・オブジェクトの所有者。

2.3.20 DeliveryChannels

このデータ型は、レポートを複数の配信先に配信するための仕様を定義します。

このデータ型を使用するのは、DeliveryRequest複合データ型とScheduleRequest複合データ型です。

次の表にフィールドを示します。

表2-22 DeliveryChannelsにより使用可能になるフィールド

フィールド

説明

ArrayOfEMailDeliveryOption emailOptions

第2.3.2項「ArrayOfEMailDeliveryOption」を参照してください。

ArrayOfFaxDeliveryOption faxOptions

第2.3.3項「ArrayOfFaxDeliveryOption」を参照してください。

ArrayOfFTPDeliveryOption ftpOptions

第2.3.4項「ArrayOfFTPDeliveryOption」を参照してください。

ArrayOfLocalDeliveryOption localOptions

第2.3.9項「ArrayOfLocalDeliveryOption」を参照してください。

ArrayOfPrintDeliveryOption printOptions

第2.3.12項「ArrayOfPrintDeliveryOption」を参照してください。

ArrayOfWebDAVDeliveryOption webDAVOption

第2.3.16項「ArrayOfWebDAVDeliveryOption」を参照してください。

2.3.21 DeliveryRequest

このデータ型は、レポートを複数の配信先に配信するための仕様を定義します。

次の表にフィールドを示します。

表2-23 DeliveryRequestにより使用可能になるフィールド

フィールド

説明

String contentType

生成されるドキュメントのコンテンツ・タイプです。指定可能な値: "text/html;charset=UTF-8" "text/plain;charset=UTF-8" "application/pdf" "application/vnd.ms-powerpoint" "application/vnd.ms-powerpoint" "application/vnd.ms-excel" "application/msword" "application/x-shockwave-flash" "text/xml" "message/rfc822"

DeliveryChannels deliveryChannels

第2.3.20項「DeliveryChannels」を参照してください。

byte[] documentData

出力されるドキュメント。

BIPDataSource dynamicDataSource

第2.3.17項「BIPDataSource」を参照してください。

2.3.22 DeliveryServiceDefinition

このデータ型は、getDeliveryServiceDefinition()メソッドに対するレスポンスでデータを戻します。このメソッドを使用して、BI Publisher用に設定された配信サーバーに関する情報を取得します。

次の表にフィールドを示します。

表2-24 DeliveryServiceDefinitionにより使用可能になるフィールド

フィールド

説明

ArrayOf_xsd_String EMailServerNames

ArrayOf_xsd_stringデータ型で返された電子メール・サーバー名のリスト。第2.3.1項「ArrayOf_xsd_string」を参照してください。

ArrayOf_xsd_String FTPServerNames

ArrayOf_xsd_stringデータ型で返されたFTPサーバー名のリスト。第2.3.1項「ArrayOf_xsd_string」を参照してください。

ArrayOf_xsd_String HTTPServerNames

ArrayOf_xsd_stringデータ型で返されたHTTPサーバー名のリスト。第2.3.1項「ArrayOf_xsd_string」を参照してください。

ArrayOf_xsd_String SFTPServerNames

ArrayOf_xsd_stringデータ型で返されたSFTPサーバー名のリスト。第2.3.1項「ArrayOf_xsd_string」を参照してください。

ArrayOf_xsd_String defaultServerNames

ArrayOf_xsd_stringデータ型で返され、各定義済タイプに対応するデフォルトのサーバー名のリスト。第2.3.1項「ArrayOf_xsd_string」を参照してください。

ArrayOf_xsd_String faxServerNames

ArrayOf_xsd_stringデータ型で返されたFAXサーバー名のリスト。第2.3.1項「ArrayOf_xsd_string」を参照してください。

ArrayOf_xsd_String printerNames

ArrayOf_xsd_stringデータ型で返されたプリンタ名のリスト。第2.3.1項「ArrayOf_xsd_string」を参照してください。

ArrayOf_xsd_Stringg webDAVServerNames

ArrayOf_xsd_stringデータ型で返されたWebDAVサーバー名のリスト。第2.3.1項「ArrayOf_xsd_string」を参照してください。

2.3.23 EMailDeliveryOption

このデータ型は、レポートを電子メールで配信するための仕様を定義します。

このデータ型を使用するのは、ArrayOfEMailDeliveryOption複合データ型です。

次の表にフィールドを示します。

表2-25 EMailDeliveryOptionにより使用可能になるフィールド

フィールド

説明

String emailBCC

電子メールのブラインド・カーボン・コピーを受信するための電子メール・アドレス。

String emailBody

電子メールの本文として表示されるテキスト文字列。

String emailCC

電子メールのカーボン・コピーを受信するための電子メール・アドレス。

String emailFrom

必須。送信者アドレスとして表示される電子メール・アドレス。このフィールドが空白の場合、次のメッセージとともにSOAP障害がスローされます。

Sender (From) email address is not specified.

String emailReplyTo

返信先フィールドに表示するための電子メール・アドレス。

String emailServerName

電子メール・サーバーの名前です。例: "Oracle Mail"

String emailSubject

電子メールの件名行。

String emailTo

必須。電子メールの送信先アドレス。このフィールドが空白の場合、次のメッセージとともにSOAP障害がスローされます。

Recipient (TO) email address is not specified.

2.3.24 FaxDeliveryOption

このデータ型は、レポートをFAXで配信するために設定するオプションを定義します。

このデータ型は、ArrayOfFaxDeliveryOption複合データ型で使用されます。

表2-26 FaxDeliveryOptionにより使用可能になるフィールド

フィールド

説明

String faxNumber

必須。FAXの送信先の番号です(例: 916505069560)。このフィールドが空白の場合、次のメッセージとともにSOAP障害がスローされます。

Fax Number is not specified.

String faxServer

必須。FAXの送信先のFAXサーバー(BI Publisherサーバー上で定義)(ipp://mycupsserver:631/printers/fax2など)。このフィールドが空白の場合、次のメッセージとともにSOAP障害がスローされます。

Fax server is not specified.

2.3.25 FileDataSource

このデータ型は、レポート実行時にファイル・データソースへの接続を動的に作成します。サーバー上の場所への直接パスを指定することも、ファイルを一時ディレクトリ内に置くことを指定することもできます。

このデータ型は、BIPDataSource複合データ型で使用されます。

次の表にフィールドを示します。

表2-27 FileDataSourceにより使用可能になるフィールド

フィールド

説明

String dynamicDataSourcePath

特定のサーバー上に存在するデータソースへのパスを指定するには、データソースへのフルパスを指定し、temporaryDataSourceをfalseに設定します。例: "D:\BI\OracleBI\xmlp\XMLP\DemoFiles\Balance.xml"

ファイルがシステムの一時ディレクトリに存在する場合は、temporaryDataSourceをtrueに設定し、ここでファイル名を指定します。例: "Balance.xml"。

boolean temporaryDataSource

ファイル・データソースがシステム一時ディレクトリにある場合はtrueに設定します。dynamicDataSourcePathでフルパスを指定する場合はfalseに設定します。

2.3.26 FTPDeliveryOption

このデータ型は、レポートをFTPで配信するために設定するオプションを定義します。

このデータ型は、ArrayOfFTPDeliveryOption複合データ型で使用されます。

表2-28 FTPDeliveryOptionにより使用可能になるフィールド

フィールド

説明

String ftpServerName

必須。FTPサーバー名です(例: myftpserver.foobar.com.example)。このフィールドが空白の場合、次のメッセージとともにSOAP障害がスローされます。

FTP server is not specified.

String ftpUserName

FTPサーバーのユーザー名。

String ftpUserPassword

入力されたユーザーのパスワード。

String remoteFile

サーバー上のファイルに割り当てる名前(例: report.pdf)。

boolean sftpOption

trueは、セキュアなFTPオプションを使用することを意味します。ftpUserPasswordが指定されている場合、sftpOptionはtrueに設定されている必要があります。

2.3.27 ItemData

このデータ型は、カタログ内に保存されているオブジェクトのオブジェクト・メタデータを戻します。

表2-29 ItemDataにより使用可能になるフィールド

フィールド

説明

String absolutePath

レポート・オブジェクトのパス(例: /HR Manager/HR Reports/Employee Listing.xdo)。

dateTime creationDate

レポート・オブジェクトの作成日。

String displayName

レポート・オブジェクトの表示名(例: Employee Listing)。

String fileName

レポート・オブジェクトのファイル名(例: Employee Listing.xdo)。

dateTime lastModified

レポート・オブジェクトの最終更新日。

String lastModifier

レポートを最後に変更したユーザー名。

String owner

レポート所有者のユーザー名。

String parentAbsolutePath

親フォルダの絶対パス。たとえば、絶対パスが/HR Manager/HR Reports/Employee Listing.xdoであるレポートのparentAbsolutePathは、/HR Manager/HR Reportsです。

String type

アイテムのタイプ。設定可能な値は、reportまたはfolderです。

2.3.28 JDBCDataSource

このデータ型は、レポート実行時にJDBCデータソースへの接続を動的に作成します。

このデータ型は、BIPDataSource複合データ型によって使用されます。

次の表にフィールドを示します。

表2-30 JDBCDataSourceにより使用可能になるフィールド

フィールド

説明

String JDBCDriverClass

データソースのJDBCドライバ・クラスです(例: oracle.jdbc.OracleDriver)。

String JDBCDriverType

BI Publisherデータソース定義ページで定義されているドライバのタイプです(例: Oracle 9i/10g/11g)。

String JDBCPassword

BI Publisherデータソース定義ページで定義されている、データソースのパスワードです。

String JDBCURL

データソースの接続文字列です(例: jdbc:oracle:thin:@mydatabase.foobar.com.example:1521: orcl)。

String JDBCUserName

BI Publisherデータソース定義ページで定義されている、データソースのユーザー名です。

String dataSourceName

BI Publisherデータソース定義ページでデータソースに割り当てられたデータソース名です(例: Oracle)。

2.3.29 JobDetail

ジョブ・リクエストに関する情報の集合です。

表2-31 JobDetailにより使用可能になるフィールド

フィールド

説明

boolean bursting

trueは、ジョブに対応するバースト・オプションが有効になっていることを意味します。

String burstingParameters

バースト・エンジンのパラメータ。

dateTime created

ジョブが作成された日付。

String dataLocator

storageTypeがDBの場合、dataLocatorはデータベースからデータを取得するための主キーです。

boolean deleted

trueは、ジョブが削除されたことを意味します。

String deliveryDescription

ジョブ配信についての説明。

String deliveryParameters

配信チャネルのパラメータ。

dateTime endDate

ジョブの終了予定日。

int instanceId

ジョブのインスタンスの識別番号。

String issuer

ジョブの発行者。

String jobGroup

ジョブが属するグループ。

int jobId

ジョブのインスタンスの識別番号。

int jobSetId

非アクティブ。使用しないでください。

String jobType

ジョブのタイプ。

dateTime lastUpdated

ジョブが最後に更新された日時。

String locale

ジョブが属するロケール。

String notificationParameters

ジョブの通知パラメータ。

String owner

ジョブ所有者の名前。

int parentJobId

ジョブの親に対応する識別番号。

boolean public

他のユーザーがジョブを確認できる(true)かできない(false)かを指定します。

String reportParameters

レポートのパラメータ。

String reportUrl

ジョブ出力先のURL。

String runType

ジョブのタイプ(単一または繰返し)。

String scheduleContext

外部アプリケーションがレポートを実行する場合のジョブ・スケジュールに対応するコンテキスト。

String scheduleDescription

ジョブ・スケジュールの説明。

String scheduleParameters

ジョブ・スケジュールのパラメータ。

String scheduleSource

ジョブ・スケジュールのソース。これは、外部アプリケーションに関する情報を提供するscheduleContextとともに使用されます。

dateTime startDate

ジョブの開始予定日または開始日。

String status

ジョブのステータス。

String statusDetail

ジョブのステータスの詳細。

String storageType

ジョブの格納タイプ。サポートされる値はDBです。

String userDescription

ジョブに対してユーザーが割り当てた説明。

String userJobName

ジョブに対してユーザーが割り当てた名前。

boolean xmlDataAvailable

ジョブのXMLデータが使用できる(true)かできない(false)かを指定します。

boolean xmlDataCompressed

trueは、ジョブのXMLデータが圧縮されることを意味しています。

String xmlDataContentType

XMLデータのコンテンツ・タイプ。

String xschurl

レポートのURL。

2.3.30 JobFilterProperties

このデータ型は、次のメソッドによって使用され、特定のレポート・ジョブに対するフィルタの条件を定義します。

- getAllScheduledReport()メソッド

- getAllScheduledReportHistory()メソッド

- getAllScheduledReportHistoryInSession()メソッド

- getAllScheduledReportInSession()メソッド

このデータ型のフィールドで、必要とする情報について特定のレポート・ジョブまたはジョブを指定します。

表2-32 JobFilterPropertiesにより使用可能になるフィールド

フィールド

説明

String endTime

ジョブの終了予定時間または終了時間。

String endTimeOperator

endTimeの演算子。有効な値は、"Equals or Earlier Than"、"Equals"または"Earlier Than"です。

long jobID

BI Publisherによってジョブ・リクエストに割り当てられた識別番号。

String jobName

ユーザーによって割り当てられたジョブ名。有効な値は"Contains"または"Equals"です。

String jobNameOperator

jobNameの演算子。

String owner

ジョブ所有者の名前。

String ownerOperator

ownerの演算子。有効な値は"Contains"または"Equals"です。

String reportName

ジョブに対してユーザーが割り当てた名前。

String reportNameOperator

reportNameの演算子。有効な値は"Contains"または"Equals"です。

String scope

ジョブの範囲。有効な値は、"All"、"Private"または"Public"です。

String startTime

ジョブの開始予定時刻または開始時刻。

String startTimeOperator

startTimeの演算子。有効な値は、"Equals or Later Than"、"Equals"または"Later Than"です。

String status

ジョブの現行のステータス。

2.3.31 JobInfo

ジョブ・リクエストに関する情報の集合です。

表2-33 JobInfoにより使用可能になるフィールド

フィールド

説明

boolean burstingJob

trueは、バースト・オプションが有効になっていることを意味します。

dateTime created

ジョブが作成された日付。

boolean deleted

trueは、ジョブが削除されたことを意味します。

dateTime endDate

ジョブの終了予定日または終了日。

long instanceId

スケジュールされたジョブ・リクエストの識別番号。

long jobID

BI Publisherによってジョブ・リクエストに割り当てられた識別番号。

String jobType

ジョブのタイプ。

dateTime lastUpdated

ジョブが最後に更新された日時。

String owner

ジョブの所有者。

long parentJobId

スケジュールされたジョブ・リクエストの親に対応する識別番号。

boolean public

trueは、そのレポートが特定のレポート・セットのメンバであることを意味します。現在の実装では常にfalseが返されます。

String reportUrl

レポートの絶対パスURL(例: /HR Manager/Employee Reports/Employee Salary Report.xdo)。

dateTime startDate

ジョブの開始予定日または開始日。

String status

スケジュールされたジョブ・リクエストのステータス。有効な値は、Canceled、Done、Scheduled、SuspendedおよびUnknownです。

String statusDetail

ステータスに対するその他の詳細。

String userJobName

ジョブ・リクエストを発行したユーザー名。

2.3.32 JobInfoList

このデータ型は、JobInfoオブジェクトの配列を返します。

表2-34 JobInfoListにより使用可能になるフィールド

フィールド

説明

ArrayOfJobInfo jobInfoList

JobInfoオブジェクトの配列。第2.3.6項「ArrayOfJobInfo」を参照してください。

2.3.33 JobOutput

このデータ型は、ジョブ出力の説明を返します。

表2-35 JobOutputにより使用可能になるフィールド

フィールド

説明

String burstKey

バーストされた各ジョブのデータを分割する際に使用するキー。

dateTime created

レポート・ジョブが作成された日付。

boolean deleted

trueは、ジョブ出力が削除されたことを意味します。

boolean documentDataAvailable

trueは、レポートのスケジュール時に「出力の保存」オプションが選択されたことを意味します。

boolean documentDataCompressed

trueは、ドキュメントのデータが圧縮されていること意味します。

String documentDataConentType

生成されるドキュメントのコンテンツ・タイプです。可能な値は次のとおりです。

"text/html;charset=UTF-8"

"text/plain;charset=UTF-8"

"application/pdf"

"application/vnd.ms-powerpoint"

"application/vnd.ms-excel"

"application/msword"

"application/x-shockwave-flash"

"text/xml"

"message/rfc822"

long jobID

BI Publisherによってジョブに割り当てられた識別番号。

String jobName

ユーザーによって割り当てられたジョブ名。

dateTime lastUpdated

ジョブが最後に更新された日時。

long outputID

履歴内のレポートの識別番号。1つのスケジュールされたJobIDを複数のoutputIDまたはhistoryIDに関連付けることができます。これは、1つのスケジュールされたレポートを何回も実行または再公開できるためです。

String outputName

出力に割り当てられた名前。

long parentOutputId

親リクエストの出力ID。

String status

有効な値は、Completed、Error、Running、Scheduled、SuspendedおよびUnknownです。

String statusDetail

BI Publisherサーバーからの詳細なステータス情報。

2.3.34 JobOutputDelivery

このデータ型は、ジョブ出力の説明を返します。

表2-36 JobOutputDeliveryにより使用可能になるフィールド

フィールド

説明

dateTime created

レポート・ジョブが作成された日付。

long deliveryID

ジョブの配信を識別する主キー。

byte[] deliveryParameters

配信チャネルのパラメータ。

dateTime lastUpdated

ジョブが最後に更新された日時。

long outputID

履歴内のレポートの識別番号。1つのスケジュールされたJobIDを複数のoutputIDまたはhistoryIDに関連付けることができます。これは、1つのスケジュールされたレポートを何回も実行または再公開できるためです。

long parentDeliveryID

親リクエストの配信ID。

String status

有効な値は、Completed、Error、Running、Scheduled、SuspendedおよびUnknownです。

String statusDetail

BI Publisherサーバーからの詳細なステータス情報。

2.3.35 JobOutputDeliverysList

このデータ型は、JobOutputDeliveryオブジェクトの配列を返すように実装されたラッパー・クラスです。

表2-37 JobOutputDeliverysListにより使用可能になるフィールド

フィールド

説明

ArrayOfJobOutputDelivery jobOutputDeliveryList

第2.3.8項「ArrayOfJobOutputDelivery」を参照してください。

2.3.36 JobOutputsList

このデータ型は、JobOutputオブジェクトの配列を返します。

表2-38 JobOutputsListにより使用可能になるフィールド

フィールド

説明

ArrayOfJobOutput jobOutputList

第2.3.7項「ArrayOfJobOutput」を参照してください。

2.3.37 JobStatus

このデータ型は、ジョブ・リクエストのステータスを返します。

表2-39 JobStatusにより使用可能になるフィールド

フィールド

説明

String jobID

BI Publisherによってジョブ・リクエストに割り当てられた識別番号。

String jobStatus

ジョブの現在のステータス。

String message

ジョブのステータスの詳細。

2.3.38 LocalDeliveryOption

BI Publisherリポジトリにレポートを配信するために設定するオプション。

このデータ型は、ArrayOfLocalDeliveryOption複合データ型で使用されます。

表2-40 LocalDeliveryOptionにより使用可能になるフィールド

フィールド

説明

String destination

必須。ローカル・サーバー上のBI Publisherリポジトリのファイル・パス。このフィールドは、ディレクトリ・パスとファイル・パスの連結をサポートします。このフィールドが空白の場合、次のメッセージとともにSOAP障害がスローされます。

Local destination is not specified.

2.3.39 MetaData

このデータ型は、MetaDataオブジェクトの名前と値のペアを設定します。

表2-41 MetaDataにより使用可能になるフィールド

フィールド

説明

String metaDataName

メタデータの名前。

String metaDataValue

メタデータのコンテンツ。

2.3.40 MetaDataList

このデータ型は、MetaDataオブジェクトのリストを返します。

表2-42 MetaDataListにより使用可能になるフィールド

フィールド

説明

ArrayOfMetaData metaDataList

第2.3.10項「ArrayOfMetaData」を参照してください。

2.3.41 ParamNameValue

このデータ型は、BI Publisherのレポートとテンプレートに対して定義されているパラメータを記述します。

ParamNameValueデータ型はArrayOfParamNameValue内で使用されます。このデータ型はReportRequestデータ型、ReportDefinitionデータ型およびJobInfoデータ型に含まれています。また、ParamNameValueはgetTemplateParameters()メソッドとgetReportParameters()メソッドによって返されます。

表2-43 ParamNameValueにより使用可能になるフィールド

フィールド

説明

String UIType

BI Publisherのデータ・モデル・ユーザー・インタフェースで定義されているパラメータのタイプです。

有効な値は次のとおりです。

- Date

- Hidden

- Menu

- Search

- Text

String dataType

有効な値は次のとおりです。

- ブール

- Date

- Float

- 整数

- 文字列

String dateFormatString

UITypeがDateの場合は、日付フォーマット文字列を指定します。日付フォーマット文字列にはJava日付フォーマットを使用する必要があります(MM-DD-YYYYなど)。

String dateFrom

UITypeがDateの場合は、日付の開始値を指定します。

String dateTo

UITypeがDateの場合は、日付の終了値を指定します。

String defaultValue

パラメータのデフォルト値を指定します。

String fieldSize

パラメータ・タイプが"Text"または"Date"の場合に、パラメータのテキスト・フィールド・サイズを指定します。

String label

パラメータ・タイプが"Hidden"以外の場合に、パラメータの表示ラベルを指定します。

ArrayOfString lovLabels

パラメータ・タイプが"Menu"の場合に、ユーザーに表示される値リストの値を指定します。

boolean multiValuesAllowed

Trueは、パラメータに複数の値が含まれていることを意味します。

String name

パラメータ名。

boolean refreshParamOnChange

パラメータ・タイプが"Text"または"Menu"で、このパラメータの値がtrueの場合は、このパラメータに対する選択が行われたときに他の定義済パラメータがリフレッシュされることを示します。

boolean selectAll

パラメータ・タイプが"Menu"の場合、trueは値リストのすべての値を選択できることを示します。

boolean templateParam

trueは、パラメータがRTFテンプレートで定義されていることを示します。

boolean useNullForAll

パラメータ・タイプが"Menu"の場合、trueはパラメータのすべての値が選択されるとnullが渡されることを示します。

ArrayOfString values

第2.3.13項「ArrayOfString」を参照してください。

2.3.42 ParamNameValues

このデータ型は、ParamNameValueオブジェクトの配列を返すラッパー・クラスです。

表2-44 ParamNameValuesにより使用可能になるフィールド

フィールド

説明

ArrayOfParamNameValue listOfParamNameValues

第2.3.11項「ArrayOfParamNameValue」を参照してください。

2.3.43 PrintDeliveryOption

このデータ型は、レポートをプリンタに配信するオプションを設定します。

このデータ型は、ArrayOfPrintDeliveryOption複合データ型で使用されます。

表2-45 PrintDeliveryOptionにより使用可能になるフィールド

フィールド

説明

String printNumberOfCopy

印刷するコピー部数。

String printOrientation

有効な値は"portrait"または"landscape"です。

String printRange

印刷するページの範囲。複数の範囲はカンマで区切ります("1,3-5,8-10"など)。

String printSide

有効な値は、"Single sided"、"Double Sided Long Edge (Duplex)"および"Double Sided Short Edge (Tumble)"です。

String printTray

有効な値は、"Default"、"Tray 1"、"Tray 2"および"Tray 3"です。

String printerName

必須。レポートの送信先プリンタの名前。このフィールドが空白の場合、次のメッセージとともにSOAP障害がスローされます。

Print server is not specified.

2.3.44 ReportDataChunk

このデータ型は、大型レポート・データ・セットを処理したり、小さいデータ・チャンク内のレポート・データをアップロードおよびダウンロードします。

表2-46 ReportDataChunkにより使用可能になるフィールド

フィールド

説明

byte[] reportDataChunk

BI Publisherクライアントとサーバー間で移送されるレポートのバイナリ・データを表すByte[]配列。

String reportDataFileID

BI Publisherサーバー上にあるレポートのデータ・ファイルに対応する識別子。

long reportDataOffset

以前にダウンロードしたレポート・データ・ファイルの位置に対応するオフセット値。

2.3.45 ReportDefinition

このデータ型は、レポート・オブジェクトを定義します。これはgetReportDefinition()メソッドで返されたオブジェクトです。

表2-47 ReportDefinitionにより使用可能になるフィールド

フィールド

説明

boolean autoRun

trueは、レポート・プロパティの「オートラン」がオンになっていることを意味します。

boolean cacheDocument

trueは、レポート・プロパティの「ドキュメント・キャッシュの有効化」がオンになっていることを意味します。

boolean controledByExtApp

レポートの定義を外部アプリケーションで制御する(true)かまたはしない(false)かを示します。

String dataModelURL

データ・モデルの定義を取得する.xdmファイルの場所。

String defaultOutputFormat

デフォルトの出力フォーマット。

有効な値は次のとおりです。

- csv (CSV)

- data (データ)

- eText (eTextのテンプレート)

- excel (Microsoft Excel)

- excel2000 (Microsoft Excel 2000)

- flash (Adobe Flash)

- html (HTML)

- mhtml (MIME HTML)

- pdf (Adobe PDF)

- ppt (Microsoft PowerPoint)

- rtf (リッチ・テキスト形式)

String defaultTemplateId

そのレポートに対して特定されたデフォルトのテンプレート。

boolean diagnostics

trueは、そのレポートに対して診断がオンになっていることを意味します。

String ESSJobName

ESSジョブ名。

String ESSPackageName

ESSパッケージ名。ESSJobNameと併用。

ArrayOfTemplateFormatsLabelValues listOfTemplateFormatsLabelValues

ArrayOfTemplateFormatsLabelValuesデータ型経由でテンプレート・フォーマット・ラベルのリストを渡します。第2.3.15項「ArrayOfTemplateFormatLabelValues」を参照してください。

boolean onLine

trueは、レポート・プロパティの「レポート・オンラインの実行」がオンになっていることを意味します。

boolean openLinkInNewWindow

trueは、レポート・プロパティの「新規ウィンドウでリンクを開く」がオンになっていることを意味します。

integer parameterColumns

レポート・プロパティの「行当たりのパラメータ数」の値。

ArrayOfString parameterNames

レポートの定義済パラメータ名をArrayOfStringデータ型経由で渡します。第2.3.13項「ArrayOfString」を参照してください。

String reportDefnTitle

非アクティブ。使用しないでください。

String reportDescription

ユーザーがレポートに割当てた説明。

String reportName

ユーザーがレポートに割当てた名前。

ArrayOfParamNameValue reportParameterNameValues

レポートの名前と値のペアをArrayOfParamNameValueデータ型経由で渡します。第2.3.11項「ArrayOfParamNameValue」を参照してください。

String reportType

非アクティブ。使用しないでください。

boolean showControls

trueは、レポート・プロパティの「コントロールの表示」がオンになっていることを意味します。

boolean showReportLinks

trueは、レポート・プロパティの「レポート・リンクの表示」がオンになっていることを意味します。

ArrayOfString templateIds

レポート・テンプレートのレイアウト名をArrayOfStringデータ型経由で渡します。第2.3.13項「ArrayOfString」を参照してください。

2.3.46 ReportRequest

このデータ型は、レポートを実行するのに必要な設定を定義します。attributeFormatの許容値は、使用されるテンプレートのタイプによって異なります(たとえば、PDFテンプレートではPDF出力の生成のみ可能)。

表2-48 ReportRequestにより使用可能になるフィールド

フィールド

説明

String attributeCalendar

レポート・リクエストに対して使用するフォーマット・カレンダです。有効な値: "Gregorian"、"Arabic Hijrah"、"English Hijrah"、"Japanese Imperial"、"Thai Buddha"、"ROC Official"

String attributeFormat

要求されたレポートの出力フォーマット。有効な値は、pdf、rtf、html、excel、excel2000、mhtml、csv、data、flashおよびpowerpointです。

String attributeLocale

レポートのロケール選択例: fr-FR

String attributeTemplate

レポートに適用するテンプレート(例: Employeelisting.rtf)。

String attributeTimeZone

リクエストに対して使用するタイムゾーンを、サポートされているJavaタイムゾーンを使用して指定します。例: "America/Los_Angeles"

boolean byPassCache

trueは、ドキュメント・キャッシュをバイパスすることを示します。

BIPDataSource dynamicDataSource

レポートのデータソースが定義されていない場合は、動的に定義できます。第2.3.17項「BIPDataSource」を参照してください。

boolean flattenXML

trueは、XMLがフラット化されることを意味します。ExcelではXMLデータ型をフラット化する必要があるため、このフラグはAnalyzer for Microsoft Excelに対して使用されます。

ParamNameValues parameterNameValues

ParamNameValuesデータ型経由で渡される、このレポート・リクエストの発行に使用されるパラメータ名と値のペア。第2.3.42項「ParamNameValues」を参照してください。

String reportAbsolutePath

BI Publisherリポジトリ内のレポートの絶対パス(例: /HR Manager/HR Reports/Employee Listing.xdo)。

byte[] reportData

レポートに直接データを入力する場合は、この要素を使用してデータを渡します。

String reportOutputPath

生成されるレポートの出力パスを指定します。

String reportRawData

レポートに生のXMLデータを使用する場合は、この要素にそのXMLデータが格納されます。

integer sizeOfDataChunkDownload

flattenXMLをtrueに設定した場合、またはデータをチャンクしない場合は、このパラメータを-1に設定して、すべてのデータをクライアントに返します。

MetaDataList XDOPropertyList

第2.3.40項「MetaDataList」を参照してください。

2.3.47 ReportResponse

このデータ型は、レポートを実行するのに必要な設定を定義します。attributeFormatの許容値は、使用されるテンプレートのタイプによって異なります(たとえば、PDFテンプレートではPDF出力の生成のみ可能)。

表2-49 ReportResponseにより使用可能になるフィールド

フィールド

説明

MetaDataList metaDataList

第2.3.40項「MetaDataList」を参照してください。

byte[] reportBytes

レポートのバイナリ・データ出力。

String reportContentType

レポートのコンテンツ・タイプ。次の値を指定できます。

"text/html;charset=UTF-8"

"text/plain;charset=UTF-8"

"application/pdf"

"application/vnd.ms-powerpoint"

"application/vnd.ms-excel"

"application/msword"

"application/x-shockwave-flash"

"text/xml" "message/rfc822"

String reportFileID

レポート・ファイルの識別番号。

String reportLocale

レポートに対して選択されたロケール(fr_FRなど)。

2.3.48 ScheduleRequest

レポートをスケジュールするためのオプションです。

表2-50 ScheduleRequestにより使用可能になるフィールド

フィールド

説明

boolean bookBindingOutputOption

製本出力が有効(true)か無効(false)かを指定します。

String dataModelUrl

データ・モデルの定義を取得する.xdmファイルの場所。

DeliveryChannels deliveryChannels

第2.3.20項「DeliveryChannels」を参照してください。

String endDate

スケジュールの終了日。

String jobLocale

スケジュールされたリクエストに使用するロケール例: fr-FR

String jobTZ

スケジュールされたリクエストに使用するタイム・ゾーン。

boolean mergeOutputOption

マージ出力オプションが有効(true)か無効(false)かを指定します。

String notificationPassword

HTTPサーバー経由で通知をスケジュールする際に使用するHTTP通知サーバー・パスワード。

String notificationServer

通知に使用するHTTPサーバーの名前。

String notificationTo

通知送信先の電子メール・アドレス。

String notificationUserName

通知に使用するHTTPサーバーのユーザー名。

boolean notifyHttpWhenFailed

trueは、ジョブ・リクエストが失敗した場合に通知を送信することを意味します。

boolean notifyHttpWhenSuccess

trueは、ジョブ・リクエストが成功した場合に通知を送信することを意味します。

boolean notifyHttpWhenWarning

trueは、ジョブが警告を伴って終了したときに通知を送信することを意味します。

boolean notifyWhenFailed

trueは、ジョブ・リクエストが失敗した場合に通知を送信することを意味します。

boolean notifyWhenSuccess

trueは、ジョブ・リクエストが成功した場合に通知を送信することを意味します。

boolean notifyWhenWarning

trueは、ジョブが警告を伴って終了したときに通知を送信することを意味します。

String recurrenceExpression

反復スケジュールを定義する式。

String recurrenceExpressionType

反復スケジュールに対して定義された式のタイプ。有効な値はcron。

integer repeatCount

スケジュールを繰り返す回数。レポートの反復スケジュールでは、startDateをNULL以外の値に設定し、すべての意味のあるスケジュールに対して、repeatCountとrepeatIntervalを0より大きい値に設定する必要があります。endDateにはNULLを設定できます。

integer repeatInterval

2つのスケジュールされたジョブ間の秒単位の間隔。

ReportRequest reportRequest

ReportRequestデータ型経由で格納されるリクエストに関する情報。第2.3.46項「ReportRequest」を参照してください。

boolean saveDataOption

trueは、スケジュールされたリクエスト実行のレポート・データが保存されることを意味します。

boolean scheduleBurstingOption

trueは、スケジュールされたリクエストがバーストされることを意味します。

boolean schedulePublicOption

trueは、スケジュールされたリクエストが公開されることを意味します。

String startDate

スケジュールが開始される日付。

boolean useUTF8Option

trueは、Unicode(UTF8)を使用オプションが有効になっていることを意味します。

String userJobDesc

スケジュールされたジョブに対してユーザーが入力した説明。

String userJobName

スケジュールされたジョブに対してユーザーが入力した名前。

2.3.49 TemplateFormatLabelValue

レポートに対応するテンプレート・フォーマットのラベルと値を指定します。TemplateFormatLabelValueは、ArrayOfTemplateFormatLabelValue複合データ型に含まれています。TemplateFormatLabelValueを構成する要素は次のとおりです。

表2-51 TemplateFormatLabelValueにより使用可能になるフィールド

フィールド

説明

String templateFormatLabel

テンプレート・フォーマットに対して表示されるラベルです。たとえば、"HTML"、"PDF"、"Excel"などがあります。

文字列

templateFormatValue

ラベルに対応するテンプレート・フォーマットの値です。たとえば、"html"、"pdf"、"excel"などがあります。

2.3.50 TemplateFormatsLabelValues

BI Publisherリポジトリに格納されたテンプレート・フォーマットに関する詳細です。TemplateFormatLabelValueは、ArrayOfTemplateFormatLabelValues複合データ型に含まれています。

表2-52 TemplateFormatsLabelValuesにより使用可能になるフィールド

フィールド

説明

boolean active

テンプレートがアクティブ(true)またはアクティブでない(false)かを示します。

boolean applyStyleTemplate

スタイル・テンプレートを適用する(true)か適用しない(false)かを示します。

boolean default

テンプレートがデフォルト・テンプレート(true)かデフォルト・テンプレートでない(false)かを示します。

ArrayOfTemplateFormatLabelValue listOfTemplateFormatLabelValue

TemplateFormatLabelValueのラベルと値のペアが格納されます。第2.3.14項「ArrayOfTemplateFormatLabelValue」を参照してください。

ArrayOfString templateAvailableLocales

ArrayOfStringデータ型に渡されるテンプレートに対して定義されている使用可能なロケール・オプション。第2.3.13項「ArrayOfString」を参照してください。

String templateBaseLocale

テンプレートに対して定義されているベース・ロケール・オプション。

String templateDefaultLocale

テンプレートに対して定義されているデフォルト・ロケール・オプション。

String templateID

BI Publisherでテンプレートに割り当てられている名前です。例: "Employee Listing"

String templateType

テンプレートのタイプです。例: "rtf"、"pdf"

String templateURL

BI Publisherリポジトリ内のテンプレート・ファイル名です。例: "Employee Listing.rtf"

boolean viewOnline

テンプレートがオンラインで表示できる(true)か表示できない(false)かを示します。

2.3.51 WebDAVDeliveryOption

レポートをWeb-based Distributed Authoring and Versioning(WebDAV)で配信するための設定オプション。

このデータ型は、ArrayOfWebDAVDeliveryOption複合データ型で使用されます。

表2-53 WebDAVDeliveryOptionにより使用可能になるフィールド

フィールド

説明

String deliveryAuthType

認証タイプ。有効な値は、None、Basic、Digestです。

String password

プロキシ・サーバーが設定されている場合に、プロキシ・サーバーへのアクセスに必要なパスワード。

String remoteFilePath

レポート・ファイルの配信先リモート・サーバー上のディレクトリのパス。

String server

必須。WebDAVサーバー名です(例: myserver)。このフィールドが空白の場合、次のメッセージとともにSOAP障害がスローされます。

WebDAV server is not specified.

String userName

プロキシ・サーバーが設定されている場合に、プロキシ・サーバーへのアクセスに必要なユーザー名。

3 ScheduleService

この章では、BI Publisherスケジューラとやり取りする際に使用できるScheduleServiceメソッドの詳細について説明します。ここでは、レポート・ジョブのスケジュール作成、レポート出力の取得、レポート履歴の管理に対応するメソッドについて述べます。

この章には次の項が含まれます:

- 第3.1項「cancelSchedule()メソッド」

- 第3.2項「cancelScheduleInSession()メソッド」

- 第3.3項「deleteJobHistory()メソッド」

- 第3.4項「deleteJobHistoryInSession()メソッド」

- 第3.5項「deleteSchedule()メソッド」

- 第3.6項「deleteScheduleInSession()メソッド」

- 第3.7項「deliveryService()メソッド」

- 第3.8項「deliveryServiceInSession()メソッド」

- 第3.9項「downloadDocumentData()メソッド」

- 第3.10項「downloadDocumentDataInSession()メソッド」

- 第3.11項「downloadXMLData()メソッド」

- 第3.12項「downloadXMLDataInSession()メソッド」

- 第3.13項「getAllScheduledReport()メソッド」

- 第3.14項「getAllScheduledReportHistory()メソッド」

- 第3.15項「getAllScheduledReportHistoryInSession()メソッド」

- 第3.16項「getAllScheduledReportInSession()メソッド」

- 第3.17項「getDeliveryServiceDefinition()メソッド」

- 第3.18項「getDeliveryServiceDefinitionInSession()メソッド」

- 第3.19項「getDocumentData()メソッド」

- 第3.20項「getDocumentDataInSession()メソッド」

- 第3.21項「getScheduledJobInfo()メソッド」

- 第3.22項「getScheduledJobInfoInSession()メソッド」

- 第3.23項「getScheduledReportDeliveryInfo()メソッド」

- 第3.24項「getScheduledReportDeliveryInfoInSession()メソッド」

- 第3.25項「getScheduledReportOutputInfo()メソッド」

- 第3.26項「getScheduledReportOutputInfoInSession()メソッド」

- 第3.27項「getXMLData()メソッド」

- 第3.28項「getXMLDataInSession()メソッド」

- 第3.29項「purgeJobHistory()メソッド」

- 第3.30項「purgeJobHistoryInSession()メソッド」

- 第3.31項「resendScheduledReport()メソッド」

- 第3.32項「resendScheduledReportInSession()メソッド」

- 第3.33項「resumeSchedule()メソッド」

- 第3.34項「resumeScheduleInSession()メソッド」

- 第3.35項「scheduleReport()メソッド」

- 第3.36項「scheduleReportInSession()メソッド」

- 第3.37項「suspendSchedule()メソッド」

- 第3.38項「suspendScheduleInSession()メソッド」

注意:

BI Publisher Webサービスを使用して作成されたアプリケーションをデバッグする方法の詳細は、第1.3項「Webサービス・アプリケーションのデバッグ」を参照してください。

3.1 cancelSchedule()メソッド

cancelSchedule()メソッドは、現在実行中のスケジュールされたジョブを取り消します。

シグネチャ

boolean cancelSchedule(String jobInstanceID, String userID, String password);

表3-1 cancelSchedule()メソッドのパラメータ

パラメータ

説明

String jobInstanceID

取り消されるジョブのインスタンスに割り当てられたID。jobInstanceIDは整数の文字列です。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

3.2 cancelScheduleInSession()メソッド

指定されたユーザーのbipSessionToken文字列に関連付けられたスケジュールを取り消します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

String cancelScheduleInSession(String jobInstanceID, String bipSessionToken);

表3-2 cancelScheduleInSession()メソッドのパラメータ

パラメータ

説明

String jobInstanceID

出力を生成したジョブのインスタンスに割り当てられたID。jobInstanceIDは整数の文字列です。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

3.3 deleteJobHistory()メソッド

deleteJobHistory()メソッドは、レポート・ジョブに関する履歴情報の一時的削除を実行します。これに対して、purgeJobHistory()メソッドは永久削除を実行します。deleteJobHistory()メソッドはpurgeJobHistory()メソッドに優先している必要があります。

boolean deleteJobHistory(String instanceJobID, String userID, String password);

シグネチャ

表3-3 deleteJobHistory()メソッドのパラメータ

パラメータ

説明

String instanceJobID

出力を生成したジョブのインスタンスに割り当てられたID。instanceJobIDは整数の文字列です。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

3.4 deleteJobHistoryInSession()メソッド

指定されたユーザーのbipSessionToken文字列に関連付けられたジョブの履歴を取り消します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

boolean deleteJobHistoryInSession(String jobInstanceID, String bipSessionToken);

表3-4 deleteJobHistoryInSession()メソッドのパラメータ

パラメータ

説明

String jobInstanceID

出力を生成したジョブのインスタンスに割り当てられたID。jobInstanceIDは整数の文字列です。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

3.5 deleteSchedule()メソッド

deleteSchedule()メソッドは、スケジューラ・キューからスケジュールされたジョブを削除します。

シグネチャ

boolean deleteSchedule(String jobInstanceID, String userID, String password);

表3-5 deleteSchedule()メソッドのパラメータ

パラメータ

説明

String jobInstanceID

削除されるジョブのインスタンスに割り当てられたID。jobInstanceIDは整数の文字列です。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

3.6 deleteScheduleInSession()メソッド

指定されたユーザーのbipSessionToken文字列に関連付けられたスケジュールを削除します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

boolean deleteScheduleInSession(String jobInstanceID, String bipSessionToken);

表3-6 deleteScheduleInSession()メソッドのパラメータ

パラメータ

説明

String jobInstanceID

出力を生成したジョブのインスタンスに割り当てられたID。jobInstanceIDは整数の文字列です。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

3.7 deliveryService()メソッド

deliveryService()メソッドは、指定された配信チャネルを経由してドキュメントをソースから配信先へ配信します。

シグネチャ

String deliveryService(DeliveryRequest deliveryRequest, String userID, String password);

表3-7 deliveryService()メソッドのパラメータ

パラメータ

説明

DeliveryRequest deliveryRequest

DeliveryRequestオブジェクト。第2.3.21項「DeliveryRequest」を参照してください。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

3.8 deliveryServiceInSession()メソッド

指定されたユーザーのdeliveryRequestとbipSessionToken文字列に関連付けられたドキュメントを配信します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

String deliveryServiceInSession(String jobInstanceID, String bipSessionToken);

表3-8 deliveryServiceInSession()メソッドのパラメータ

パラメータ

説明

DeliveryRequest deliveryRequest

DeliveryRequestオブジェクト。第2.3.21項「DeliveryRequest」を参照してください。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

3.9 downloadDocumentData()メソッド

レポート・ドキュメントをBI Publisherサーバーのローカル一時ディレクトリに格納して、後でダウンロードできるようにユーザーのfileIDを返します。これは、レポートのデータ・サイズが大きな影響を与える場合に備えてパフォーマンスを考慮して実装されます。

シグネチャ

String downloadDocumentData(String JobOutputID, String userID, String password);

表3-9 downloadDocumentData()メソッドのパラメータ

パラメータ

説明

String jobOutputID

出力に割り当てられたID。jobOutputIDは整数の文字列です。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

3.10 downloadDocumentDataInSession()メソッド

指定されたユーザーのjobInstanceIDとbipSessionToken文字列に関連付けられたドキュメントのレポートをダウンロードします。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

String downloadDocumentDataInSession(String jobInstanceID, String bipSessionToken);

表3-10 downloadDocumentDataInSession()メソッドのパラメータ

パラメータ

説明

String jobInstanceID

出力を生成したジョブのインスタンスに割り当てられたID。jobInstanceIDは整数の文字列です。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

3.11 downloadXMLData()メソッド

レポートのドキュメントを生成する際に使用されるXMLデータを返します。生データをXML形式で返します。

シグネチャ

downloadXMLData(String jobInstanceID, String userID, String password);

表3-11 downloadXMLData()メソッドのパラメータ

パラメータ

説明

String jobInstanceID

XMLデータに割り当てられたID。jobInstanceIDは整数の文字列です。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

3.12 downloadXMLDataInSession()メソッド

指定されたユーザーのbipSessionToken文字列に関連付けられたドキュメント・レポートのXMLデータをダウンロードします。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

String downloadXMLDataInSession(String jobInstanceID, String bipSessionToken);

表3-12 downloadXMLDataInSession()メソッドのパラメータ

パラメータ

説明

String jobInstanceID

出力を生成したジョブのインスタンスに割り当てられたID。jobInstanceIDは整数の文字列です。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

3.13 getAllScheduledReport()メソッド

getAllScheduledReportInfo()メソッドは、JobFilterPropertiesオブジェクトを介して渡されるフィルタ条件に一致するスケジュール済レポート・ジョブすべてに関する情報を返します。

シグネチャ

JobInfosList getAllScheduledReportInfo(JobFilterProperties filter, int beginIdx, String userID, String password);

表3-13 getAllScheduledReport()メソッドのパラメータ

パラメータ

説明

JobFilterProperties filter

JobFilterPropertiesオブジェクトは、情報を返そうとするレポート・ジョブに対して特定の条件を指定します。第2.3.30項「JobFilterProperties」を参照してください。

int beginIdx

索引の開始ポイント(デフォルトは1)です。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

3.14 getAllScheduledReportHistory()メソッド

getAllScheduledReportHistory()メソッドは、JobFilterPropertiesオブジェクトを介して渡されるフィルタ条件に一致するスケジュール済レポート履歴すべてに関する情報を返します。

シグネチャ

JobInfosList getAllScheduledReportHistory(JobFilterProperties filter, int beginIdx, String userID, String password);

表3-14 getAllScheduledReportHistory()メソッドのパラメータ

パラメータ

説明

JobFilterProperties filter

JobFilterPropertiesオブジェクトは、情報を返そうとするレポート・ジョブに対して特定の条件を指定します。第2.3.30項「JobFilterProperties」を参照してください。

int beginIdx

索引の開始ポイント(デフォルトは1)です。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

3.15 getAllScheduledReportHistoryInSession()メソッド

getAllScheduledReportHistoryInSession()メソッドは、JobFilterPropertiesオブジェクトを介して渡されるフィルタ条件に一致し指定ユーザーのbipSessionToken文字列に基づいているスケジュール済レポート履歴すべてに関する情報を返します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

JobInfosList getAllScheduledReportHistoryInSession(JobFilterProperties filter, int beginIdx, String bipSessionToken);

表3-15 getAllScheduledReportHistoryInSession()メソッドのパラメータ

パラメータ

説明

JobFilterProperties filter

JobFilterPropertiesオブジェクトは、情報を返そうとするレポート・ジョブに対して特定の条件を指定します。第2.3.30項「JobFilterProperties」を参照してください。

int beginIdx

索引の開始ポイント(デフォルトは1)です。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

3.16 getAllScheduledReportInSession()メソッド

getAllScheduledReportInSession()メソッドは、JobFilterPropertiesオブジェクトを介して渡されるフィルタ条件に一致し指定ユーザーのbipSessionToken文字列に基づいているスケジュール済レポートすべてに関する情報を返します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

JobInfosList getAllScheduledReportInSession(JobFilterProperties filter, int beginIdx, String bipSessionToken);

表3-16 getAllScheduledReportInSession()メソッドのパラメータ

パラメータ

説明

JobFilterProperties filter

JobFilterPropertiesオブジェクトは、情報を返そうとするレポート・ジョブに対して特定の条件を指定します。第2.3.30項「JobFilterProperties」を参照してください。

int beginIdx

索引の開始ポイント(デフォルトは1)です。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

3.17 getDeliveryServiceDefinition()メソッド

getDeliveryServiceDefinition()メソッドは、指定ユーザーのIDとパスワードに対する配信サービスの定義を取得します。deliveryService()メソッドを参照してください。

シグネチャ

DeliveryServiceDefinition getDeliveryServiceDefinition(String userID, String password);

表3-17 getDeliveryServiceDefinition()メソッドのパラメータ

パラメータ

説明

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

3.18 getDeliveryServiceDefinitionInSession()メソッド

getDeliveryServiceDefinitionInSession()メソッドは、指定ユーザーのbipSessionTokenに基づいて配信サービスの定義を取得します。deliveryService()メソッドを参照してください。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

DeliveryServiceDefinition getDeliveryServiceDefinitionInSession(String bipSessionToken);

表3-18 getDeliveryServiceDefinitionInSession()メソッドのパラメータ

パラメータ

説明

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

3.19 getDocumentData()メソッド

getDocumentData()メソッドは、BI Publisherのスケジュールされたジョブにより生成されたドキュメントを返します。scheduleReport()メソッドから返されたJobOutputIDを使用して、生成済のレポート・ドキュメントを取得できます。

getDocumentData()メソッドはレポート・ドキュメントのbyte[]を返し、downloadDocumentData()メソッドはレポート・ドキュメントをBI Publisherサーバーにローカル・ファイルとして格納する点に注意してください。後のメソッドはファイルのIDを返し、それにより配信サービスを介してレポート・ドキュメントをダウンロードできます。これは、レポート・ドキュメントのサイズが非常に大きい場合に備えてパフォーマンスを考慮したためです。

シグネチャ

byte[] getDocumentData(String JobOutputID, String userID, String password);

表3-19 getDocumentData()メソッドのパラメータ

パラメータ

説明

String JobOutputID

出力に割り当てられたジョブの出力。出力のIDは整数の文字列です。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

3.20 getDocumentDataInSession()メソッド

指定ユーザーのjobOutputIDとbipSessionTokenに基づいてレポート・ドキュメントのbyte[]を返します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

byte[] getDocumentDataInSession(String jobOutputID, String bipSessionToken);

表3-20 getDocumentDataInSession()メソッドのパラメータ

パラメータ

説明

String jobOutputID

出力に割り当てられたID。jobOutputIDは整数の文字列です。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

3.21 getScheduledJobInfo()メソッド

getScheduledJobInfo()メソッドは、レポート・パラメータやその他のプロパティなど、発行済のジョブに関する詳細が含まれているJobDetailオブジェクトを返します。このメソッドは、指定されたjobInstanceID、userIDおよびパスワードのデータベースに格納されている情報をすべて取得します。

シグネチャ

JobInfo getScheduledJobInfo(int jobInstanceID, String userID, String password);

表3-21 getScheduledJobInfo()メソッドのパラメータ

パラメータ

説明

int jobInstanceID

ジョブ情報を返すジョブのIDです。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

3.22 getScheduledJobInfoInSession()メソッド

指定されたユーザーのjobInstanceIDとbipSessionTokenに関連付けられたジョブの詳細が含まれているJobDetailオブジェクトを返します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

JobDetail getScheduledJobInfoInSession(String jobInstanceID, String bipSessionToken);

表3-22 getScheduledJobInfoInSession()メソッドのパラメータ

パラメータ

説明

String jobInstanceID

ジョブ・インスタンスに割り当てられたID。jobInstanceIDは整数の文字列です。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

3.23 getScheduledReportDeliveryInfo()メソッド

getScheduledReportdeliveryInfo()メソッドは、スケジュールされたジョブ出力の配信に関する情報を取得します。各スケジュールされたジョブには、複数のoutputIDが存在することがあります。各outputIDには、複数の配信情報が存在することがあります。第2.3.35項「JobOutputDeliverysList」を参照してください。

シグネチャ

JobOutputDeliverysList getScheduledReportDeliveryInfo(String jobOutputID, String userID, String password);

表3-23 getScheduledReportDeliveryInfo()メソッドのパラメータ

パラメータ

説明

String jobOutputID

必要とする情報に対するジョブの出力に割り当てられたID。jobOutputIDは整数の文字列です。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

3.24 getScheduledReportDeliveryInfoInSession()メソッド

指定されたユーザーのjobOutputIDとbipSessionTokenに対する詳細が含まれているJobOutputDeliverysListオブジェクトを返します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

JobOutputDeliverysList getScheduledReportDeliveryInfoInSession(String jobOutputID, String bipSessionToken);

表3-24 getScheduledReportDeliveryInfoInSession()メソッドのパラメータ

パラメータ

説明

String jobOutputID

ジョブ出力に割り当てられたID。jobOutputIDは整数の文字列です。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

3.25 getScheduledReportOutputInfo()メソッド

getScheduledReportOutputInfo()メソッドは、特定のスケジュールされたレポート出力に関する情報を返します。

シグネチャ

JobOutputsList getScheduledReportOutputInfo(String jobInstanceID, String userID, String password);

表3-25 getScheduledReportOutputInfo()メソッドのパラメータ

パラメータ

説明

String jobInstanceID

ジョブ情報を返すジョブのIDです。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

3.26 getScheduledReportOutputInfoInSession()メソッド

getScheduledReportOutputInfo()メソッドは、特定のスケジュールされたレポート出力のjobInstanceIDと指定ユーザーのbipSessionTokenに基づいて、そのレポート出力に関する情報を返します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

JobOutputsList getScheduledReportOutputInfoInSession(String jobInstanceID, String bipTokenSession);

表3-26 getScheduledReportOutputInfoInSession()メソッドのパラメータ

パラメータ

説明

String jobInstanceID

ジョブ情報を返すジョブのIDです。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

3.27 getXMLData()メソッド

getXMLData()メソッドは、BI Publisherのスケジュールされたジョブにより生成されたデータ・ドキュメントをXML形式で返します。scheduleReport()メソッドから返されたJobOutputIDを使用して、生成済のXMLドキュメントを取得できます。

getXMLData()メソッドはレポート・ドキュメントのbyte[]を返し、downloadXMLData()メソッドはXMLデータをBI Publisherサーバーにローカル・ファイルとして格納する点に注意してください。後のメソッドはファイルのIDを返し、それにより配信サービスを介してXMLベースのドキュメントをダウンロードできます。これは、レポート・ドキュメントのサイズが非常に大きい場合に備えてパフォーマンスを考慮したためです。

シグネチャ

byte[] getXMLData(String JobInstanceID, String userID, String password);

表3-27 getXMLData()メソッドのパラメータ

パラメータ

説明

String JobInstanceID

出力を生成したジョブのインスタンスに割り当てられたID。JobInstanceIDは整数の文字列です。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

3.28 getXMLDataInSession()メソッド

指定ユーザーのjobInstanceIDとbipSessionTokenに基づいてXMLデータのbyte[]を返します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

byte[] getXMLDataInSession(String jobInstanceID, String bipSessionToken);

表3-28 getXMLDataInSession()メソッドのパラメータ

パラメータ

説明

String jobInstanceID

ジョブ・インスタンスに割り当てられたID。jobInstanceIDは整数の文字列です。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

3.29 purgeJobHistory()メソッド

purgeHistory()メソッドは、レポート・ジョブに関する履歴情報の完全削除を実行します。つまり、情報をデータベースから永久的に消去します。

purgeJobHistory()メソッドよりdeleteJobHistory()を優先させる必要があります。そうしないと、次のSOAP障害がスローされます。

purgeJobHistory failed due to job is not deleted. You have to delete JobHistory first prior to purge.

シグネチャ

boolean purgeJobHistory(String instanceJobID, String userID, String password);

表3-29 purgeJobHistory()メソッドのパラメータ

パラメータ

説明

String instanceJobID

出力を生成したジョブのインスタンスに割り当てられたID。instanceJobIDは整数の文字列です。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

3.30 purgeJobHistoryInSession()メソッド

指定されたinstanceJobIDと指定されたユーザーのbipSessionTokenのデータベースからジョブ履歴を永久的に消去します。そのアクションより、deleteJobHistoryInSessionの方が優先している必要があります。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

boolean purgeJobHistoryInSession(String instanceJobID, String bipSessionToken);

表3-30 purgeJobHistoryInSession()メソッドのパラメータ

パラメータ

説明

String instanceJobID

ジョブ・インスタンスに割り当てられたID。instanceJobIDは整数の文字列です。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

3.31 resendScheduledReport()メソッド

resendScheduledReport()メソッドは、事前定義のスケジュールされたジョブを再送信します。再送信されたアクションは、それぞれoutputJobIDに送信されます。この再送信アクションを実行する際に使用されるのは事前定義された配信パラメータであるため、配信チャネルのオプションを定義する必要はありません。

シグネチャ

boolean resendScheduledReport(String outputJobID, String userID, String password);

表3-31 resendScheduledReport()メソッドのパラメータ

パラメータ

説明

String outputJobID

再送信するスケジュールされたジョブのIDです。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

3.32 resendScheduledReportInSession()メソッド

事前定義されたスケジュール・レポートのoutputJobIDと指定ユーザーのbipSessionTokenに基づいて、そのレポートを再送信します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

boolean resendScheduledReportInSession(String outputJobID, String bipSessionToken);

表3-32 resendScheduledReportInSession()メソッドのパラメータ

パラメータ

説明

String outputJobID

再送信するスケジュールされたジョブのIDです。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

3.33 resumeSchedule()メソッド

resumeSchedule()メソッドは、一時停止のスケジュール・ジョブを再開します。

シグネチャ

boolean resumeSchedule(String jobInstanceID, String userID, String password);

表3-33 resumeSchedule()メソッドのパラメータ

パラメータ

説明

String jobInstanceID

再開されるジョブのインスタンスに割り当てられたID。jobInstanceIDは整数の文字列です。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

3.34 resumeScheduleInSession()メソッド

事前に一時停止されたスケジュール・ジョブを、そのジョブのjobInstanceIDと指定ユーザーのbipSessionTokenに基づいて再開します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

boolean resumeScheduleInSession(String outputJobID, String bipSessionToken);

表3-34 resumeScheduleInSession()メソッドのパラメータ

パラメータ

説明

String jobInstanceID

再開されるジョブのインスタンスに割り当てられたID。jobInstanceIDは整数の文字列です。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

3.35 scheduleReport()メソッド

scheduleReport()メソッドは、BI Publisherカタログ内のレポートをスケジュールします。レポートを送信して即時に実行するか、またはレポートの実行をスケジュールするジョブを作成できます。レポートをスケジュールする場合、BI Publisher Enterpriseサーバーのインスタンスで設定されている任意の配信タイプにレポートを配信することもできます。このメソッドは、スケジュールされたジョブのjobIDを返します。

シグネチャ

String scheduleReport(ScheduleRequest scheduleRequest, String userID, String password);

表3-35 scheduleReport()メソッドのパラメータ

パラメータ

説明

ScheduleRequest scheduleRequest

実行対象レポートのScheduleRequestオブジェクトを指定します。第2.3.48項「ScheduleRequest」を参照してください。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

3.36 scheduleReportInSession()メソッド

指定ユーザーのbipSessionToken、スケジュール・リクエストおよび配信チャネルに基づいてレポートをスケジュールします。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

String scheduleReportInSession(ScheduleRequest scheduleRequest, DeliveryChannel deliveryChannel, String bipSessionToken);

表3-36 scheduleReportInSession()メソッドのパラメータ

パラメータ

説明

ScheduleRequest scheduleRequest

実行対象レポートのScheduleRequestオブジェクトを指定します。第2.3.48項「ScheduleRequest」を参照してください。

DeliveryChannel deliveryChannel

レポートの配信に使用される配信チャネルを指定します。第2.3.20項「DeliveryChannels」を参照してください。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

3.37 suspendSchedule()メソッド

suspendSchedule()メソッドは、スケジュール・ジョブを一時停止します。

シグネチャ

boolean suspendschedule(String jobInstanceID, String userID, String password);

表3-37 suspendSchedule()メソッドのパラメータ

パラメータ

説明

String jobInstanceID

一時停止されるジョブのインスタンスに割り当てられたID。jobInstanceIDは整数の文字列です。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

3.38 suspendScheduleInSession()メソッド

スケジュールされたレポートに関連付けられたjobInstanceIDと指定ユーザーのbipSessionTokenに基づいて、そのレポートを一時停止します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

boolean suspendScheduleInSession(String jobInstanceID, String bipSessionToken);

表3-38 suspendScheduleInSession()メソッドのパラメータ

パラメータ

説明

String jobInstanceID

一時停止されるジョブのインスタンスに割り当てられたID。jobInstanceIDは整数の文字列です。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

4 ReportService

この章では、BI Publisherレポートのオブジェクトとやり取りする際に使用できるReportServiceメソッドの詳細について説明します。ここでは、レポート、レポート・テンプレート、ランタイムの操作およびパラメータの設計と定義に対するメソッドについて述べます。

この章の内容は次のとおりです。

- 第4.1項「createReport()メソッド」

- 第4.2項「createReportInSession()メソッド」

- 第4.3項「downloadReportDataChunk()メソッド」

- 第4.4項「downloadReportDataChunkInSession()メソッド」

- 第4.5項「getReportDefinition()メソッド」

- 第4.6項「getReportDefinitionInSession()メソッド」

- 第4.7項「getReportParameters()メソッド」

- 第4.8項「getReportParametersInSession()メソッド」

- 第4.9項「getReportSampleData()メソッド」

- 第4.10項「getReportSampleDataInSession()メソッド」

- 第4.11項「getTemplate()メソッド」

- 第4.12項「getTemplateInSession()メソッド」

- 第4.13項「getTemplateParameters()メソッド」

- 第4.14項「getTemplateParameterInSession()メソッド」

- 第4.15項「getXDOSchema()メソッド」

- 第4.16項「getXDOSchemaInSession()メソッド」

- 第4.17項「removeTemplateForReport()メソッド」

- 第4.18項「removeTemplateForReportInSession()メソッド」

- 第4.19項「runReport()メソッド」

- 第4.20項「runReportInSession()メソッド」

- 第4.21項「updateReportDefinition()メソッド」

- 第4.22項「updateReportDefinitionInSession()メソッド」

- 第4.23項「updateTemplateForReport()メソッド」

- 第4.24項「updateTemplateForReportInSession()メソッド」

- 第4.25項「updateXLIFFForReport()メソッド」

- 第4.26項「updateXLIFFForReportInSession()メソッド」

- 第4.27項「uploadReportDataChunk()メソッド」

- 第4.28項「uploadReportDataChunkInSession()メソッド」

- 第4.29項「uploadTemplateForReport()メソッド」

- 第4.30項「uploadTemplateForReportInSession()メソッド」

- 第4.31項「uploadXLIFFForReport()メソッド」

- 第4.32項「uploadXLIFFForReportInSession()メソッド」

注意:

BI Publisher Webサービスを使用して作成されたアプリケーションをデバッグする方法の詳細は、第1.3項「Webサービス・アプリケーションのデバッグ」を参照してください。

4.1 createReport()メソッド

createReport()メソッドを使用して、BI Publisherカタログ内にレポートを作成します。このメソッドによって、データ・モデルにパスを設定し、テンプレート・ファイルと翻訳(XLIFF)ファイルをレポート定義に指定できます。

シグネチャ

String createReport(String reportName, String folderAbsolutePathURL, String dataModelURL, String templateFileName, byte[] templateData, String XLIFFFileName, byte[] XLIFFData, boolean updateFlag, String userID, String password);

表4-1 createReport()メソッドのパラメータ

パラメータ

説明

String reportName

サフィックスに.xdoを付けて作成するレポート名(例: myreport.xdo)。

String folderAbsolutePathURL

作成したレポートを配置するフォルダのパス(例: xmlp/Reports/financials)。

String dataModelURL

このレポートのデータソースとして使用されるデータ・モデルへのパス。(例: xmlp/Reports/financials/Data Models/my data model.xdm)。

String templateFileName

レポート定義に追加するテンプレートのファイル名。

byte[] templateData

テンプレート・ファイル。

String XLIFFFileName

XLIFFファイルのファイル名。

byte[] XLIFFData

XLIFFファイル。

boolean updateFlag

trueの場合、既存のレポートが上書きされます。falseの場合、レポートが存在すればエラーがスローされます。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

4.2 createReportInSession()メソッド

createReport()メソッドは、指定ユーザーのbipSessionTokenに基づいてBI Publisherカタログ内にレポートを作成します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

String createReport(String reportName, String folderAbsolutePathURL, String dataModelURL, String templateFileName, byte[] templateData, String XLIFFFileName, byte[] XLIFFData, boolean updateFlag, String bipSessionToken);

表4-2 createReportInSession()メソッドのパラメータ

パラメータ

説明

String reportName

サフィックスに.xdoを付けて作成するレポート名(例: myreport.xdo)。

String folderAbsolutePathURL

作成したレポートを配置するフォルダのパス(例: xmlp/Reports/financials)。

String dataModelURL

このレポートのデータソースとして使用されるデータ・モデルへのパス。(例: xmlp/Reports/financials/Data Models/my data model.xdm)。

String templateFileName

レポート定義に追加するテンプレートのファイル名。

byte[] templateData

テンプレート・ファイル。

String XLIFFFileName

XLIFFファイルのファイル名。

byte[] XLIFFData

XLIFFファイル。

boolean updateFlag

trueの場合、既存のレポートが上書きされます。falseの場合、レポートが存在すればエラーがスローされます。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

4.3 downloadReportDataChunk()メソッド

downloadReportDataChunk()メソッドは、非常に大きいドキュメントのダウンロードの際に、すべてのドキュメントのコンテンツがダウンロードされるまでコール元がこのメソッドを複数回コールできるようにします。このメソッドをコールするたびにドキュメントのチャンクがダウンロードされます。この場合、beginIdxパラメータはファイルのダウンロードの開始ポイントを参照します。

第2.3.44項「ReportDataChunk」を参照してください。

注意:

uploadReportDataChunk()やdownloadReportDataChunk()をクラスタ環境で使用する際、クラスタ内にあるすべてのサーバーでアクセスできる共有ディレクトリに「システム一時ディレクトリ」を設定する必要があります。「システム一時ディレクトリ」を設定するには:

1. BI Publisherに管理者権限でサインインします。

2. 「管理」リンクをクリックします。

3. 「システム・メンテナンス」で「サーバー構成」を選択します。

4. 「システム一時ディレクトリ」プロパティの「一般プロパティ」の下で、クラスタ内にあるすべてのサーバーでアクセスできるディレクトリの絶対パスを入力します。
たとえば、ディレクトリは${xdo.server.config.dir}/tempの下に存在できますが、絶対パス(/net/subfoldera/scratch/subfolderb/11gcat/tempなど)を入力する必要があります。

「システム一時ディレクトリ」で同じ値を入力して、クラスタ内にあるすべてのサーバーでこの手順を繰り返します。

シグネチャ

ReportDataChunk downloadReportDataChunk(String fileID, int beginIdx, int size);

表4-3 downloadReportDataChunk()メソッドのパラメータ

パラメータ

説明

String fileID

fileIDはReportResponse内部に返されます。これは、runReport()メソッドをコールすると返されます。

int beginIdx

索引の開始ポイント(デフォルトは1)です。

int size

ダウンロードするファイルのサイズ(KB単位)です。

4.4 downloadReportDataChunkInSession()メソッド

downloadReportDataChunk()メソッドは、指定ユーザーのbipSessionTokenを使用して非常に大きいドキュメントをダウンロードします。すべてのドキュメントのコンテンツがダウンロードされるまで、コール元がこのメソッドを複数回コールします。このメソッドをコールするたびにドキュメントのチャンクがダウンロードされます。この場合、beginIdxパラメータはファイルのダウンロードの開始ポイントを参照します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

ReportDataChunk downloadReportDataChunkInSession(String fileID, int beginIdx, int size, String bipSessionToken);

表4-4 downloadReportDataChunkInSession()メソッドのパラメータ

パラメータ

説明

String fileID

fileIDはReportRequest内部に返されます。これは、runReport()メソッドをコールすると返されます。

int beginIdx

索引の開始ポイント(デフォルトは1)です。

int size

ダウンロードするファイルのサイズ(KB単位)です。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

4.5 getReportDefinition()メソッド

getReportDefinition()メソッドは、デフォルトのテンプレート、出力タイプ、テンプレートIDのリストなど、レポートに関する情報を取得します。テンプレートIDのリストを使用して、デフォルト以外のテンプレートでレポートを生成できます。

第2.3.45項「ReportDefinition」を参照してください。

シグネチャ

ReportDefinition getReportDefinition(String reportAbsolutePath, String userID, String password);

表4-5 getReportDefinition()メソッドのパラメータ

パラメータ

説明

String reportAbsolutePath

レポート定義を取得するレポートへのパス。(例: /HR Manager/Employee Reports/Employee Listing.xdo)。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

4.6 getReportDefinitionInSession()メソッド

getReportDefinitionInSession()メソッドは、指定ユーザーのbipSessionTokenを使用してレポートに関する情報を取得します。このメソッドは、デフォルトのテンプレート、出力タイプ、テンプレートIDのリストなど、レポートの詳細を返します。テンプレートIDのリストを使用して、デフォルト以外のテンプレートでレポートを生成できます。

第2.3.45項「ReportDefinition」を参照してください。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

ReportDefinition getReportDefinitionInSession(String reportAbsolutePath, String bipSessionToken);

表4-6 getReportDefinitionInSession()メソッドのパラメータ

パラメータ

説明

String reportAbsolutePath

レポート定義を取得するレポートへのパス。(例: /HR Manager/Employee Reports/Employee Listing.xdo)。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

4.7 getReportParameters()メソッド

getReportParameters()メソッドは、レポート・パラメータとそのデフォルト値の配列を取得します。パラメータのリストを使用して、レポートの実行やスケジュールを行う前にパラメータ値を設定できます。

第2.3.42項「ParamNameValue」を参照してください。

シグネチャ

ParamNameValues getReportParameters(ReportRequest reportRequest, String userID, String password);

表4-7 getReportParameters()メソッドのパラメータ

パラメータ

説明

ReportRequest reportRequest

第2.3.46項「ReportRequest」を参照してください。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

4.8 getReportParametersInSession()メソッド

getReportParameters()メソッドは、指定ユーザーのbipSessionTokenに基づいてレポート・パラメータとそのデフォルト値の配列を取得します。パラメータのリストを使用して、レポートの実行やスケジュールを行う前にパラメータ値を設定できます。

第2.3.42項「ParamNameValue」を参照してください。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

ParamNameValues getReportParametersInSession(ReportRequest reportRequest, String bipSessionToken);

表4-8 getReportParametersInSession()メソッドのパラメータ

パラメータ

説明

ReportRequest reportRequest

第2.3.46項「ReportRequest」を参照してください。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

4.9 getReportSampleData()メソッド

getReportSampleData()メソッドは、レポート・データ・モデルを使用して格納されたサンプル・データ・ファイルを取得します。

シグネチャ

byte[] getReportSampleData(String reportAbsolutePath, String userID, String password);

表4-9 getReportSampleData()メソッドのパラメータ

パラメータ

説明

String reportAbsolutePath

レポート・データ・モデルのサンプル・データの取得元となるレポートへのパス。(例: /HR Manager/Employee Reports/Employee Listing.xdo)。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

4.10 getReportSampleDataInSession()メソッド

getReportSampleDataInSession()メソッドは、指定ユーザーのbipSessionTokenに基づいてレポート・データ・モデルを使用して格納されたサンプル・データ・ファイルを取得します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

byte[] getReportSampleData(String reportAbsolutePath, String bipSessionToken);

表4-10 getReportSampleDataInSession()メソッドのパラメータ

パラメータ

説明

String reportAbsolutePath

レポート・データ・モデルのサンプル・データの取得元となるレポートへのパス。(例: /HR Manager/Employee Reports/Employee Listing.xdo)。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

4.11 getTemplate()メソッド

getTemplate()メソッドは、BI Publisherカタログ内のレポート定義からテンプレートを取得します。

シグネチャ

byte[] getTemplate(String reportAbsolutePath, String templateID, String locale, String userID, String password);

表4-11 getTemplate()メソッドのパラメータ

パラメータ

説明

String reportAbsolutePath

テンプレートを関連付けるレポートへのパス。(例: /HR Manager/Employee Reports/Employee Listing.xdo)。

String templateID

テンプレートのID(例:Chart Layout)。

String locale

取得するテンプレートのロケール(例: en_US)。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

4.12 getTemplateInSession()メソッド

getTemplateInSession()メソッドは、指定ユーザーのbipTokenSessionに基づいてBI Publisherカタログ内にレポート定義からテンプレートを取得します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

byte[] getTemplateInSession(String reportAbsolutePath, String templateID, String locale, String bipSessionToken);

表4-12 getTemplateInSession()メソッドのパラメータ

パラメータ

説明

String reportAbsolutePath

テンプレートを関連付けるレポートへのパス。(例: /HR Manager/Employee Reports/Employee Listing.xdo)。

String templateID

テンプレートのID(例:Chart Layout)。

String locale

取得するテンプレートのロケール(例: en_US)。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

4.13 getTemplateParameters()メソッド

getReportParameters()メソッドは、テンプレートのパラメータを取得します。

第2.3.41項「ParamNameValue」を参照してください。

シグネチャ

ParamNameValue[] getTemplateParameters(String reportAbsolutePath, String templateID, String userID, String password);

表4-13 getTemplateParameters()メソッドのパラメータ

パラメータ

説明

String reportAbsolutePath

レポート定義を取得するレポートへのパス。(例: /HR Manager/Employee Reports/Employee Listing.xdo)。

String templateID

テンプレートに割当てられたID(例: "Chart Layout")。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

4.14 getTemplateParameterInSession()メソッド

getReportParametersInSession()メソッドは、テンプレートのパラメータを取得します。

第2.3.41項「ParamNameValue」を参照してください。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

ParamNameValue[] getTemplateParameters(String reportAbsolutePath, String templateID, String bipSessionToken);

表4-14 getTemplateParameterInSession()メソッドのパラメータ

パラメータ

説明

String reportAbsolutePath

レポート定義を取得するレポートへのパス。(例: /HR Manager/Employee Reports/Employee Listing.xdo)。

String templateID

テンプレートに割当てられたID(例: "Chart Layout")。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

4.15 getXDOSchema()メソッド

getXDOSchema()メソッドは、BI Publisherカタログ内のレポート定義に対応するXDOスキーマを取得します。

シグネチャ

byte[] getXDOSchema(String reportAbsolutePath, String locale, String userID, String password);

表4-15 getXDOSchema()メソッドのパラメータ

パラメータ

説明

String reportAbsolutePath

XDOスキーマの取得元となるレポートへのパス。(例: /HR Manager/Employee Reports/Employee Listing.xdo)。

String locale

取得するテンプレートのロケール(例: en_US)。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

4.16 getXDOSchemaInSession()メソッド

getXDOSchemaInSession()メソッドは、指定ユーザーのbipSessionTokenに基づいてBI Publisherカタログ内にレポート定義に対応するXDOスキーマを取得します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

byte[] getXDOSchemaInSession(String reportAbsolutePath, String locale, String bipSessionToken);

表4-16 getXDOSchemaInSession()メソッドのパラメータ

パラメータ

説明

String reportAbsolutePath

XDOスキーマの取得元となるレポートへのパス。(例: /HR Manager/Employee Reports/Employee Listing.xdo)。

String locale

取得するテンプレートのロケール(例: en_US)。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

4.17 removeTemplateForReport()メソッド

removeTemplateForReport()メソッドは、BI Publisherカタログ内のレポート定義からテンプレートを削除します。

シグネチャ

boolean removeTemplateForReport(String reportAbsolutePath, String templateFileName, String userID, String password);

表4-17 removeTemplateForReport()メソッドのパラメータ

パラメータ

説明

String reportAbsolutePath

テンプレートの削除元となるレポートへのパス。(例: /HR Manager/Employee Reports/Employee Listing.xdo)。

String templateFileName

削除するテンプレートのファイル名。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

4.18 removeTemplateForReportInSession()メソッド

removeTemplateForReportInSession()メソッドは、指定ユーザーのbipSessionTokenに基づいてBI Publisherカタログ内にレポート定義からテンプレートを削除します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

boolean removeTemplateForReportInSession(String reportAbsolutePath, String templateFileName, String bipSessionToken);

表4-18 removeTemplateForReportInSession()メソッドのパラメータ

パラメータ

説明

String reportAbsolutePath

テンプレートの削除元となるレポートへのパス。(例: /HR Manager/Employee Reports/Employee Listing.xdo)。

String templateFileName

削除するテンプレートのファイル名。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

4.19 runReport()メソッド

runReport()メソッドは、BI Publisherサーバーにリクエストを送信して特定のレポートを実行します。

第2.3.46項「ReportRequest」および第2.3.47項「ReportResponse」を参照してください。

シグネチャ

ReportResponse runReport(ReportRequest reportRequest, String userID, String password);

表4-19 runReport()メソッドのパラメータ

パラメータ

説明

ReportRequest reportRequest

第2.3.46項「ReportRequest」を参照してください。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

4.20 runReportInSession()メソッド

runReportInSession()メソッドは、BI Publisherサーバーにリクエストを送信して、指定ユーザーのbipSessionTokenに基づいて特定のレポートを実行します。

第2.3.46項「ReportRequest」および第2.3.47項「ReportResponse」を参照してください。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

ReportResponse runReportInSession(ReportRequest reportRequest, String bipSessionToken);

表4-20 runReportInSession()メソッドのパラメータ

パラメータ

説明

ReportRequest reportRequest

第2.3.46項「ReportRequest」を参照してください。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

4.21 updateReportDefinition()メソッド

updateReportDefinition()は、レポート定義ファイル(.xdo)の属性を更新して、そのファイルをBI Publisheカタログに書き戻します。

シグネチャ

boolean updateReportDefinition(String reportAbsPath, ReportDefinition newReportDefn, String userID, String password);

表4-21 updateReportDefinition()メソッドのパラメータ

パラメータ

説明

String reportAbsPath

レポート定義を更新するレポートへのパス。(例: /HR Manager/Employee Reports/Employee Listing.xdo)。

ReportDefinition newReportDefn

第2.3.45項「ReportDefinition」を参照してください。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

4.22 updateReportDefinitionInSession()メソッド

updateReportDefinitionInSession()メソッドは、指定ユーザーのbipTokenSessionに基づいてレポート定義ファイル(.xdo)の属性を更新してから、そのファイルをBI Publisherカタログに書き戻します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

boolean updateReportDefinitionInSession(String reportAbsPath, ReportDefinition newReportDefn, String bipSessionToken);

表4-22 updateReportDefinitionInSession()メソッドのパラメータ

パラメータ

説明

String reportAbsPath

レポート定義を更新するレポートへのパス。(例: /HR Manager/Employee Reports/Employee Listing.xdo)。

ReportDefinition newReportDefn

第2.3.45項「ReportDefinition」を参照してください。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

4.23 updateTemplateForReport()メソッド

updateTemplateForReport()メソッドは、BI Publisherカタログ内の特定レポートのテンプレートを更新します。

シグネチャ

boolean updateTemplateForReport(String reportAbsolutePath, String templateName, String locale, byte[] templateData, String userID, String password);

表4-23 updateTemplateForReport()メソッドのパラメータ

パラメータ

説明

String reportAbsolutePath

更新するテンプレートが含まれるレポートへのパス。(例: /HR Manager/Employee Reports/Employee Listing.xdo)。

String templateName

更新するテンプレートの名前(例: Chart Layout)。

String locale

更新するテンプレートのロケール(例: en_US)。

byte[] templateData

テンプレート・ファイル。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

4.24 updateTemplateForReportInSession()メソッド

updateTemplateForReportInSession()メソッドは、指定ユーザーのbipSessionTokenに基づいてBI Publisherカタログ内の特定レポートのテンプレートを更新します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

boolean updateTemplateForReportInSession(String reportAbsolutePath, String templateName, String locale, byte[] templateData, String bipSessionToken);

表4-24 updateTemplateForReportInSession()メソッドのパラメータ

パラメータ

説明

String reportAbsolutePath

更新するテンプレートが含まれるレポートへのパス。(例: /HR Manager/Employee Reports/Employee Listing.xdo)。

String templateName

更新するテンプレートの名前(例: Chart Layout)。

String locale

更新するテンプレートのロケール(例: en_US)。

byte[] templateData

テンプレート・ファイル。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

4.25 updateXLIFFForReport()メソッド

updateXLIFFForReport()メソッドは、BI Publisherカタログ内のレイアウト定義に関連付けられた翻訳ファイル(XLIFF)を更新します。

シグネチャ

boolean updateXLIFFForReport(String reportAbsolutePath, byte[] xliffData, String layoutFileName, String locale, String userID, String password);

表4-25 updateXLIFFForReport()メソッドのパラメータ

パラメータ

説明

String reportAbsolutePath

更新するXLIFFファイルが含まれるレポートへのパス。(例: /HR Manager/Employee Reports/Employee Listing.xdo)。

byte[] xliffData

アップロードするXLIFFファイルです。

String layoutFileName

XLIFFファイルを更新対象とするレイアウトのファイル名。たとえば、employee_listing.rtfです。

String locale

XLIFFに割り当てられるロケールです(en_USなど)。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

4.26 updateXLIFFForReportInSession()メソッド

updateXLIFFForReportInSession()メソッドは、指定ユーザーのbipSessionTokenに基づいてBI Publisherカタログ内のレイアウト定義に関連付けられた翻訳ファイル(XLIFF)を更新します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

boolean updateXLIFFForReportInSession(String reportAbsolutePath, byte[] xliffData, String layoutFileName, String locale, String bipSessionToken);

表4-26 updateXLIFFForReportInSession()メソッドのパラメータ

パラメータ

説明

String reportAbsolutePath

更新するXLIFFファイルが含まれるレポートへのパス。(例: /HR Manager/Employee Reports/Employee Listing.xdo)。

byte[] xliffData

アップロードするXLIFFファイルです。

String layoutFileName

XLIFFファイルを更新対象とするレイアウトのファイル名。たとえば、employee_listing.rtfです。

String locale

XLIFFに割り当てられるロケールです(en_USなど)。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

4.27 uploadReportDataChunk()メソッド

uploadReportDataChunk()メソッドは、レポート・データ・チャンクをアップロードします。

注意:

uploadReportDataChunk()やdownloadReportDataChunk()をクラスタ環境で使用する際、クラスタ内にあるすべてのサーバーでアクセスできる共有ディレクトリに「システム一時ディレクトリ」を設定する必要があります。「システム一時ディレクトリ」を設定するには:

1. BI Publisherに管理者権限でサインインします。

2. 「管理」リンクをクリックします。

3. 「システム・メンテナンス」で「サーバー構成」を選択します。

4. 「システム一時ディレクトリ」プロパティの「一般プロパティ」の下で、クラスタ内にあるすべてのサーバーでアクセスできるディレクトリの絶対パスを入力します。
たとえば、ディレクトリは${xdo.server.config.dir}/tempの下に存在できますが、絶対パス(/net/subfoldera/scratch/subfolderb/11gcat/tempなど)を入力する必要があります。

「システム一時ディレクトリ」で同じ値を入力して、クラスタ内にあるすべてのサーバーでこの手順を繰り返します。

シグネチャ

uploadReportDataChunk(String fileID, byte[] reportDataChunk, String reportRawDataChunk, String userID, String password);

表4-27 uploadReportDataChunk()メソッドのパラメータ

パラメータ

説明

String fileID

最初のコールではfileIDを指定する必要がありません。最初のXMLデータのチャンクのアップロードが成功すると、ファイル名などのfileIDが返されます。その後のコールでは、同じfileIDを指定して同じファイルにその後のデータ・チャンクを追加できます。

byte[] reportDataChunk

アップロードするXMLデータ。

String reportRawDataChunk

XMLデータをreportRawDataChunkと表す文字列。これは、reportDataChunk byte[]の代用です。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

4.28 uploadReportDataChunkInSession()メソッド

uploadReportDataChunkInSession()メソッドは、指定ユーザーのbipSessionTokenに基づいてレポート・データ・チャンクをアップロードします。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

uploadReportDataChunkInSession(String fileID, byte[] reportDataChunk, String reportRawDataChunk, String bipSessionToken);

表4-28 uploadReportDataChunkInSession()メソッドのパラメータ

パラメータ

説明

byte[] reportDataChunk

アップロードするXMLデータ。

String reportRawDataChunk

XMLデータをreportRawDataChunkと表す文字列。これは、reportDataChunk byte[]の代用です。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

4.29 uploadTemplateForReport()メソッド

uploadTemplateForReport()メソッドは、BI Publisherカタログ内のレポート定義にテンプレートをアップロードします。

シグネチャ

boolean uploadTemplateForReport(String reportAbsolutePath, String templateName, String templateType, String locale, byte[] templateData, String userID, String password);

表4-29 uploadTemplateForReport()メソッドのパラメータ

パラメータ

説明

String reportAbsolutePath

テンプレートのアップロード先となるレポートへのパス。(例: /HR Manager/Employee Reports/Employee Listing.xdo)。

String templateName

アップロードするテンプレートのファイル名。

String templateType

テンプレート・タイプ。有効な値は次のとおりです。

- csv (CSV)

- eText (eTextのテンプレート)

- excel (Microsoft Excel)

- excel2000 (Microsoft Excel 2000)

- flash (Adobe Flash)

- html (HTML)

- mhtml (MIME HTML)

- pdf (Adobe PDF)

- pdfz (eBook)

- ppt (Microsoft PowerPoint)

- rtf (リッチ・テキスト形式)

- text (テキスト)

- txml (変換されたXML)

- xml (XML)

- xpa (Analyzerテンプレート)

- xpt (BI Publisherテンプレート)

- xslfo (XSL-FOスタイル・シート)

String locale

テンプレートに割り当てられるロケール(例: en_US)。

byte[] templateData

アップロードするテンプレート・ファイルのコンテンツ。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

4.30 uploadTemplateForReportInSession()メソッド

uploadTemplateForReportInSession()メソッドは、指定ユーザーのbipSessionTokenに基づいてBI Publisherカタログ内のレポート定義にテンプレートをアップロードします。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

boolean uploadTemplateForReportInSession(String reportAbsolutePath, String templateName, String templateType, String locale, byte[] templateData, String bipSessionToken);

表4-30 uploadTemplateForReportInSession()メソッドのパラメータ

パラメータ

説明

String reportAbsolutePath

テンプレートのアップロード先となるレポートへのパス。(例: /HR Manager/Employee Reports/Employee Listing.xdo)。

String templateFileName

アップロードするテンプレートのファイル名。

String templateName

アップロードするテンプレートの名前。

String locale

テンプレートに割り当てられるロケール(例: en_US)。

byte[] templateData

アップロードするテンプレート・ファイルのコンテンツ。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

4.31 uploadXLIFFForReport()メソッド

uploadXLIFFForReport()メソッドは、BI Publisherカタログ内のレイアウト定義に翻訳ファイル(XLIFF)をアップロードします。

シグネチャ

boolean uploadXLIFFForReport(String reportAbsolutePath, byte[] xliffData, String layoutFileName, String locale, String userID, String password);

表4-31 uploadXLIFFForReport()メソッドのパラメータ

パラメータ

説明

String reportAbsolutePath

XLIFFのアップロード先となるレポートへのパス。(例: /HR Manager/Employee Reports/Employee Listing.xdo)。

byte[] xliffData

アップロードするXLIFFファイルです。

String layoutFileName

XLIFFファイルに関連したレイアウトのファイル名。たとえば、employee_listing.rtfです。

String locale

XLIFFに割り当てられるロケールです(en_USなど)。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

4.32 uploadXLIFFForReportInSession()メソッド

uploadXLIFFForReport()メソッドは、指定ユーザーのbipSessionTokenに基づいてBI Publisherカタログ内のレイアウト定義に翻訳ファイル(XLIFF)をアップロードします。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

boolean uploadXLIFFForReportInSession(String reportAbsolutePath, byte[] xliffData, String layoutFileName, String locale, String bipSessionToken);

表4-32 uploadXLIFFForReportInSession()メソッドのパラメータ

パラメータ

説明

String reportAbsolutePath

XLIFFのアップロード先となるレポートへのパス。(例: /HR Manager/Employee Reports/Employee Listing.xdo)。

byte[] xliffData

アップロードするXLIFFファイルです。

String layoutFileName

XLIFFファイルに関連したレイアウトのファイル名。たとえば、employee_listing.rtfです。

String locale

XLIFFに割り当てられるロケールです(en_USなど)。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

5 SecurityService

この章では、認証、偽装、ログイン、ログアウト、アカウント管理など、BI Publisherサーバーのセキュリティ操作を管理するためのSecurityServiceメソッドの詳細について説明します。

この章の内容は次のとおりです。

- 第5.1項「assignRolesToUser()メソッド」

- 第5.2項「createRole()メソッド」

- 第5.3項「createUser()メソッド」

- 第5.4項「deleteRole()メソッド」

- 第5.5項「deleteUser()メソッド」

- 第5.6項「getBIPHTTPSessionInterval()メソッド」

- 第5.7項「getObjectSecurityXML()メソッド」

- 第5.8項「getSecurityModel()メソッド」

- 第5.9項「hasObjectAccess()メソッド」

- 第5.10項「hasObjectAccessInSession()メソッド」

- 第5.11項「impersonate()メソッド」

- 第5.12項「isUserExists()メソッド」

- 第5.13項「login()メソッド」

- 第5.14項「logout()メソッド」

- 第5.15項「notifyBIEEPreferencesUpdated()メソッド」

- 第5.16項「notifyBIEEPreferencesUpdatedWithString()メソッド」

- 第5.17項「removeRolesFromUser()メソッド」

- 第5.18項「updateRole()メソッド」

- 第5.19項「updateUser()メソッド」

- 第5.20項「validateLogin()メソッド」

注意:

BI Publisher Webサービスを使用して作成されたアプリケーションをデバッグする方法の詳細は、第1.3項「Webサービス・アプリケーションのデバッグ」を参照してください。

注意:

SecurityServiceが使用できるのは、BI Publisherセキュリティ・モデルのみです。ご使用のBI Publisherデプロイメントで別のセキュリティ・モデル(LDAP、Oracle E-Business Suite、Oracle Fusion Appsなど)が使用されている場合、SecurityService APIを使用できません。

5.1 assignRolesToUser()メソッド

assignRolesToUser()メソッドは、新しいロールをBI Publisherのユーザーに割り当てます。

シグネチャ

String[] assignRolesToUser(String userName, String[] roleNames, String adminUser, String adminPassword);

表5-1 assignRolesToUser()メソッドのパラメータ

パラメータ

説明

String userName

ロール(複数可)を追加するユーザー。

String[] roleNames

ユーザーを追加するロールの名前。(例: 金融関係のユーザー)。

String adminUser

管理権限でユーザーにBI Publisherユーザー名を指定します。

String adminPassword

管理ユーザー名にパスワードを指定します。

5.2 createRole()メソッド

createRole()メソッドは、BI Publisher内にロールを作成します。

シグネチャ

boolean createRole(String roleName, String description, String adminUser, String adminPassword);

表5-2 createRole()メソッドのパラメータ

パラメータ

説明

String roleName

作成するロールの名前。(例: 金融関係のユーザー)。

String description

ロールの説明。

String adminUser

管理権限でユーザーにBI Publisherユーザー名を指定します。

String adminPassword

管理ユーザー名にパスワードを指定します。

5.3 createUser()メソッド

createUser()メソッドは、BI Publisher内にユーザーを作成します。このメソッドは、正常なメソッドのブール値を返します。

シグネチャ

boolean createUser(String userName, String password, String adminUser, String adminPassword);

表5-3 createUser()メソッドのパラメータ

パラメータ

説明

String userName

作成するユーザー名。

String password

新規作成ユーザーのパスワード。

String adminUser

管理権限でユーザーにBI Publisherユーザー名を指定します。

String adminPassword

管理ユーザー名にパスワードを指定します。

5.4 deleteRole()メソッド

deleteRole()メソッドは、BI Publisherからロールを削除します。このメソッドは、正常なメソッドのブール値を返します。

シグネチャ

boolean deleteRole(String roleName, String adminUser, String adminPassword);

表5-4 deleteRole()メソッドのパラメータ

パラメータ

説明

String roleName

削除するユーザー名。

String adminUser

管理権限でユーザーにBI Publisherユーザー名を指定します。

String adminPassword

管理ユーザー名にパスワードを指定します。

5.5 deleteUser()メソッド

deleteUser()メソッドは、BI Publisherからユーザーを削除します。このメソッドは、正常なメソッドのブール値を返します。

シグネチャ

boolean deleteUser(String userName, String adminUser, String adminPassword);

表5-5 deleteUser()メソッドのパラメータ

パラメータ

説明

String userName

削除するユーザー名。

String adminUser

管理権限でユーザーにBI Publisherユーザー名を指定します。

String adminPassword

管理ユーザー名にパスワードを指定します。

5.6 getBIPHTTPSessionInterval()メソッド

このメソッドは、HTTPセッションの間隔を秒数で返します。

シグネチャ

int getBIPHTTPSessionInterval(void);

5.7 getObjectSecurityXML()メソッド

このメソッドは、BIEE統合カタログに対するレポートレベル権限を(security.xmlから)抽出します。

シグネチャ

byte[] getObjectSecurityXML(String adminUsername, String adminPassword, String objectAbsolutePath, boolean isRecursive);

表5-6 getObjectSecurityXML()メソッドのパラメータ

パラメータ

説明

String adminUsername

管理権限でBI Publisherユーザーに指定するユーザー名。

String adminPassword

adminUserNameに関連付けられているパスワード。

String objectAbsolutePath

security.xmlへの絶対パス。

boolean isRecursive

objectAbsolutePathが再帰的かどうかを示します。

5.8 getSecurityModel()メソッド

このメソッドは、BI Publisherのセキュリティ・モデルを所定の場所に返します。

シグネチャ

String getSecurityModel(void);

5.9 hasObjectAccess()メソッド

このメソッドは、reportAbsolutePathが参照するレポート・オブジェクトに対するアクセス権限が指定ユーザーにあるかどうかを検証します。このメソッドは、指定された資格証明で最初にユーザーを認証します。正常に認証が完了すると、レポート・オブジェクトへのユーザーのアクセス権限を検証します。

シグネチャ

boolean hasObjectAccess(String reportAbsolutePath, String roleName, String userID, String password);

表5-7 hasObjectAccess()メソッドのパラメータ

パラメータ

説明

String reportAbsolutePath

ユーザーのアクセス権限を検証する対象レポート・オブジェクトへのパス。(例: /HR Manager/Employee Reports/Employee Listing.xdo)。

String roleName

将来用です。機能していないのでこのパラメータを無視してください。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

5.10 hasObjectAccessInSession()メソッド

このメソッドは、reportAbsolutePathに関連するレポート・オブジェクトに対するアクセス権限が認証前のbipSessionにあるかどうかを検証します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

boolean hasObjectAccessInSession(string reportAbsolutePath, string roleName, string bipSessionToken);

表5-8 hasObjectAccessInSession()メソッドのパラメータ

パラメータ

説明

String reportAbsolutePath

レポート・オブジェクトへの絶対パス。

String roleName

指定ユーザーに関連付けられているロール。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

5.11 impersonate()メソッド

このメソッドは、ユーザー・アカウントのかわりに機能する管理アカウントを有効にします。BI Publisherサーバーで認証される際のパスワードをユーザーが知らない場合、これは非常に便利です。このメソッドは、管理アカウント権限を使用してログインし、渡されたユーザー名にBI Publisherサーバー・セッションの所有者を切り替えます。したがって、渡されたユーザー名でbipSessionトークンは後から検証されます。それ以降のBI Publisher操作はすべて、指定されたユーザー名を使用して実行されます。

シグネチャ

String impersonate(String adminUsername, String adminPassword,String username);

表5-9 impersonate()メソッドのパラメータ

パラメータ

説明

String adminUserName

管理権限でユーザーにBI Publisherユーザー名を指定します。

String adminPassword

管理ユーザー名にパスワードを指定します。

String username

管理者権限を付与されるユーザー・アカウントのユーザー名。

5.12 isUserExists()メソッド

isUserExists()メソッドは、BI Publisherセキュリティ・モデル内のユーザー名の有無をテストします。このメソッドは、結果をブール値として返します。

シグネチャ

boolean isUserExists(String userName, String adminUser, String adminPassword);

表5-10 isUserExists()メソッドのパラメータ

パラメータ

説明

String userName

テストするユーザー名。

String adminUser

管理権限でユーザーにBI Publisherユーザー名を指定します。

String adminPassword

管理ユーザー名にパスワードを指定します。

5.13 login()メソッド

login()メソッドは、BI Publisherにログインし、Web Servicesを使用してその他のBI Publisherアクションを実行します。login()メソッドは、BI PublisherセッションIDとなる文字列を返します。

シグネチャ

String login(String userID, String password);

表5-11 login()メソッドのパラメータ

パラメータ

説明

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

5.14 logout()メソッド

このメソッドは、実際には、特定のユーザーのbipSessionTokenを検証して、そのユーザーをシステムからログアウトさせます。正常なログアウトが完了すると、bipSessionToken文字列は無効になります。

シグネチャ

boolean logout(String bipSessionToken);

表5-12 logout()メソッドのパラメータ

パラメータ

説明

String bipSessionToken

BI PublisherセッションのID。

5.15 notifyBIEEPreferencesUpdated()メソッド

このメソッドは、BIEEユーザー・プリファレンスの統合のためにのみ提供されます。

シグネチャ

boolean notifyBIEEPreferencesupdated(bieeSessionID);

表5-13 notifyBIEEPreferencesUpdated()メソッドのパラメータ

パラメータ

説明

String bieeSessionID

Oracle Business IntelligenceとBI Publisherの統合に対応したセッションID。

5.16 notifyBIEEPreferencesUpdatedWithString()メソッド

このメソッドは、BIEEユーザー・プリファレンスの統合のためにのみ提供されます。

シグネチャ

boolean notifyBIEEPreferencesUpdatedWithString(String bieeSessionID, String userPrefesXML);

表5-14 notifyBIEEPreferencesUpdatedWithString()メソッドのパラメータ

パラメータ

説明

String bieeSessionID

Oracle Business IntelligenceとBI Publisherの統合に対応したセッションID。

String userPrefesXML

ユーザー・プリファレンスが記述されたXMLデータ。

5.17 removeRolesFromUser()メソッド

removeRolesFromUser()メソッドは、ロールをBI Publisherのユーザーから削除します。

シグネチャ

String[] removeRolesFromUser(String userName, String[] roleNames, String adminUser, String adminPassword);

表5-15 removeRolesFromUser()メソッドのパラメータ

パラメータ

説明

String userName

ロール(複数可)を削除するユーザー。

String[] roleNames

ユーザーから削除するロールの名前。(例: 金融関係のユーザー)。

String adminUser

管理権限でユーザーにBI Publisherユーザー名を指定します。

String adminPassword

管理ユーザー名にパスワードを指定します。

5.18 updateRole()メソッド

updateRole()メソッドは、BI Publisher内に現在あるロールの説明を更新します。

シグネチャ

boolean updateRole(String currentRoleName, String newDescription, String adminUser, String adminPassword);

表5-16 updateRole()メソッドのパラメータ

パラメータ

説明

String currentRoleName

更新するロールの名前。

String newDescription

適用するロールの更新された説明。

String adminUser

管理権限でユーザーにBI Publisherユーザー名を指定します。

String adminPassword

管理ユーザー名にパスワードを指定します。

5.19 updateUser()メソッド

updateUser()メソッドは、BI Publisher内のユーザーのパスワードを更新します。このメソッドは、正常なメソッドのブール値を返します。

シグネチャ

boolean updateUser(String currentUsername, String newPassword, String adminUser, String adminPassword);

表5-17 updateUser()メソッドのパラメータ

パラメータ

説明

String currentUserName

更新するユーザー名。

String newPassword

新しいユーザー名に割り当てる新しいパスワード。

String adminUser

管理権限でユーザーにBI Publisherユーザー名を指定します。

String adminPassword

管理ユーザー名にパスワードを指定します。

5.20 validateLogin()メソッド

validateLogin()メソッドは、Oracle BI Publisherレポート・サーバーにアクセスする権限がuserIDとpasswordにあることを検証します。

シグネチャ

boolean validateLogin(String userID, String password);

表5-18 validateLogin()メソッドのパラメータ

パラメータ

説明

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

6 CatalogService

この章では、BI Publisherサーバーのトップレベル・カタログとやり取りするためのCatalogServiceメソッドについて説明します。CatalogServiceは、フォルダ、レポート、データ・モデル、スタイル・テンプレート、サブテンプレートなどのすべてのレポート・オブジェクトを管理し、作成、削除、コピー、名前の変更などの一般的な操作に対応するメソッドを提供します。

この章の内容は次のとおりです。

- 第6.1項「copyObject()メソッド」

- 第6.2項「copyObjectInSession()メソッド」

- 第6.3項「createFolder()メソッド」

- 第6.4項「createFolderInSession()メソッド」

- 第6.5項「createObject()メソッド」

- 第6.6項「createObjectInSession()メソッド」

- 第6.7項「deleteObject()メソッド」

- 第6.8項「deleteObjectInSession()メソッド」

- 第6.9項「downloadObject()メソッド」

- 第6.10項「downloadObjectInSession()メソッド」

- 第6.11項「downloadXLIFF()メソッド」

- 第6.12項「downloadXLIFFInSession()メソッド」

- 第6.13項「getFolderContents()メソッド」

- 第6.14項「getFolderContentsInSession()メソッド」

- 第6.15項「getObject()メソッド」

- 第6.16項「getObjectInfo()メソッド」

- 第6.17項「getObjectInfoInSession()メソッド」

- 第6.18項「getObjectInSession()メソッド」

- 第6.19項「objectExist()メソッド」

- 第6.20項「objectExistInSession()メソッド」

- 第6.21項「renameObject()メソッド」

- 第6.22項「renameObjectInSession()メソッド」

- 第6.23項「updateObject()メソッド」

- 第6.24項「updateObjectInSession()メソッド」

- 第6.25項「uploadObject()メソッド」

- 第6.26項「uploadObjectInSession()メソッド」

- 第6.27項「uploadXLIFF()メソッド」

- 第6.28項「uploadXLIFFInSession()メソッド」

注意:

BI Publisher Webサービスを使用して作成されたアプリケーションをデバッグする方法の詳細は、第1.3項「Webサービス・アプリケーションのデバッグ」を参照してください。

6.1 copyObject()メソッド

copyObject()メソッドは、BI Publisherカタログ内のオブジェクトをコピーします。

シグネチャ

boolean copyObject(String srcOjectAbsolutePath, String destObjectAbsolutePath, String newName, String userID, String password);

表6-1 copyObject()メソッドのパラメータ

パラメータ

説明

String srcOjectAbsolutePath

コピーするカタログ・オブジェクトへのパスです。

String destObjectAbsolutePath

オブジェクトのコピー先となるカタログ内の場所へのパスです。

String newName

新しいオブジェクトに割り当てる名前です。

String userID

BI Publisherのユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

6.2 copyObjectInSession()メソッド

このメソッドは、srcObjectAbsolutePathが参照するレポート・オブジェクトをdestFolderAbsolutePathが指定するコピー先フォルダにコピーします。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

boolean copyObjectInSession(String srcObjectAbsolutePath, String destFolderAbsolutePath, String newName, String bipSessionToken);

表6-2 copyObjectInSession()メソッドのパラメータ

パラメータ

説明

String srcOjectAbsolutePath

コピーするカタログ・オブジェクトへのパスです。

String destObjectAbsolutePath

オブジェクトのコピー先となるカタログ内の場所へのパスです。

String newName

新しいオブジェクトに割り当てる名前です。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

6.3 createFolder()メソッド

createFolder()メソッドを使用して、BI Publisherカタログ内にフォルダを作成します。

シグネチャ

String createFolder(String folderAbsolutePath, String userID, String password);

表6-3 createFolder()メソッドのパラメータ

パラメータ

説明

String folderAbsolutePath

作成するフォルダへのパスです。(例: /HR Manager/Employee Reports/)。

String userID

BI Publisherのユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

6.4 createFolderInSession()メソッド

createFolderInSession()メソッドは、指定ユーザーに対してBI Publisherカタログ内にフォルダを作成します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

String createFolderInSession(String folderAbsolutePath, String bipSessionToken);

表6-4 createFolderInSession()メソッドのパラメータ

パラメータ

説明

String folderAbsolutePath

作成するフォルダへのパスです。(例: /HR Manager/Employee Reports/)。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

6.5 createObject()メソッド

createObject()メソッドは、BI Publisherカタログにオブジェクトを作成します。

シグネチャ

String createObject(String objectAbsolutePathURL, String objectName, String objectType, String objectDescription, byte[] objectData, String accessPermission, String userID, String password);

表6-5 createObject()メソッドのパラメータ

パラメータ

説明

String objectAbsolutePathURL

新しいオブジェクトを配置するカタログ内のフォルダへの絶対パスです。

String objectName

新しいオブジェクトの名前です。

String objectType

カタログ・オブジェクトのタイプです。有効な値は次のとおりです。

xdm (データ・モデル)

xdo (レポート)

xsb (サブテンプレート)

xss (スタイル・テンプレート)

String objectDescription

新しいオブジェクトの説明を指定します。

byte[] objectData

オブジェクトのバイト・データです。

String accessPermission

新しいオブジェクトに割り当てるアクセス権です。

String userID

BI Publisherのユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

6.6 createObjectInSession()メソッド

createObjectInSession()メソッドは、指定ユーザーに対していBI Publisherカタログ内にオブジェクトを作成します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

String createObjectInSession(String folderAbsolutePathURL, String objectName, String objectType, String objectDescription, byte[] objectData, String bipSessionToken);

表6-6 createObjectInSession()メソッドのパラメータ

パラメータ

説明

String objectAbsolutePathURL

新しいオブジェクトを配置するカタログ内のフォルダへの絶対パスです。

String objectName

新しいオブジェクトの名前です。

String objectType

カタログ・オブジェクトのタイプです。有効な値は次のとおりです。

xdm (データ・モデル)

xdo (レポート)

xsb (サブテンプレート)

xss (スタイル・テンプレート)

String objectDescription

新しいオブジェクトの説明を指定します。

byte[] objectData

オブジェクトのバイト・データです。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

6.7 deleteObject()メソッド

deleteObject()メソッドは、BI Publisherカタログからオブジェクトを削除します。

シグネチャ

boolean deleteObject(String reportObjectAbsolutePath, String userID, String password);

表6-7 deleteObject()メソッドのパラメータ

パラメータ

説明

String reportObjectAbsolutePath

カタログの削除対象オブジェクトのパスです。

String userID

BI Publisherのユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

6.8 deleteObjectInSession()メソッド

deleteObjectInSession()メソッドは、指定ユーザーのBI Publisherカタログからオブジェクトを削除します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

boolean deleteObjectInSession(String objectAbsolutePath, String bipSessionToken);

表6-8 deleteObjectInSession()メソッドのパラメータ

パラメータ

説明

String objectAbsolutePath

カタログの削除対象オブジェクトのパスです。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

6.9 downloadObject()メソッド

downloadObject()メソッドは、BI Publisherカタログからオブジェクトをダウンロードします。このメソッドはリクエストされたオブジェクトをバイナリで返します。

シグネチャ

byte[] downloadObject(String reportAbsolutePath, String userID, String password);

表6-9 downloadObject()メソッドのパラメータ

パラメータ

説明

String reportAbsolutePath

カタログ内のダウンロード対象オブジェクトへのパスです。

String userID

BI Publisherのユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

6.10 downloadObjectInSession()メソッド

downloadObjectInSession()メソッドは、指定ユーザーのBI Publisherカタログからオブジェクトをダウンロードします。このメソッドはリクエストされたオブジェクトをバイナリで返します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

byte[] downloadObjectInSession(String reportAbsolutePath, String bipSessionToken);

表6-10 downloadObjectInSession()メソッドのパラメータ

パラメータ

説明

String reportAbsolutePath

カタログ内のダウンロード対象オブジェクトへのパスです。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

6.11 downloadXLIFF()メソッド

downloadXLIFF()メソッドは、カタログから翻訳ファイル(XLIFF)をダウンロードします。このメソッドは、リクエストされたXLIFFファイルをバイナリで返します。

シグネチャ

byte[] downloadXLIFF(String objectAbsolutePath, String userID, String password);

表6-11 downloadXLIFF()メソッドのパラメータ

パラメータ

説明

String objectAbsolutePath

ダウンロードするXLIFFオブジェクトへのパスです。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

6.12 downloadXLIFFInSession()メソッド

downloadXLIFFInSession()メソッドは、指定ユーザーのカタログdownloadXLIFFInSessionから翻訳ファイル(XLIFF)をダウンロードします。このメソッドは、リクエストされたXLIFFファイルをバイナリで返します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

byte[] downloadXLIFFInSession(String objectAbsolutePath, String locale, String bipSessionToken);

表6-12 downloadXLIFFInSession()メソッドのパラメータ

パラメータ

説明

String objectAbsolutePath

ダウンロードするXLIFFオブジェクトへのパスです。

String locale

XLIFFオブジェクトのロケールです(en_USなど)。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

6.13 getFolderContents()メソッド

getFolderContentsは、フォルダ内のすべてのアイテムを取得します。この操作では、指定されたフォルダ内のすべてのレポートとフォルダが返されます。これらのアイテムを使用して、実行するレポートや、さらに検索を行ってレポートを特定するフォルダを決定できます。

返されたオブジェクトの説明は、CatalogContentsを参照してください。

シグネチャ

CatalogContents getFolderContents(String folderAbsolutePath, String userID, String password);

表6-13 getFolderContents()メソッドのパラメータ

パラメータ

説明

String folderAbsolutePath

コンテンツ取得元となるフォルダへのパスです。(例: /HR Manager/Employee Reports/)。

String userID

BI Publisherのユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

6.14 getFolderContentsInSession()メソッド

getFolderContentsInSession()は、指定ユーザーのフォルダ内のアイテムをすべて取得します。この操作では、指定されたフォルダ内のすべてのレポートとフォルダが返されます。これらのアイテムを使用して、実行するレポートや、さらに検索を行ってレポートを特定するフォルダを決定できます。

返されたオブジェクトの説明は、CatalogContentsを参照してください。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

CatalogContents getFolderContentsInSession(String folderAbsolutePath, String bipSessionToken);

表6-14 getFolderContentsInSession()メソッドのパラメータ

パラメータ

説明

String folderAbsolutePath

コンテンツ取得元となるフォルダへのパスです。(例: /HR Manager/Employee Reports/)。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

6.15 getObject()メソッド

getObject()メソッドは、カタログからオブジェクトをダウンロードします。このメソッドはリクエストされたオブジェクト・ファイルをバイナリで返します。

シグネチャ

byte[] getObject(String reportObjectAbsolutePath, String locale, String userID, String password);

表6-15 getObject()メソッドのパラメータ

パラメータ

説明

String reportObjectAbsolutePath

ダウンロードするオブジェクトへのパスです。

String locale

取得するオブジェクトのロケールです。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

6.16 getObjectInfo()メソッド

getObjectInfo()メソッドは、BI Publisherカタログのオブジェクトに関する情報を取得します。このメソッドはCatalogObjectInfoオブジェクトを返します。CatalogObjectInfoを参照してください。

シグネチャ

CatalogObjectInfo getObjectInfo(String reportObjectAbsolutePath, String userID, String password);

表6-16 getObjectInfo()メソッドのパラメータ

パラメータ

説明

String reportObjectAbsolutePath

情報取得に関するレポート・オブジェクトへのパスです。

String userID

BI Publisherのユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

6.17 getObjectInfoInSession()メソッド

getObjectInfoInSession()メソッドは、指定ユーザーのBI Publisherカタログのオブジェクトに関する情報を取得します。このメソッドはCatalogObjectInfoオブジェクトを返します。CatalogObjectInfoを参照してください。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

CatalogObjectInfo getObjectInfoInSession(String objectAbsolutePath, String bipSessionToken);

表6-17 getObjectInfoInSession()メソッドのパラメータ

パラメータ

説明

String reportObjectAbsolutePath

情報取得に関するレポート・オブジェクトへのパスです。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

6.18 getObjectInSession()メソッド

getObjectInSession()メソッドは、指定ユーザーのカタログからオブジェクトをダウンロードします。このメソッドはリクエストされたオブジェクト・ファイルをバイナリで返します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

byte[] getObjectInSession(String objectAbsolutePath, String bipSessionToken);

表6-18 getObjectInSession()メソッドのパラメータ

パラメータ

説明

String reportObjectAbsolutePath

取得するオブジェクトへのパスです。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

6.19 objectExist()メソッド

objectExist()メソッドは、BI Publisherカタログ内のオブジェクトの有無を特定します。

シグネチャ

boolean objectExist(String reportObjectAbsolutePath, String userID, String password);

表6-19 objectExist()メソッドのパラメータ

パラメータ

説明

String reportOjectAbsolutePath

カタログ内でテスト対象となるオブジェクトへのパスです。例: /HR Manager/Employee Reports/Employee Data Model.xdm

String userID

BI Publisherのユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

6.20 objectExistInSession()メソッド

objectExist()メソッドは、指定ユーザーのBI Publisherカタログ内のオブジェクトの有無を特定します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

boolean objectExistInSession(String reportObjectAbsolutePath, String bipSessionToken);

表6-20 objectExistInSession()メソッドのパラメータ

パラメータ

説明

String reportOjectAbsolutePath

カタログ内でテスト対象となるオブジェクトへのパスです。例: /HR Manager/Employee Reports/Employee Data Model.xdm

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

6.21 renameObject()メソッド

renameObject()メソッドは、BI Publisherカタログ内のオブジェクトの名前を変更します。

シグネチャ

boolean renameObject(String reportObjectAbsolutePath, String newName, String userID, String password);

表6-21 renameObject()メソッドのパラメータ

パラメータ

説明

String reportObjectAbsolutePath

カタログ内にある、名前を変更するオブジェクトへのパスです。

String newName

オブジェクトに割り当てられる新しい名前です。

String userID

BI Publisherのユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

6.22 renameObjectInSession()メソッド

renameObject()メソッドは、指定ユーザーのBI Publisherカタログ内にあるオブジェクトの名前を変更します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

boolean renameObjectInSession(String objectAbsolutePath, String newName, String bipSessionToken);

表6-22 renameObjectInSession()メソッドのパラメータ

パラメータ

説明

String reportObjectAbsolutePath

カタログ内にある、名前を変更するオブジェクトへのパスです。

String newName

オブジェクトの新しい名前です。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

6.23 updateObject()メソッド

updateObject()メソッドは、BI Publisherカタログ内のオブジェクトを更新します。

シグネチャ

boolean updateObject(String reportObjectAbsolutePath, byte[] objectData, String userID, String password);

表6-23 updateObject()メソッドのパラメータ

パラメータ

説明

String reportOjectAbsolutePath

カタログ内にある更新対象オブジェクトへのパスです。例: /HR Manager/Employee Reports/Employee Data Model.xdm

byte[] objectData

オブジェクトを更新する際に使用するデータです。

String userID

BI Publisherのユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

6.24 updateObjectInSession()メソッド

updateObject()メソッドは、指定ユーザーのBI Publisherカタログ内にあるオブジェクトを更新します。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

boolean updateObjectInSession(String objectAbsolutePath, byte[] objectData, String bipSessionToken);

表6-24 updateObjectInSession()メソッドのパラメータ

パラメータ

説明

String reportOjectAbsolutePath

カタログ内にある更新対象オブジェクトへのパスです。例: /HR Manager/Employee Reports/Employee Data Model.xdm

byte[] objectData

オブジェクトを更新する際に使用するデータです。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

6.25 uploadObject()メソッド

uploadObject()メソッドは、新しいオブジェクトをBI Publisherカタログにアップロードします。

シグネチャ

String uploadObject(String reportObjectAbsolutePathURL, String objectType, byte[] objectZippedData, String userID, String password);

表6-25 uploadObject()メソッドのパラメータ

パラメータ

説明

String reportObjectAbsolutePathURL

カタログ内のオブジェクトへのパス。

String objectType

アップロードするオブジェクトのタイプです。有効な値は次のとおりです。

xdm (データ・モデル)

xdo (レポート)

xsb (サブテンプレート)

xss (スタイル・テンプレート)

byte[] objectZippedData

ZIP形式でアップロードするオブジェクトです。

String userID

BI Publisherのユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

6.26 uploadObjectInSession()メソッド

uploadObject()メソッドは、新しいオブジェクトを指定ユーザーのBI Publisherカタログにアップロードします。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

String uploadObject(String reportObjectAbsolutePathURL, String objectType, byte[] objectZippedData, String userID, String bipSessionToken);

表6-26 uploadObjectInSession()メソッドのパラメータ

パラメータ

説明

String reportObjectAbsolutePathURL

カタログ内のオブジェクトへのパス。

String objectType

アップロードするオブジェクトのタイプです。有効な値は次のとおりです。

xdm (データ・モデル)

xdo (レポート)

xsb (サブテンプレート)

xss (スタイル・テンプレート)

byte[] objectZippedData

ZIP形式でアップロードするオブジェクトです。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

6.27 uploadXLIFF()メソッド

uploadXLIFF()メソッドは、翻訳ファイル(XLIFF)をカタログにアップロードします。

シグネチャ

boolean uploadXLIFF(String objectAbsolutePath, byte[] xliffData, String locale, String userID, String password);

表6-27 uploadXLIFF()メソッドのパラメータ

パラメータ

説明

String objectAbsolutePath

アップロードするXLIFFオブジェクトへのパスです。

byte[] xliffData

アップロードするXLIFFファイルです。

String locale

XLIFFに割り当てられるロケールです(en_USなど)。

String userID

BI Publisherユーザー名を指定します。

String password

ユーザー名のパスワードを指定します。

6.28 uploadXLIFFInSession()メソッド

uploadXLIFF()メソッドは、翻訳ファイル(XLIFF)を指定ユーザーのカタログにアップロードします。

インセッション・メソッドの詳細は、第1.2項「インセッション・メソッドについて」を参照してください。

シグネチャ

boolean uploadXLIFF(String objectAbsolutePath, byte[] xliffData, String locale, String bipSessionToken);

表6-28 uploadXLIFFInSession()メソッドのパラメータ

パラメータ

説明

String objectAbsolutePath

アップロードするXLIFFオブジェクトへのパスです。

byte[] xliffData

アップロードするXLIFFファイルです。

String locale

XLIFFに割り当てられるロケールです(en_USなど)。

String bipSessionToken

BI Publisherサーバーでユーザーに対して生成された専用トークン文字列です。bipSessionToken文字列を使用すると、ユーザーは資格証明を入力する必要がなくなります。BI Publisherサーバーでは、このトークン文字列を検証し、BI Publisherサーバー・セッションを復元して必要な操作を実行できます。

第II部

Oracle BI Publisher Java API

Oracle BI Publisher Java APIは、開発者に強力なドキュメント生成を埋め込む機能、およびカスタム・アプリケーションへの直接配信機能を提供します。BI Publisherには、サポートされている様々なテンプレート型に対応した一連のドキュメント生成APIが備わっています。また、BI Publisherにはドキュメントをマージして、カスタム配信チャネル経由など、広範囲の配信先に配信するAPIも備わっています。

この部は、Oracle BI Publisher Java APIに関する次の章で構成されています。

- 第7章「BI Publisher Java APIの使用」

- 第8章「配信マネージャJava APIの使用」

7BI Publisher Java APIの使用

この章では、カスタム・アプリケーションからコールしてドキュメントを生成して処理できるBI Publisher Java APIについて説明します。

内容は次のとおりです。

- 第7.1項「BI PublisherのコアAPI」

- 第7.2項「前提条件」

- 第7.3項「ライブラリの入手」

- 第7.4項「PDFフォーム処理エンジン」

- 第7.5項「RTFプロセッサ・エンジン」

- 第7.6項「FOプロセッサ・エンジン」

- 第7.7項「PDFドキュメントのマージ機能」

- 第7.8項「PDF製本プロセッサ」

- 第7.9項「PDFデジタル署名エンジン」

- 第7.10項「eTextプロセッサ」

- 第7.11項「ドキュメント・プロセッサ・エンジン」

- 第7.12項「BI Publisherプロパティ」

- 第7.13項「バーコードの拡張書式設定」

注意:

この章の情報は、Oracle Fusion Middleware Business Intelligenceドキュメント・ライブラリで入手できるOracle Fusion Middleware Oracle Business Intelligence Publisher Java APIリファレンスで使用されます。またこの章では、Javaプログラミング、XMLおよびXSLテクノロジの知識があることを前提として記載されています。

7.1 BI PublisherのコアAPI

BI Publisherは、次のコアAPIコンポーネントで構成されています。

- PDFフォーム処理エンジン
PDFテンプレートをXMLデータ(およびオプションのメタデータ)とマージしてPDFドキュメント出力を作成します。第7.4項「PDFフォーム処理エンジン」を参照してください。

- RTFプロセッサ・エンジン
FOエンジンに対する入力用にRTFテンプレートをXSLに変換します。第7.5項「RTFプロセッサ・エンジン」を参照してください。

- FOプロセッサ・エンジン
XSLとXMLをマージして、Excel(HTML)、PDF、RTFまたはHTMLのいずれかの出力形式を作成します。第7.6項「FOプロセッサ・エンジン」を参照してください。

- PDFドキュメント・マージ機能
ドキュメントのマージ、ページ番号の追加および透かしの設定など、PDFファイルのオプションの後処理機能を提供します。第7.7項「PDFドキュメントのマージ機能」を参照してください。

- eTextプロセッサ
RTF eTextテンプレートをXSLに変換し、XSLとXMLをマージしてEDIおよびEFT伝送用のテキスト出力を作成します。第7.10項「eTextプロセッサ」を参照してください。

- ドキュメント・プロセッサ・エンジン(XML API)
テンプレート名、データソース、言語、出力タイプ、出力名および出力先を指定する単一のXMLファイルを渡すことによって、単一のAPIまたは複数のAPIにアクセスするバッチ処理機能を提供します。第7.11項「ドキュメント・プロセッサ・エンジン」を参照してください。

次の図に、各コア処理エンジンに対するテンプレート・タイプおよび出力タイプのオプションを示します。

図7-1 BI Publisherコア処理エンジンのテンプレート・タイプおよび出力タイプ

7.2 前提条件

BI Publisher APIを使用するには、xdocore.jarがクラス・パス内にあることを確認します。xdocore.jarにはBI Publisher APIのメイン・ライブラリが格納されています。

さらに、次のライブラリが必要です。

- aolj.jar: 様々なBI Publisher機能をサポート

- collections.jar - 配信APIまたはバースト・エンジンを操作する場合のみ必要

- dvt-jclient.jar: チャート・ライブラリ

- dvt-utils.jar: チャート・ライブラリ

- groovy-all-1.6.3.jar: Groovy

- i18nAPI_v3.jar: ローカライゼーション関数で使用されるi18nライブラリ

- jewt4.jar: チャート・サポート・ライブラリ

- mail.jar: SMTP配信に使用

- ojdl.jar: Oracle Diagnostic Loggingに使用

- orai18n-collation.jar: XDKにより使用

- orai18n-mapping.jar: XDKにより使用

- orai18n.jar: XDKにより使用されるキャラクタ・セット・ファイルおよびグローバリゼーション・サポート・ファイルを含む

- osdt_cert.jar: SMIMEサポートのセキュリティ・ライブラリ

- osdt_cms.jar: SMIMEサポートのセキュリティ・ライブラリ

- osdt_core.jar: SMIMEサポートのセキュリティ・ライブラリ

- osdt_smime.jar: SMIMEサポートのセキュリティ・ライブラリ

- share.jar: チャート・サポート・ライブラリ

- versioninfo.jar: BI Publisherのバージョン情報を含む

- xdoparser.jar: スケーラブルなXMLパーサーおよびXSLT 2.0エンジン(10g)

- xdoparser11g.jar: スケーラブルなXMLパーサーおよびXSLT 2.0エンジン(11g)

- xmlparserv2.jar: 11g XDK (SAXおよびDOM)

7.3 ライブラリの取得

Oracle JDeveloperを使用している場合は、チャート作成ライブラリとXMLパーサー・ライブラリが使用可能になっています。ただし、すべての必要なJARファイルでディレクトリを作成してプロジェクトのカスタム・ライブラリとして使用するようにお薦めします。これにより、デプロイ後の予期しないエラーを回避できます。

ライブラリを取得する最も簡単な方法は、Template Builder for Microsoft Wordアドインをダウンロードしてインストールします。ホームページからTemplate Builder for Wordをダウンロードするには、「はじめに」でBI Publisherツールのダウンロード→Template Builder for Wordをクリックします。

JARファイルは、Template Builderを使用してインストール・ディレクトリの下のjlibライブラリ内にパッケージ化されます。

jlibへのサンプル・パスは次のようになります。

C:\Program Files\Oracle\BI Publisher\BI Publisher Desktop\Template Builder for Word\jlib

7.4 PDFフォーム処理エンジン

この項では、RTPプロセッサ・エンジンの使用法を説明します。次のトピックが含まれます。

- 第7.4.1項「PDFフォーム処理エンジンの概要」

- 第7.4.2項「PDFテンプレートとXMLデータのマージ」

- 第7.4.3項「入力/出力ファイル名を使用したXMLデータとPDFテンプレートのマージ」

- 第7.4.4項「入力/出力ストリームを使用したXMLデータとPDFテンプレートのマージ」

- 第7.4.5項「XMLデータ文字列とPDFテンプレートのマージ」

- 第7.4.6項「フィールド名リストの取得」

7.4.1 PDFフォーム処理エンジンの概要

PDFフォーム処理エンジンは、PDFテンプレートとXMLデータ・ファイルをマージしてPDFドキュメントを作成します。これには、ファイル名、ストリームまたはXMLデータ文字列を使用します。

PDF処理エンジンの入力として、XMLベースのテンプレート・メタ情報(.xtm)ファイルを必要に応じて組み込むことができます。このファイルは、オーバーフロー・データの配置を定義する補足テンプレートです。

FO処理エンジンにも、PDFテンプレートに関する情報を提供するユーティリティが組み込まれています。次の操作を実行できます。

- PDFテンプレートからのフィールド名リストの取得

- XSLTを使用したXMLデータのXFDFへの変換

7.4.2 PDFテンプレートとXMLデータのマージ

XMLデータをPDFテンプレートとマージしてPDF出力ドキュメントを作成するには、次の3つの方法があります。

- 入力/出力ファイル名を使用する方法

- 入力/出力ストリームを使用する方法

- 入力XMLデータ文字列を使用する方法

7.4.3 入力/出力ファイル名を使用したXMLデータとPDFテンプレートのマージ

入力:

- テンプレート・ファイル名(文字列)

- XMLファイル名(文字列)

出力:

- PDFファイル名(文字列)

例7-1 入力/出力ファイル名を使用したXMLデータとPDFテンプレートのマージのサンプル・コード

import oracle.xdo.template.FormProcessor;
.
.
FormProcessor fProcessor = new FormProcessor();

fProcessor.setTemplate(args[0]);  // Input File (PDF) name
fProcessor.setData(args[1]);     // Input XML data file name
fProcessor.setOutput(args[2]);   // Output File (PDF) name              fProcessor.process();

7.4.4 入力/出力ストリームを使用したXMLデータとPDFテンプレートのマージ

入力:

- PDFテンプレート(入力ストリーム)

- XMLデータ(入力ストリーム)

出力:

- PDF(出力ストリーム)

例7-2 入力/出力ストリームを使用したXMLデータとPDFテンプレートのマージのサンプル・コード

import java.io.*;
import oracle.xdo.template.FormProcessor;
.
.
.
FormProcessor fProcessor = new FormProcessor();

FileInputStream fIs = new FileInputStream(originalFilePath); // Input File
FileInputStream fIs2 = new FileInputStream(dataFilePath); // Input Data
FileInputStream fIs3 = new FileInputStream(metaData); // Metadata XML Data
FileOutputStream fOs = new FileOutputStream(newFilePath); // Output File

fProcessor.setTemplate(fIs);
fProcessor.setData(fIs2);   // Input Data
fProcessor.setOutput(fOs);
fProcessor.process();

fIs.close();
fOs.close();

7.4.5 XMLデータ文字列とPDFテンプレートのマージ

入力:

- テンプレート・ファイル名(文字列)

- XMLデータ(文字列)

出力:

- PDFファイル名(文字列)

例7-3 XMLデータ文字列とPDFテンプレートのマージのサンプル・コード

import oracle.xdo.template.FormProcessor;
.
.
.
FormProcessor fProcessor = new FormProcessor();

fProcessor.setTemplate(originalFilePath);     // Input File (PDF) name
fProcessor.setDataString(xmlContents);       // Input XML string
fProcessor.setOutput(newFilePath);           // Output File (PDF) name
fProcessor.process();

7.4.6 フィールド名リストの取得

PDFテンプレートからフィールド名を取得するには、FormProcessor.getFieldNames() APIを使用します。このAPIでは、フィールド名が列挙オブジェクトに戻されます。

入力:

- PDFテンプレート

出力:

- 列挙オブジェクト

例7-4 フィールド名リストの取得のサンプル・コード

import java.util.Enumeration;
import oracle.xdo.template.FormProcessor;
.
.
.
FormProcessor fProcessor = new FormProcessor();
fProcessor.setTemplate(filePath);        // Input File (PDF) name
Enumeration enum = fProcessor.getFieldNames();
while(enum.hasMoreElements())
{
String formName = (String)enum.nextElement();
System.out.println("name : " + formName + " , value : " + fProcessor.getFieldValue(formName));
}

7.4.7 XFDFデータの生成

XML Forms Data Format(XFDF)は、PDFドキュメント内のフォーム・データと注釈を表すための形式です。XFDFは、Forms Data Format(FDF)のXMLバージョンであり、フォーム・データと注釈を表すためのPDFの簡易バージョンです。PDFドキュメント内のフォーム・フィールドには、編集ボックス、ボタンおよびラジオ・ボタンが含まれます。

このクラスを使用してXFDFデータを生成します。このクラスのインスタンスを作成すると、内部XFDFツリーが初期化されます。append()メソッドを使用して、文字列の名前と値のペアを渡すことによって、FIELD要素をXFDFツリーに追加します。データは必要なだけ追加できます。

このクラスでは、appendXML()メソッドをコールしてXMLデータを追加することもできます。appendXML()メソッドをコールする前に、setStyleSheet()メソッドをコールして適切なXSLスタイルシートを設定する必要があることに注意してください。XMLデータは必要なだけ追加できます。

toString()、toReader()、toInputStream()またはtoXMLDocument()のいずれかのメソッドをコールすると、内部XFDFドキュメントをいつでも取得できます。

次に、XFDFデータのサンプルを示します。

例7-5 サンプルXFDFデータ

<?xml version="1.0" encoding="UTF-8"?>
<xfdf xmlns="http://ns.adobe.com/xfdf/" xml:space="preserve">
<fields>
<field name="TITLE">
<value>Purchase Order</value>
</field>
<field name="SUPPLIER_TITLE">
<value>Supplie</value>
</field>
...
</fields>

次のコード例は、APIの使用法を示しています。

例7-6 内部XFDFドキュメントの取得のサンプル・コード

import oracle.xdo.template.FormProcessor;
import oracle.xdo.template.pdf.xfdf.XFDFObject;
.
.
.
FormProcessor fProcessor = new FormProcessor();
fProcessor.setTemplate(filePath);      // Input File (PDF) name
XFDFObject xfdfObject = new XFDFObject(fProcessor.getFieldInfo());
System.out.println(xfdfObject.toString());

7.4.8 XSLTを使用したXMLデータのXFDF形式への変換

XSLスタイルシートを使用して、標準のXMLをXFDF形式に変換します。次に、サンプルのXMLデータをXFDFに変換する例を示します。

次のように、開始時のXMLはROWSET/ROW形式であるとします。

<ROWSET>
<ROW num="0">
<SUPPLIER>Supplier</SUPPLIER>
<SUPPLIERNUMBER>Supplier Number</SUPPLIERNUMBER>
<CURRCODE>Currency</CURRCODE>
</ROW>
...
</ROWSET>

このXMLから次のXFDF形式を生成するとします。

<fields>
<field name="SUPPLIER1">
<value>Supplier</value>
</field>
<field name="SUPPLIERNUMBER1">
<value>Supplier Number</value>
</field>
<field name="CURRCODE1">
<value>Currency</value>
</field>
...
</fields>

次のXSLTは変換を実行します。

例7-7 XMLデータのXFDF形式への変換のサンプルXLST

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<fields>
<xsl:apply-templates/>
</fields>
</xsl:template>
<!-- Count how many ROWs(rows) are in the source XML file. -->
<xsl:variable name="cnt" select="count(//row|//ROW)" />
<!-- Try to match ROW (or row) element.
<xsl:template match="ROW/*|row/*">
<field>
<!-- Set "name" attribute in "field" element. -->
<xsl:attribute name="name">
<!-- Set the name of the current element (column name)as a value of the current name attribute. -->
<xsl:value-of select="name(.)" />
<!-- Add the number at the end of the name attribute value if more than 1 rows found in the source XML file.-->
<xsl:if test="$cnt > 1">
<xsl:number count="ROW|row" level="single" format="1"/>
</xsl:if>
</xsl:attribute>
<value>
<!--Set the text data set in the current column data as a text of the "value" element. -->
<xsl:value-of select="." />
</value>
</field>
</xsl:template>
</xsl:stylesheet>

この結果、次のようにXSLTを使用すると、XFDFObjectを使用してXMLをXFDF形式に変換できます。

例7-8 XMLデータのXFDF形式への変換実行のサンプル・コード

import java.io.*;
import oracle.xdo.template.pdf.xfdf.XFDFObject;
.
.
.
XFDFObject xfdfObject  = new XFDFObject();

xfdfObject .setStylesheet(new BufferedInputStream(new FileInputStream(xslPath)));   // XSL file name
xfdfObject .appendXML( new File(xmlPath1));   // XML data file name
xfdfObject .appendXML( new File(xmlPath2));   // XML data file name

System.out.print(xfdfObject .toString());

7.5 RTFプロセッサ・エンジン

この項では、RTPプロセッサ・エンジンの使用法を説明します。次のトピックが含まれます。

- 第7.5.1項「XLIFFファイルとのペアリング」

- 第7.5.2項「XSLの生成」

7.5.1 XLIFFファイルとのペアリング

RTFProcessorはペアとなるXLIFFファイルを生成できます。APIの例は次のとおりです。

例7-9 ペアリングXLIFFファイル生成のサンプル・コード

public static void main(String[] args)
{
RTFProcessor rtfp = new RTFProcessor(args[0]); //input RTF template
rtfp.setOutput(args[1]); // XSL output file
rtfp.setXLIFFOutput(args[2]); // XLIFF output file
rtfp.process();
System.exit(0);
}

翻訳されたレポートを生成するには、次のようにFOProcessorをコールします。

例7-10 翻訳されたレポート生成のサンプル・コード

FOProcessor p1 = new FOProcessor();
p1.setXLIFF(xliff);// set xliff file, which is generated from RTFProcessor
p1.setData(xml); // set data file
p1.setTemplate(xsl); // set xsl file
p1.setOutput(pdf);
p1.generate();

7.5.2 XSLの生成

RTFプロセッサ・エンジンは、入力としてRTFテンプレートを使用します。プロセッサは、テンプレートを解析し、XSL-FOテンプレートを作成します。このテンプレートをデータソース(XMLファイル)とともにFOエンジンに渡すと、PDF、HTML、RTFまたはExcel(HTML)の出力を作成できます。

次の例に示すように、入力/出力ファイル名または入力/出力ストリームのいずれかを使用します。

7.5.2.1 入力/出力ファイル名を使用したXSLの生成

入力:

- RTFファイル名(文字列)

出力:

- XSLファイル名(文字列)

例7-11 入力/出力ファイル名を使用したXSLの生成のサンプル・コード

import oracle.xdo.template.FOProcessor;
.
.
.
public static void main(String[] args)
{
RTFProcessor rtfProcessor = new RTFProcessor(args[0]); //input template
rtfProcessor.setOutput(args[1]);  // output file
rtfProcessor.process();
System.exit(0);
}

7.5.2.2 入力/出力ストリームを使用したXSLの生成

入力:

- RTF(入力ストリーム)

出力:

- XSL(出力ストリーム)

例7-12 入力/出力ストリームを使用したXSLの生成のサンプル・コード

import oracle.xdo.template.FOProcessor;
.
.
.
public static void main(String[] args)
{
FileInputStream   fIs  = new FileInputStream(args[0]);  //input template
FileOutputStream  fOs  = new FileOutputStream(args[1]); // output

RTFProcessor rtfProcessor = new RTFProcessor(fIs);
rtfProcessor.setOutput(fOs);
rtfProcessor.process();
// Closes inputStreams outputStream
System.exit(0);
}

7.6 FOプロセッサ・エンジン

この項では、FOプロセッサ・エンジンの使用法を説明します。次のトピックが含まれます。

- 第7.6.1項「FOプロセッサの主な機能」

- 第7.6.2項「XMLファイルおよびXSLファイルからの出力の生成」

- 第7.6.3項「ファイル名を使用した出力の生成」

- 第7.6.4項「ストリームを使用した出力の生成」

- 第7.6.5項「XSLテンプレートおよびXMLデータの配列からの出力の生成」

- 第7.6.6項「XSL-FOユーティリティの使用」

7.6.1 FOプロセッサの主な機能

FOプロセッサ・エンジンには、次の機能が備わっています。

- 第7.6.1.1項「双方向テキスト」

- 第7.6.1.2項「フォント代替メカニズム」

- 第7.6.1.3項「可変ヘッダーおよびフッター」

- 第7.6.1.4項「水平方向の表区切り」

7.6.1.1 双方向テキスト

BI Publisherでは、BiDiレイアウトに関してUnicode BiDiアルゴリズムを利用します。FOプロセッサでは、プロパティwriting-mode、directionおよびunicode bidiに対する特定の値に基づいてBiDiレイアウトがサポートされます。

writing-modeプロパティでは、テキストにおける行の語順、および行の順序が定義されます。つまり、right-to-left, top-to-bottom(右から左、上から下)またはleft-to-right, top-to-bottom(左から右、上から下)のいずれかを指定します。directionプロパティでは、テキスト文字列の書込み方法が決まります。つまり、right-to-left(右から左)またはleft-to-right(左から右)などの方向を指定します。unicode bidiでは、上書き動作が制御および管理されます。

7.6.1.2 フォント代替メカニズム

FOプロセッサでは、2つのレベルのフォント代替メカニズムがサポートされています。このメカニズムでは、指定したフォントまたは絵文字が検出されない場合に使用するデフォルト・フォントが制御されます。BI Publisherでは、適切なデフォルト代替フォントが自動的に提供され、構成は必要ありません。また、使用するデフォルト・フォントを指定するユーザー定義構成ファイルもサポートされています。絵文字の代替の場合、デフォルト・メカニズムでは絵文字のみが置換され、文字列全体は置換されません。

7.6.1.3 可変ヘッダーおよびフッター

ヘッダーおよびフッターがテンプレートで定義されているより多くの領域を必要とする場合は、FOプロセッサによって、ページのヘッダーおよびフッターの値と本文領域余白の値との差異に基づいて、ヘッダーおよびフッターの領域が拡張され、本文の領域が縮小されます。

7.6.1.4 水平方向の表区切り

この機能では、Zスタイルの水平方向の表区切りがサポートされます。水平方向の表区切りは列の拡張に影響されないため、拡張された列のセルがページ(または領域の幅)を超えた場合は、FOプロセッサによってセルが分割され、分割セルに対してインテリジェント書式設定は適用されません。

次の図に、幅が広すぎるために1ページに表示できない表を示します。

図7-2 幅の広い表の例

次の図に、幅の広い表を水平方向の表区切りで処理する方法の1つのオプションを示します。この例では、3列目の後で水平方向の表区切りが行われます。

図7-3 幅の広い表における水平方向の表区切りの例

次の図に、別のオプションを示します。3列目の後で表が区切られますが、新しい各ページに1列目が表示されます。

図7-4 幅の広い表における水平方向の表区切りおよび列繰り返しの例

7.6.2 XMLファイルおよびXSLファイルからの出力の生成

FOプロセッサ・エンジンは、BI PublisherでW3C XSL-FOの標準実装となっています。XSL-FOコンポーネントごとに完全実装であることが示されていません。

FOプロセッサは、次に示す入力タイプのいずれかから、PDF、RTF、HTMLまたはExcel(HTML)の出力を生成できます。

- テンプレート(XSL)およびデータ(XML)の組合せ

- FOオブジェクト

入力タイプをファイル名、ストリームまたは配列で渡すことができます。setOutputFormatメソッドを次のいずれかに設定して出力形式を設定します。

- FORMAT_EXCEL

- FORMAT_HTML

- FORMAT_PDF

- FORMAT_RTF

- FORMAT_PPTX

- FORMAT_MHTML

- FORMAT_PPTMHT

- FORMAT_EXCEL_MHTML

- FORMAT_PDFZ

次の入力からXSL-FOを作成するXSL-FOユーティリティも提供されています。

- XSLファイルおよびXMLファイル

- 2つのXMLファイルおよび2つのXSLファイル

- 2つのXSL-FOファイル(マージ)

XSL-FOユーティリティからのFOオブジェクト出力は、FOプロセッサの入力として使用できます。

7.6.3 ファイル名を使用した出力の生成

次の例は、FOプロセッサでファイル名を使用して出力ファイルを作成する方法を示しています。

入力:

- XMLファイル名(文字列)

- XSLファイル名(文字列)

出力:

- 出力ファイル名(文字列)

例7-13 ファイル名を使用した出力生成のサンプル・コード

import oracle.xdo.template.FOProcessor;
.
.
.
public static void main(String[] args)
{

FOProcessor processor = new FOProcessor();
processor.setData(args[0]);     // set XML input file
processor.setTemplate(args[1]); // set XSL input file
processor.setOutput(args[2]);  //set output file
processor.setOutputFormat(FOProcessor.FORMAT_PDF);
// Start processing
try
{
processor.generate();
}
catch (XDOException e)
{
e.printStackTrace();
System.exit(1);
}

System.exit(0);
}

7.6.4 ストリームを使用した出力の生成

次の例に示すように、入力/出力ストリームを指定してプロセッサを使用することもできます。

入力:

- XMLデータ(入力ストリーム)

- XSLデータ(入力ストリーム)

出力:

- 出力ストリーム(出力ストリーム)

例7-14 ストリームを使用した出力生成のサンプル・コード

import java.io.InputStream;
import java.io.OutputStream;
import oracle.xdo.template.FOProcessor;
.
.
.
public void runFOProcessor(InputStream xmlInputStream,
InputStream xslInputStream,
OutputStream pdfOutputStream)
{

FOProcessor processor = new FOProcessor();
processor.setData(xmlInputStream);
processor.setTemplate(xslInputStream);
processor.setOutput(pdfOutputStream);
// Set output format (for PDF generation)
processor.setOutputFormat(FOProcessor.FORMAT_PDF);
// Start processing
try
{
processor.generate();
}
catch (XDOException e)
{
e.printStackTrace();
System.exit(1);
}

System.exit(0);

}

7.6.5 XSLテンプレートおよびXMLデータの配列からの出力の生成

データとテンプレートの配列の組合せを処理して、複数の入力から1つの出力ファイルを生成できます。入力データソースの数は、データに適用されるテンプレートの数と一致する必要があります。たとえば、File1.xml、File2.xml、File3.xmlとFile1.xsl、File2.xsl、File3.xslの入力から単一のFile1_File2_File3.pdfが作成されます。

入力:

- XMLデータ(配列)

- XSLデータ(テンプレート)(配列)

出力:

- ファイル名(文字列)

例7-15 XSLテンプレート配列およびXMLデータからの出力生成のサンプル・コード

import java.io.InputStream;
import java.io.OutputStream;
import oracle.xdo.template.FOProcessor;
.
.
.
public static void main(String[] args)
{

String[] xmlInput = {"first.xml", "second.xml", "third.xml"};
String[] xslInput = {"first.xsl", "second.xsl", "third.xsl"};

FOProcessor processor = new FOProcessor();
processor.setData(xmlInput);
processor.setTemplate(xslInput);

processor.setOutput("/tmp/output.pdf);          //set (PDF) output file
processor.setOutputFormat(FOProcessor.FORMAT_PDF); processor.process();
// Start processing
try
{
processor.generate();
}
catch (XDOException e)
{
e.printStackTrace();
System.exit(1);
}

}

7.6.6 XSL-FOユーティリティの使用

入力XMLおよびXSLファイルからXSL-FO出力ファイルを作成するか、または2つのXSL-FOファイルをマージするには、XSL-FOユーティリティを使用します。このユーティリティで出力を使用して、最終出力を生成できます。第7.6.2項「XMLファイルおよびXSLファイルからの出力の生成」を参照してください。

7.6.6.1 XMLファイルおよびXSLファイルからのXSL-FOの作成

入力:

- XMLファイル

- XSLファイル

出力:

- XSL-FO(入力ストリーム)

例7-16 XMLファイルとXSLファイルからからのXSL-FO作成のサンプル・コード

import oracle.xdo.template.fo.util.FOUtility;
.
.
.
public static void main(String[] args)
{
InputStream foStream;

// creates XSL-FO InputStream from XML(arg[0])
// and XSL(arg[1]) filepath String
foStream = FOUtility.createFO(args[0], args[1]);
if (mergedFOStream == null)
{
System.out.println("Merge failed.");
System.exit(1);
}

System.exit(0);
}

7.6.6.22つのXMLファイルおよび2つのXSLファイルからのXSL-FOの作成

入力:

- XMLファイル1

- XMLファイル2

- XSLファイル1

- XSLファイル2

出力:

- XSL-FO(入力ストリーム)

例7-17 2つのXMLファイルおよび2つのXSLファイルからのXSL-FO作成のサンプル・コード

import oracle.xdo.template.fo.util.FOUtility;
.
.
.
public static void main(String[] args)
{
InputStream firstFOStream, secondFOStream, mergedFOStream;
InputStream[] input = InputStream[2];

// creates XSL-FO from arguments
firstFOStream = FOUtility.createFO(args[0], args[1]);

// creates another XSL-FO from arguments
secondFOStream = FOUtility.createFO(args[2], args[3]);

// set each InputStream into the InputStream Array
Array.set(input, 0, firstFOStream);
Array.set(input, 1, secondFOStream);

// merges two XSL-FOs
mergedFOStream = FOUtility.mergeFOs(input);

if (mergedFOStream == null)
{
System.out.println("Merge failed.");
System.exit(1);
}
System.exit(0);
}

7.6.6.3 2つのXSL-FOファイルのマージ

入力:

- 2つのXSL-FOファイル名(配列)

出力:

- 1つのXSL-FO(入力ストリーム)

例7-18 2つのXSL-FOファイルのマージのサンプル・コード

import oracle.xdo.template.fo.util.FOUtility;
.
.
.
public static void main(String[] args)
{
InputStream mergedFOStream;

// creates Array
String[] input = {args[0], args[1]};

// merges two FO files
mergedFOStream = FOUtility.mergeFOs(input);
if (mergedFOStream == null)
{
System.out.println("Merge failed.");
System.exit(1);
}
System.exit(0);
}

7.6.6.4 FOファイルからの出力の生成

FOプロセッサは、FOオブジェクトを処理して最終出力を生成するためにも使用できます。FOオブジェクトは、XMLデータにXSL-FOスタイルシートを適用した結果です。これらのオブジェクトは、サード・パーティのアプリケーションから生成でき、FOプロセッサの入力として使用できます。

プロセッサのコール方法は前述の方法と同じですが、書式設定の指示はFOに含まれているため、テンプレートは必要ありません。

7.6.6.5 ファイル名を使用した出力の生成

入力:

- FOファイル名(文字列)

出力:

- PDFファイル名(文字列)

例7-19 ファイル名を使用した出力生成のサンプル・コード

import oracle.xdo.template.FOProcessor;
.
.
.
public static void main(String[] args) {

FOProcessor processor = new FOProcessor();
processor.setData(args[0]);     // set XSL-FO input file
processor.setTemplate((String)null);
processor.setOutput(args[2]);  //set (PDF) output file
processor.setOutputFormat(FOProcessor.FORMAT_PDF);
// Start processing
try
{
processor.generate();
}
catch (XDOException e)
{
e.printStackTrace();
System.exit(1);
}

System.exit(0);
}

7.6.6.6 ストリームを使用した出力の生成

入力:

- FOデータ(入力ストリーム)

出力:

- 出力(出力ストリーム)

例7-20 ストリームを使用した出力生成のサンプル・コード

import java.io.InputStream;
import java.io.OutputStream;
import oracle.xdo.template.FOProcessor;
.
.
.
public void runFOProcessor(InputStream xmlfoInputStream,
OutputStream pdfOutputStream)
{

FOProcessor processor = new FOProcessor();
processor.setData(xmlfoInputStream);
processor.setTemplate((String)null);

processor.setOutput(pdfOutputStream);
// Set output format (for PDF generation)
processor.setOutputFormat(FOProcessor.FORMAT_PDF);
// Start processing
try
{
processor.generate();
}
catch (XDOException e)
{
e.printStackTrace();
System.exit(1);
}
}

7.6.6.7 FOデータの配列を使用した出力の生成

複数のFO入力を配列として渡して単一の出力ファイルを生成できます。テンプレートは必要でないため、次の例に示すように、テンプレート配列のメンバーはnullに設定します。

入力:

- FOデータ(配列)

出力:

- 出力ファイル名(文字列)

例7-21 FOデータの配列を使用した出力生成のサンプル・コード

import java.lang.reflect.Array;
import oracle.xdo.template.FOProcessor;
.
.
.
public static void main(String[] args)
{

String[] xmlInput = {"first.fo", "second.fo", "third.fo"};
String[] xslInput = {null, null, null};   // null needs for xsl-fo input

FOProcessor processor = new FOProcessor();
processor.setData(xmlInput);
processor.setTemplate(xslInput);

processor.setOutput("/tmp/output.pdf);          //set (PDF) output file
processor.setOutputFormat(FOProcessor.FORMAT_PDF); processor.process();
// Start processing
try
{
processor.generate();
}
catch (XDOException e)
{
e.printStackTrace();
System.exit(1);
}

}

7.7 PDFドキュメントのマージ機能

PDFドキュメント・マージ機能クラスでは、PDFドキュメントを操作するための一連のユーティリティが提供されます。これらのユーティリティを使用すると、ドキュメントのマージ、ページ番号の追加、背景の設定および透かしの追加を実行できます。

7.7.1 PDFドキュメントのマージ

多くのビジネス・ドキュメントが、最終的に1つのドキュメントにマージする必要がある別個の複数のドキュメントで構成されています。PDFDocMergerクラスでは、複数ドキュメントをマージして単一のPDFドキュメントを作成する機能がサポートされています。また、さらに操作して、ページ番号、透かしまたはその他の背景イメージを追加できます。

7.7.1.1 入力/出力ファイル名を使用したPDFドキュメントのマージ

次のコードは、物理ファイルを使用して2つのPDFドキュメントをマージ(連結)して、単一の出力ドキュメントを生成する方法を示しています。

入力:

- PDF_1ファイル名(文字列)

- PDF_2ファイル名(文字列)

出力:

- PDFファイル名(文字列)

例7-22 入力/出力ファイル名を使用したPDFドキュメントのマージのサンプル・コード

import java.io.*;
import oracle.xdo.common.pdf.util.PDFDocMerger;
.
.
.
public static void main(String[] args)
{
try
{
// Last argument is PDF file name for output
int inputNumbers = args.length - 1;

// Initialize inputStreams
FileInputStream[] inputStreams = new FileInputStream[inputNumbers];
inputStreams[0] = new FileInputStream(args[0]);
inputStreams[1] = new FileInputStream(args[1]);

// Initialize outputStream
FileOutputStream outputStream = new FileOutputStream(args[2]);

// Initialize PDFDocMerger
PDFDocMerger docMerger = new PDFDocMerger(inputStreams, outputStream);

// Merge PDF Documents and generates new PDF Document
docMerger.mergePDFDocs();
docMerger = null;

// Closes inputStreams and outputStream
}
catch(Exception exc)
{
exc.printStackTrace();
}
}

7.7.1.2 入力/出力ストリームを使用したPDFドキュメントのマージ

入力:

- PDFドキュメント(入力ストリーム配列)

出力:

- PDFドキュメント(出力ストリーム)

例7-23 入力/出力ストリームを使用したPDFドキュメントのマージ

import java.io.*;
import oracle.xdo.common.pdf.util.PDFDocMerger;
.
.
.
public boolean mergeDocs(InputStream[] inputStreams, OutputStream outputStream)
{
try
{
// Initialize PDFDocMerger
PDFDocMerger docMerger = new PDFDocMerger(inputStreams, outputStream);

// Merge PDF Documents and generates new PDF Document
docMerger.mergePDFDocs();
docMerger = null;

return true;
}
catch(Exception exc)
{
exc.printStackTrace();
return false;
}
}

7.7.1.3 ページ番号を配置するための背景とのマージ

次のコードは、入力ストリームを使用して2つのPDFドキュメントをマージし、単一のマージ出力ストリームを生成する方法を示しています。

ページ番号を追加する手順は、次のとおりです。

1. 最終出力PDFドキュメントでページ番号を表示する位置にPDFフォーム・フィールドを組み込んだ背景用PDFテンプレート・ドキュメントを作成します。

2. フォーム・フィールドに@pagenum@という名前を設定します。

3. フィールドに、ページ番号の開始番号を入力します。フィールドに値を入力しない場合、開始ページ番号はデフォルトで1に設定されます。

入力:

- PDFドキュメント(入力ストリーム配列)

- 背景用PDFドキュメント(入力ストリーム)

出力:

- PDFドキュメント(出力ストリーム)

例7-24 ページ番号を配置するための背景とPDFドキュメントとのマージのサンプル・コード

import java.io.*;
import oracle.xdo.common.pdf.util.PDFDocMerger;
.
.
.
public static boolean mergeDocs(InputStream[] inputStreams, InputStream backgroundStream, OutputStream outputStream)

{
try
{
// Initialize PDFDocMerger
PDFDocMerger docMerger = new PDFDocMerger(inputStreams, outputStream);

// Set Background
docMerger.setBackground(backgroundStream);

// Merge PDF Documents and generates new PDF Document
docMerger.mergePDFDocs();
docMerger = null;

return true;
}
catch(Exception exc)
{
exc.printStackTrace();
return false;
}
}

7.7.1.4 マージ済ドキュメントへのページ番号の追加

FOプロセッサでは、XSL-FOテンプレートによってページ番号がネイティブでサポートされていますが、複数のドキュメントをマージしている場合、完成したドキュメントに最初から最後まで番号を付けるにはこのクラスを使用する必要があります。

次に示すコード例では、次のメソッドを使用して、ページ上の特定位置へのページ番号配置、番号の書式設定、および開始値の設定が実行されます。

- setPageNumberCoordinates (x, y): ページ番号の位置のxおよびy座標を設定します。次に示す例では、座標は300, 20に設定されます。

- setPageNumberFontInfo (font name, size): ページ番号のフォントとサイズを設定します。このメソッドをコールしない場合は、デフォルトのHelvetica、サイズ8が使用されます。次に示す例では、フォントはCourier、サイズは8に設定されます。

- setPageNumberValue (n, n): 開始番号および番号付けを開始するページを設定します。このメソッドをコールしない場合は、デフォルト値1, 1が使用されます。

入力:

- PDFドキュメント(入力ストリーム配列)

出力:

- PDFドキュメント(出力ストリーム)

例7-25 マージPDFドキュメントへのページ番号の追加のサンプル・コード

import java.io.*;
import oracle.xdo.common.pdf.util.PDFDocMerger;
.
.
.
public boolean mergeDocs(InputStream[] inputStreams, OutputStream outputStream)
{
try
{
// Initialize PDFDocMerger
PDFDocMerger docMerger = new PDFDocMerger(inputStreams, outputStream);

// Calls several methods to specify Page Number

// Calling setPageNumberCoordinates() method is necessary to set Page Numbering
// Please refer to javadoc for more information
docMerger.setPageNumberCoordinates(300, 20);

// If this method is not called, then the default font"(Helvetica, 8)" is used.
docMerger.setPageNumberFontInfo("Courier", 8);

// If this method is not called, then the default initial value "(1, 1)" is used.
docMerger.setPageNumberValue(1, 1);

// Merge PDF Documents and generates new PDF Document
docMerger.mergePDFDocs();
docMerger = null;

return true;
}
catch(Exception exc)
{
exc.printStackTrace();
return false;
}
}

7.7.2 テキストまたはイメージの透かしの設定

草案段階の一部のドキュメントでは、ドキュメント全体に「DRAFT」という透かしが表示される必要があります。また、ドキュメントに背景イメージが必要な場合もあります。次のコード・サンプルは、PDFDocMergerクラスを使用して透かしを設定する方法を示しています。

7.7.2.1 テキストの透かしの設定

SetTextDefaultWatermark()メソッドを使用して、次の属性でテキストの透かしを設定します。

- テキストの角度(度): 55

- 色: 明るい灰色(0.9, 0.9, 0.9)

- フォント: Helvetica

- フォント・サイズ: 100

- 開始位置は、テキストの長さに基づいて計算されます。

または、SetTextWatermark()メソッドを使用して、各属性を別々に設定する方法もあります。SetTextWatermark()メソッドを次のように使用します。

- SetTextWatermark ("Watermark Text", x, y): 透かしテキストを宣言し、開始位置のxおよびy座標を設定します。次に示す例では、透かしテキストは「Draft」、座標は200f, 200fです。

- setTextWatermarkAngle (n): 透かしテキストの角度を設定します。このメソッドをコールしない場合は、0(ゼロ)が使用されます。

- setTextWatermarkColor (R, G, B): RGBカラーを設定します。このメソッドをコールしない場合は、明るい灰色(0.9, 0.9, 0.9)が使用されます。

- setTextWatermarkFont ("font name", font size): フォントとサイズを設定します。このメソッドをコールしない場合は、Helvetica, 100が使用されます。

次の例は、これらのプロパティを設定し、PDFDocMergerをコールする方法を示しています。

入力:

- PDFドキュメント(入力ストリーム)

出力:

- PDFドキュメント(出力ストリーム)

例7-26 PDFドキュメントでのテキストの透かしの設定のサンプル・コード

import java.io.*;
import oracle.xdo.common.pdf.util.PDFDocMerger;
.
.
.
public boolean mergeDocs(InputStream inputStreams, OutputStream outputStream)
{
try
{
// Initialize PDFDocMerger
PDFDocMerger docMerger = new PDFDocMerger(inputStreams, outputStream);

// You can use setTextDefaultWatermark() without these detailed setting
docMerger.setTextWatermark("DRAFT", 200f, 200f); //set text and place
docMerger.setTextWatermarkAngle(80);                //set angle
docMerger.setTextWatermarkColor(1.0f, 0.3f, 0.5f);  // set RGB Color

// Merge PDF Documents and generates new PDF Document
docMerger.mergePDFDocs();
docMerger = null;

return true;
}
catch(Exception exc)
{
exc.printStackTrace();
return false;
}
}

7.7.2.2 イメージの透かしの設定

イメージの透かしは、ドキュメントの背景全体または特定の領域(例: ロゴ表示領域)に表示されるように設定できます。次のように、長方形の座標を使用して、イメージの配置とサイズを指定します。

float[] rct = {LowerLeft X, LowerLeft Y, UpperRight X, UpperRight Y}

次に例を示します。

float[] rct = {100f, 100f, 200f, 200f}

イメージは、定義された長方形の領域にあわせてサイズが変更されます。

サイズを変更せずに実際のイメージ・サイズを使用するには、左下Xと左下Yの位置で配置を定義し、右上Xと右上Yの座標は-1fと指定します。次に例を示します。

float[] rct = {100f, 100f, -1f, -1f}

入力:

- PDFドキュメント(入力ストリーム)

- イメージ・ファイル(入力ストリーム)

出力:

- PDFドキュメント(出力ストリーム)

例7-27 PDFドキュメントでのイメージの透かしの設定のサンプル・コード

import java.io.*;
import oracle.xdo.common.pdf.util.PDFDocMerger;
.
.
.
public boolean mergeDocs(InputStream inputStreams, OutputStream outputStream, String imageFilePath)
{
try
{
// Initialize PDFDocMerger
PDFDocMerger docMerger = new PDFDocMerger(inputStreams, outputStream);

FileInputStream wmStream = new FileInputStream(imageFilePath);
float[] rct = {100f, 100f, -1f, -1f};
pdfMerger.setImageWatermark(wmStream, rct);

// Merge PDF Documents and generates new PDF Document
docMerger.mergePDFDocs();
docMerger = null;

// Closes inputStreams
return true;
}
catch(Exception exc)
{
exc.printStackTrace();
return false;
}
}

7.8 PDF製本プロセッサ

PDFBookBinderプロセッサは、複数のPDFドキュメントをマージして、章、項および節の階層構造と目次で構成された単一のドキュメントにする場合に便利です。このプロセッサではPDFスタイルの「しおり」も生成され、アウトライン構造は章および項の階層によって決まります。非常に強力な機能を備えており、組み合されたドキュメントを完全に管理できます。

7.8.1 使用方法

目次の書式設定とスタイルは、Microsoft Wordで作成されたRTFテンプレートで定義されます。各章は独立したPDFファイル(1つの章、項または節が1つのPDFに対応します)としてプログラムに渡されます。テンプレートは、ドキュメント内への動的または静的コンテンツの挿入、ページ番号付けおよびハイパーリンクの配置のために章レベルで指定することもできます。

テンプレートの形式は、RTFまたはPDFのどちらでもかまいません。RTFテンプレートのほうが、BI Publisherの動的コンテンツのサポートを活用できるのでより柔軟性があります。PDFテンプレートは、柔軟性がはるかに低く、ページ番号やその他のタイプの動的コンテンツを挿入したときのテキスト領域の再構成といった必要な効果を得ることが難しくなります。

テンプレートは、(90度単位で)回転したり、透過にすることができます。PDFテンプレートは、ブック・レベルで指定してグローバルなページ番号付けや、その他、背景および透かしなどのコンテンツの指定を可能にすることもできます。表題ページや各章や項ごとの中扉もパラメータとして渡すことができます。

7.8.2 XML制御ファイル

ブックの章、項および節の構造は、XMLとして表され、コマンドライン・パラメータとして渡すことも、APIレベルで渡すこともできます。章および項のファイルは、すべてのテンプレート・ファイルおよびそのパラメータと同じように、すべてこのXML構造内に指定されます。したがって、必要なパラメータはXMLファイルとPDF出力ファイルの2つのみです。

また、ブック構造内に分冊の区切りを指定することもできます。これにより、内容が別々の出力ファイルに分割され、ファイルおよび印刷の管理が簡単になります。

次の図に、XML制御ファイルの構造を示します。

図7-5 XML制御ファイルの構造

XML構造内でのテンプレートおよびコンテンツ・ファイルの位置を指定するには、ローカル・ファイル・システムへの相対パスまたはテンプレートやコンテンツの位置を指すURLを指定します。Secure HTTPプロトコルの他、特別に認識される次のようなBI Publisherプロトコルもサポートされています。

- 「xdoxsl:///」はサブテンプレートのロードに使用します。

- 「xdo://」は、イメージなど、その他のリソースのロードに使用します。

7.8.3 コマンドライン・オプション

コマンドラインの使用例を次に示します。

例7-28 コマンドライン・オプションのサンプル

java oracle.xdo.template.pdf.book.PDFBookBinder [-debug <true or false>] [-tmp <temp dir>] -xml <input xml> -pdf <output pdf>

説明:

-xml <file>: 目次XML構造を含む入力XMLファイルのファイル名です。

-pdf <file>: 生成される最終のPDF出力ファイルです。

-tmp <directory>: メモリー管理を向上させるための一時ディレクトリです。(これは任意の指定で、指定しない場合はシステムの環境変数"java.io.tmpdir"が使用されます。)

-log <file>: 出力ログ・ファイルを設定します(任意指定で、デフォルトはSystem.outです)。

-debug <true or false>: デバッグをオフまたはオンにします。

7.8.4 APIメソッド・コール

次に、APIメソッド・コールの例を示します。

例7-29 サンプルAPIメソッド・コール

String xmlInputPath = "c:\\tmp\\toc.xml";
String pdfOutputPath = "c:\\tmp\\final_book.pdf";
PDFBookBinder bookBinder = new PDFBookBinder(xmlInputPath,
pdfOutputPath);

bookBinder.setConfig(new Properties());
bookBinder.process();

7.9 PDFデジタル署名エンジン

この項では、PDFデジタル署名エンジンの使用法を説明します。次のトピックが含まれます。

- 第7.9.1項「PDFデジタル署名エンジンの概要」

- 第7.9.2項「PDFドキュメントの署名」

- 第7.9.3項「署名済PDFドキュメントの配信」

- 第7.9.4項「署名済PDFドキュメントの検証」

7.9.1 PDFデジタル署名エンジンの概要

PDFデジタル署名エンジンは、署名されていないPDFドキュメントを署名フィールド名とパスワードで保護されたPFX(Personal Information Exchange)ファイルで処理して、署名済PDFドキュメントを作成します。PFXファイルは、Public Key Cryptography Standards #12(PCKS-12)の形式に従っており、ファイルにはデジタル証明と対応する秘密鍵が格納されています。

署名済PDFドキュメントの作成は、第7.9.2項「PDFドキュメントの署名」を参照してください。

署名済PDFを配信するには、スケジュール・サービスを使用します。第3章「ScheduleService」を参照してください。

署名済PDFドキュメントの検証は、第7.9.4項「署名済PDFドキュメントの検証」を参照してください。

7.9.2 PDFドキュメントの署名

PDFドキュメントの署名には、次の項目が必要です。

- デジタル証明書。デジタル証明書を取得するには、Oracle Fusion Middleware Oracle Business Intelligence Publisher開発者ガイドのデジタル署名の実装に関する項を参照してください。

- デジタル証明書を格納したPFXファイル。PFXファイルを作成するには、Oracle Fusion Middleware Oracle Business Intelligence Publisher開発者ガイドのデジタル署名の実装に関する項を参照してください。

- 署名フィールドを備えたPDFファイル。PDFファイルに署名フィールドがない場合、addSignatureField()メソッドを使用してフィールドを追加できます。例7-30にPDFファイルへの署名フィールド追加のサンプル・コードを示します。このメソッドは署名フィールドをPKCS-1 Secure Hash Algorithm #1 (SHA-1)形式で保存します。

前述の項目を取得または作成すれば、PDFドキュメントに署名できます。

PDFドキュメントに署名するには、Oracle BI Publisher付属のPDFSignature Java API を使用して、PDFファイルをPFXファイルで処理します。例7-30にそのためのサンプル・コードを示します。

例7-30 署名済PDFドキュメント作成のサンプル・コード

String workDir = "C:/projects/";
String inPDF = workDir + "VerySimpleContent.pdf";
String outPDF = workDir + "VerySimpleContent_signed.pdf";
String pkcs12File = workDir + "YourName.pfx";

try
{
PDFSignature pdfSignature = new PDFSignature(inPDF, outPDF);
pdfSignature.init("password123", pkcs12File);
// If your PDF document does not have a signature field, uncomment the
// following line of code, which adds a signature field with the name
// "Signature1".
// pdfSignature.addSignatureField(1, PDFSignature.PDF_SIGNFIELD_UPPER_RIGHT, "Signature1", -1, -1);
pdfSignature.sign("Signature1", "Reason to Sign");
pdfSignature.cleanup();
}
catch(Throwable t)
{
t.printStackTrace();
}

7.9.3 署名済PDFドキュメントの配信

署名済PDFを配信するには、スケジュール・サービスを使用します。第3章「ScheduleService」を参照してください。

7.9.4 署名済PDFドキュメントの検証

署名済PDFドキュメントを検証するには、デジタル証明を使用して処理します。例7-31にそのためのサンプル・コードを示します。

例7-31 署名済PDFドキュメント検証のサンプル・コード

String workDir = "C:/projects/";
String inPDF = workDir + "VerySimpleContent_signedWithAcrobat.pdf";
String trustedRootCert = workDir + "VerisignFreeCertificate.cer";
File trustedRootCertFile = new File(trustedRootCert);
Vector trustedCerts = new Vector();
trustedCerts.addElement(trustedRootCertFile);

try
{
PDFSignature pdfSignature = new PDFSignature(inPDF);
pdfSignature.init();
SignatureFields signFields = pdfSignature.getSignatureFields();
Vector signedFieldNames = signFields.getSignatureFieldNames();
int size = signedFieldNames.size();
for(int i = 0 ; i < size ; i++)
{
String signFieldName = (String)signedFieldNames.elementAt(i);
SignatureField signField = signFields.getSignatureField(signFieldName);
boolean isValid = signField.verifyDocument();
System.out.println("Valid? : " + isValid);
boolean isCertValid = signField.verifyCertificates(trustedCerts, null);
System.out.println("Trusted? : " + isCertValid);
}
}
catch(Throwable t)
{
t.printStackTrace();
}

7.10 eTextプロセッサ

eTextプロセッサを使用すると、RTF eTextテンプレートをXSLに変換し、XSLとXMLをマージしてEDIおよびEFT伝送用のテキスト出力を作成できます。

7.10.1 RTF eTextテンプレートのXSLへの変換

RTF eTextテンプレートをXSLに変換するAPIメソッドのコールの例は、次のとおりです。

例7-32 RTF eTextテンプレートのXSLへの変換のサンプル・コード

String rtf = "test.rtf"; // etext template filename
String xsl = "out.xsl"; //  xsl-fo filename
Properties prop = new Properties();

try
{
EFTProcessor p = new EFTProcessor();

p.setTemplate(rtf);
p.setConfig(prop);
p.setOutput(xsl);
p.process();
}
catch (Exception e)
{
e.printStackTrace();
}

7.10.2 EDIおよびEFT伝送用のテキスト出力の作成

XSLとXMLをマージしてeText出力を作成するAPIメソッドのコールの例は、次のとおりです。

例7-33 EDIおよびEFT伝送用のテキスト出力の作成のサンプル・コード

String rtf = "test.rtf"; // etext template filename
String xml = "data.xml"; //xml data filename
String etext = "etext.txt"; //etext output filename
Properties prop = new Properties();

try
{
EFTProcessor p = new EFTProcessor();
p.setConfig(prop);
p.setTemplate(rtf);
p.setData(xml);
p.setOutput(etext);
p.process();
}
catch (Exception e)
{
e.printStackTrace();
}

7.11 ドキュメント・プロセッサ・エンジン

ドキュメント・プロセッサ・エンジンは、テンプレート名、データソース、言語、出力タイプ、出力名および出力先を指定する単一のXMLインスタンスドキュメントを渡すことによって、単一のAPIまたは複数のAPIにアクセスするバッチ処理機能を提供します。

このソリューションを使用すると、BI Publisherを使用したバッチ印刷が可能になります。単一のXMLドキュメントを使用して、複数の顧客に対する一連の請求書について、顧客ごとの優先出力形式や配信チャネルなども含めて定義できます。XML形式は非常に柔軟性があり、複数ドキュメントの作成または単一のマスター・ドキュメントの作成が可能です。

この項の内容は、次のとおりです。

- ドキュメント・プロセッサXMLファイルの階層と要素の説明

- 特定の処理オプションの例を示すサンプルXMLファイルの提供

- プロセッサを起動するサンプル・コードの提供

7.11.1 ドキュメント・プロセッサXMLファイルの階層と要素

ドキュメント・プロセッサXMLファイルの要素の階層は、次のとおりです。

Requestset
request
delivery
filesystem
print
fax
number
email
message
document
background
text
pagenumber
template
data

この階層を図に表すと、次のようになります。

図7-6 ドキュメント・プロセッサXMLファイルの階層と要素

次の表で、各要素について説明します。

表7-1 ドキュメント・プロセッサXMLファイルの階層内の要素

要素

属性

説明

requestset

xmlns

version

ルート要素には、[xmlns:xapi="http://xmlns.oracle.com/oxp/xapi/"]ブロックが含まれている必要があります。

versionは必須ではありませんが、デフォルトは"1.0"に設定されています。

request

なし

データおよびテンプレート処理定義が含まれる要素。

delivery

なし

生成された出力の送信先を定義します。

document

output-type

出力を1つ指定します。この出力には複数のテンプレート要素を設定できます。output-type属性はオプションです。有効な値は次のとおりです。

pdf(デフォルト)

rtf

html

excel

text

filesystem

output

出力をファイル・システムに保存する場合はこの要素を指定します。output属性にディレクトリ・パスを定義します。

print

- printer

- server-alias

print要素は、1つのドキュメントを複数のプリンタに印刷するために、deliveryの下に複数回記述できます。printer属性をURI(例:"ipp://myprintserver:631/printers/printername")で指定します。

fax

- server

- server-alias

server属性にURIを指定します(例: "ipp://myfaxserver1:631/printers/myfaxmachine")。

number

number要素は、複数のFAX番号をリストするために複数回記述できます。各要素に1つの番号のみ記述する必要があります。

email

- server

- port

- from

- reply-to

- server-alias

server属性に送信メール・サーバー(SMTP)を指定します。

port属性にメール・サーバーのポートを指定します。

message

- to

- cc

- bcc

- attachment

- subject

message要素は、email要素の下に複数回配置できます。message要素には文字データを指定できます。

to、ccおよびbcc属性には、複数の電子メール・アドレスをカンマで区切って指定できます。

attachmentの値はtrueまたはfalse(デフォルト)です。attachmentがtrueの場合、生成されたドキュメントは電子メールの送信時に添付されます。

subject属性はオプションです。

background

where

特定のページに背景テキストが必要な場合は、where値に必要なページ番号を設定します。ページ索引は1から始まります。デフォルト値は0(ゼロ)で、この場合はすべてのページに背景が配置されます。

text

- title

- default

titleの値に透かしテキストを指定します。

default値がyesの場合は、スラッシュ付きの透かしが自動的に描画されます。デフォルト値はyesです。

pagenumber

- initial-page-index

- initial-value

- x-pos

- y-pos

initial-page-indexのデフォルト値は0(ゼロ)です。

initial-valueのデフォルト値は1です。

ページ番号のフォントにはHelveticaが使用されます。

x-posは、左下のx位置を示します。

y-posは、左下のy位置を示します。

template

- locale

- location

- type

テンプレート情報が記述されます。

type属性の有効な値は次のとおりです。

pdf

rtf

xsl-fo

etext

デフォルトはpdfです。

data

location

location属性を定義して、データの格納場所を指定するか、またはサブ要素を含む実際のXMLデータを添付します。locationのデフォルト値はinlineです。locationがXMLファイルまたはURLのいずれかを指し示す場合、データには正しいエンコーディングのXML宣言が含まれている必要があります。

location属性が指定されない場合は、data要素に実際のデータのサブ要素が含まれている必要があります。これにはXML宣言を含めないでください。

7.11.2 XMLファイルのサンプル

この項では、次の例を示す各サンプルXMLファイルを提供します。

- 単純なXML形式

- 2つのデータ・セットの定義

- 複数のテンプレートおよびデータの定義

- HTTPを介したテンプレートの取得

- HTTPを介したデータの取得

- 複数出力の生成

- ページ番号の定義

7.11.2.1 2つのデータ・セットの定義

次の例は、2つのデータソースを定義して1つのテンプレートとマージし、ファイル・システムに送信される1つの出力ファイルを作成する方法を示しています。

例7-34 2つのデータ・セットを定義するサンプルXML

<?xml version="1.0" encoding="UTF-8"?>
<xapi:requestset xmlns:xapi="http://xmlns.oracle.com/oxp/xapi">
<xapi:request>
<xapi:delivery>
<xapi:filesystem output="d:\tmp\outfile.pdf"/>
</xapi:delivery>

<xapi:document output-type="pdf">
<xapi:template type="pdf"
location="d:\mywork\template1.pdf">
<xapi:data>
<field1>The first set of data</field1>
</xapi:data>
<xapi:data>
<field1>The second set of data</field1>
</xapi:data>
</xapi:template>
</xapi:document>
</xapi:request>
</xapi:requestset>

7.11.2.2 複数のテンプレートおよびデータの定義

次の例は、前述の例を基に、2つのデータソースを1つのテンプレートに、さらに2つのデータソースを2番目のテンプレートに適用し、これら2つを1つの出力ファイルにマージする方法を示しています。ドキュメントをマージするときは、output-typeが"pdf"であることが必要です。

例7-35 複数のテンプレートとデータを定義するサンプルXML

<?xml version="1.0" encoding="UTF-8"?>
<xapi:requestset xmlns:xapi="http://xmlns.oracle.com/oxp/xapi">
<xapi:request>
<xapi:delivery>
<xapi:filesystem output="d:\tmp\outfile3.pdf"/>
</xapi:delivery>

<xapi:document output-type="pdf">
<xapi:template type="pdf"
location="d:\mywork\template1.pdf">
<xapi:data>
<field1>The first set of data</field1>
</xapi:data>
<xapi:data>
<field1>The second set of data</field1>
</xapi:data>
</xapi:template>

<xapi:template type="pdf"
location="d:\mywork\template2.pdf">
<xapi:data>
<field1>The third set of data</field1>
</xapi:data>
<xapi:data>
<field1>The fourth set of data</field1>
</xapi:data>
</xapi:template>
</xapi:document>
</xapi:request>
</xapi:requestset>

7.11.2.3 HTTPを介したテンプレートの取得

このサンプルは、前述の例とほぼ同じですが、2つのテンプレートがHTTPを介して取得されている点が異なります。

例7-36 HTTPを介したテンプレートを取得するサンプルXML

<?xml version="1.0" encoding="UTF-8"?>
<xapi:requestset xmlns:xapi="http://xmlns.oracle.com/oxp/xapi">
<xapi:request>
<xapi:delivery>
<xapi:filesystem output="d:\temp\out4.pdf"/>
</xapi:delivery>

<xapi:document output-type="pdf">
<xapi:template type="pdf"
location="http://your.server:9999/templates/template1.pdf">
<xapi:data>
<field1>The first page data</field1>
</xapi:data>
<xapi:data>
<field1>The second page data</field1>
</xapi:data>
</xapi:template>
<xapi:template type="pdf"
location="http://your.server:9999/templates/template2.pdf">
<xapi:data>
<field1>The third page data</field1>
</xapi:data>
<xapi:data>
<field1>The fourth page data</field1>
</xapi:data>
</xapi:template>
</xapi:document>
</xapi:request>
</xapi:requestset>

7.11.2.4 HTTPを介したデータの取得

このサンプルは、前述の例を基に、2つのデータソースを使用する1つのテンプレートを示しています。これらはすべてHTTPを介して取得されます。さらに、HTTPを介して取得される2番目のテンプレートがXMLに埋め込まれた2つのデータソースとともに示されています。

例7-37 HTTPを介したデータを取得するサンプルXML

<?xml version="1.0" encoding="UTF-8"?>
<xapi:requestset xmlns:xapi="http://xmlns.oracle.com/oxp/xapi">
<xapi:request>
<xapi:delivery>
<xapi:filesystem output="d:\temp\out5.pdf"/>
</xapi:delivery>

<xapi:document output-type="pdf">
<xapi:template type="pdf"
location="http://your.server:9999/templates/template1.pdf">
<xapi:data location="http://your.server:9999/data/data_1.xml"/>
<xapi:data location="http://your.server:9999/data/data_2.xml"/>
</xapi:template>

<xapi:template type="pdf"
location="http://your.server:9999/templates/template2.pdf">
<xapi:data>
<field1>The third page data</field1>
</xapi:data>
<xapi:data>
<field1>The fourth page data</field1>
</xapi:data>
</xapi:template>
</xapi:document>
</xapi:request>
</xapi:requestset>

7.11.2.5 複数出力の生成

次のサンプルは、2つの出力out_1.pdfとout_2.pdfの生成を示しています。各出力に対してrequest要素が定義されていることに注意してください。

例7-38 複数出力を生成するサンプルXML

<?xml version="1.0" encoding="UTF-8"?>
<xapi:requestset xmlns:xapi="http://xmlns.oracle.com/oxp/xapi">
<xapi:request>
<xapi:delivery>
<xapi:filesystem output="d:\temp\out_1.pdf"/>
</xapi:delivery>
<xapi:document output-type="pdf">
<xapi:template type="pdf"
location="d:\mywork\template1.pdf">
<xapi:data>
<field1>The first set of data</field1>
</xapi:data>
<xapi:data>
<field1>The second set of data</field1>
</xapi:data>
</xapi:template>
</xapi:document>
</xapi:request>

<xapi:request>
<xapi:delivery>
<xapi:filesystem output="d:\temp\out_2.pdf"/>
</xapi:delivery>
<xapi:document output-type="pdf">
<xapi:template type="pdf"
location="d:mywork\template2.pdf">
<xapi:data>
<field1>The third set of data</field1>
</xapi:data>
<xapi:data>
<field1>The fourth set of data</field1>
</xapi:data>
</xapi:template>
</xapi:document>
</xapi:request>

</xapi:requestset>

7.11.2.6 ページ番号の定義

次のサンプルは、PDF出力ドキュメントにページ番号を定義するpagenumber要素の使用方法を示しています。生成される最初のドキュメントは、初期ページ番号値1で始まります。2番目の出力ドキュメントは、初期ページ番号値3で始まります。pagenumber要素は、document要素タグ内の任意の場所に配置できます。

pagenumber要素を使用して適用されるページ番号は、テンプレートで定義されているページ番号を置換しません。

例7-39 ページ番号を定義するサンプルXML

<?xml version="1.0" encoding="UTF-8"?>
<xapi:requestset xmlns:xapi="http://xmlns.oracle.com/oxp/xapi">
<xapi:request>
<xapi:delivery>
<xapi:filesystem output="d:\temp\out7-1.pdf"/>
</xapi:delivery>
<xapi:document output-type="pdf">
<xapi:pagenumber initial-value="1" initial-page-index="1"
x-pos="300" y-pos="20" />
<xapi:template type="pdf"
location="d:\mywork\template1.pdf">
<xapi:data>
<field1>The first page data</field1>
</xapi:data>
<xapi:data>
<field1>The second page data</field1>
</xapi:data>
</xapi:template>
</xapi:document>
</xapi:request>

<xapi:request>
<xapi:delivery>
<xapi:filesystem output="d:\temp\out7-2.pdf"/>
</xapi:delivery>
<xapi:document output-type="pdf">
<xapi:template type="pdf"
location="d:\mywork\template2.pdf">
<xapi:data>
<field1>The third page data</field1>
</xapi:data>
<xapi:data>
<field1>The fourth page data</field1>
</xapi:data>
</xapi:template>
<xapi:pagenumber initial-value="3" initial-page-index="1"
x-pos="300" y-pos="20" />
</xapi:document>
</xapi:request>

</xapi:requestset>

7.11.3 プロセッサの起動

次のコード・サンプルは、入力ファイル名と入力ストリームを使用してドキュメント・プロセッサ・エンジンを起動する方法を示しています。

7.11.3.1 入力ファイル名を使用したプロセッサの起動

入力:

- データ・ファイル名(文字列)

- 一時ファイルのディレクトリ(文字列)

例7-40 入力ファイル名を使用したプロセッサの起動のサンプル・コード

import oracle.xdo.batch.DocumentProcessor;
.
.
.
public static void main(String[] args)
{
.
.
.
try
{
// dataFile --- File path of the Document Processor XML
// tempDir  --- Temporary Directory path
DocumentProcessor  docProcessor = new DocumentProcessor(dataFile, tempDir);
docProcessor.process();
}
catch(Exception e)
{
e.printStackTrace();
System.exit(1);
}
System.exit(0);
}

7.11.3.2 入力ストリームを使用したプロセッサの起動

入力:

- データ・ファイル(入力ストリーム)

- 一時ファイルのディレクトリ(文字列)

例7-41 入力ストリームを使用したプロセッサの起動のサンプル・コード

import oracle.xdo.batch.DocumentProcessor;
import java.io.InputStream;
.
.
.
public static void main(String[] args)
{
.
.
.
try
{
// dataFile --- File path of the Document Processor XML
// tempDir  --- Temporary Directory path
FileInputStream fIs = new FileInputStream(dataFile);

DocumentProcessor  docProcessor = new DocumentProcessor(fIs, tempDir);
docProcessor.process();
fIs.close();
}
catch(Exception e)
{
e.printStackTrace();
System.exit(1);
}
System.exit(0);
}

7.12 BI Publisherのプロパティ

FOプロセッサでは、最終的なドキュメントに適用可能なPDFセキュリティおよびその他のプロパティがサポートされています。セキュリティ・プロパティには、ドキュメントを印刷不可にする機能、および暗号化ドキュメントにパスワード・セキュリティを適用する機能があります。

その他のプロパティでは、フォントのサブセット化および埋込みを定義できます。通常実行時にBI Publisherで使用できないフォントがテンプレートで使用されている場合は、フォント・プロパティを使用してフォントの格納場所を指定できます。BI Publisherは、実行時にフォントを取得し、最終的なドキュメントで使用します。たとえば、このプロパティは、小切手の口座番号と銀行支店コードにMICRフォントを使用している場合に、その小切手の印刷に使用される場合があります。

7.12.1 プロパティの設定

このプロパティは、次の方法で設定できます。

- 実行時に、Javaプロパティ・オブジェクトとしてプロパティを指定し、FOプロセッサに渡します。

- 構成ファイルにプロパティを設定します。

- テンプレートにプロパティを設定します(RTFテンプレートのみ)。

7.12.1.1 FOエンジンへのプロパティの受渡し

プロパティをプロパティ・オブジェクトとして渡すには、FOプロセッサをコールする前にプロパティの名前/値のペアを設定します。次に例を示します。

入力:

- XMLファイル名(文字列)

- XSLファイル名(文字列)

出力:

- PDFファイル名(文字列)

例7-42 FOエンジンへのプロパティの受渡しのサンプル・コード

import oracle.xdo.template.FOProcessor;
.
.
.
public static void main(String[] args)
{

FOProcessor processor = new FOProcessor();
processor.setData(args[0]);     // set XML input file
processor.setTemplate(args[1]); // set XSL input file
processor.setOutput(args[2]);  //set (PDF) output file
processor.setOutputFormat(FOProcessor.FORMAT_PDF);
Properties prop = new Properties();
/* PDF Security control: */
prop.put("pdf-security", "true");
/* Permissions password: */
prop.put("pdf-permissions-password", "abc");
/* Encryption level: */
prop.put("pdf-encription-level", "0");
processor.setConfig(prop);
// Start processing
try
{
processor.generate();
}
catch (XDOException e)
{
e.printStackTrace();
System.exit(1);
}

System.exit(0);
}

7.12.1.2 >FOプロセッサへの構成ファイルの受渡し

次のコードは、構成ファイルの格納場所を渡す例を示しています。

入力:

- XMLファイル名(文字列)

- XSLファイル名(文字列)

出力:

- PDFファイル名(文字列)

例7-43 FOプロセッサへの構成ファイルの受渡しのサンプル・コード

import oracle.xdo.template.FOProcessor;
.
.
.
public static void main(String[] args)
{
FOProcessor processor = new FOProcessor();
processor.setData(args[0]);     // set XML input file
processor.setTemplate(args[1]); // set XSL input file
processor.setOutput(args[2]);  //set (PDF) output file
processor.setOutputFormat(FOProcessor.FORMAT_PDF);
processor.setConfig("/tmp/xmlpconfig.xml");
// Start processing
try
{
processor.generate();
}    catch (XDOException e)
{       e.printStackTrace();
System.exit(1);
}
System.exit(0);
}

7.12.1.3 ドキュメント・プロセッサへのプロパティの受渡し

入力:

- データ・ファイル名(文字列)

- 一時ファイルのディレクトリ(文字列)

出力:

- PDFファイル

例7-44 ドキュメント・プロセッサへのプロパティの受渡しのサンプル・コード

import oracle.xdo.batch.DocumentProcessor;
.
.
.
public static void main(String[] args)
{
.
.
.
try
{
// dataFile --- File path of the Document Processor XML
// tempDir  --- Temporary Directory path
DocumentProcessor  docProcessor = new DocumentProcessor(dataFile, tempDir);
Properties prop = new Properties();
/* PDF Security control: */
prop.put("pdf-security", "true");
/* Permissions password: */
prop.put("pdf-permissions-password", "abc");
/* encryption level: */
prop.put("pdf-encription-level", "0");
processor.setConfig(prop);
docProcessor.process();
}
catch(Exception e)
{
e.printStackTrace();
System.exit(1);
}
System.exit(0);
}

7.13 バーコードの拡張書式設定

拡張書式設定をテンプレートで機能させるには、実行時にデータの書式を設定する適切なメソッドをJavaクラスに提供する必要があります。多くのフォント・ベンダーは、書式設定を実行するために、フォントとともにコードを提供しています。これらのコードは、実行時にBI Publisherの書式設定ライブラリで使用可能なクラスにメソッドとして組み込む必要があります。エンコーディングに対して正しいメソッドをコールするために、ライブラリのクラスに固有のインタフェースを用意する必要があります。

BI Publisherに備わっている3つのバーコードのいずれかを使用すれば、Javaクラスを提供する必要はありません。詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Publisherレポート・デザイナーズ・ガイド』のBI Publisherに付属のバーコード・フォントの使用方法に関する項を参照してください。

このクラスには、次のメソッドを実装する必要があります。

/**
* Return a unique ID for this barcode encoder
* @return the id as a string
*/
public String getVendorID();

/**
* Return true if this encoder support a specific type of barcode
* @param type the type of the barcode
* @return true if supported
*/
public boolean isSupported(String type);

/**
* Encode a barcode string by given a specific type
* @param data the original data for the barcode
* @param type the type of the barcode
* @return the formatted data
*/
public String encode(String data, String type);

このクラスをBI Publisherが動作している中間層JVMのクラスパスに配置してください。

E-Business Suiteユーザーは、中間層および存在しているコンカレント・ノードのクラスパスに、クラスを配置する必要があります。

register-barcode-vendorコマンドにbarcode_vendor_idが指定されていない場合、BI PublisherはgetVendorID()をコールして、このメソッドの結果をベンダーIDとして使用します。

code128a、code128bおよびcode128cエンコーディングをサポートするクラスの例は次のとおりです。

次のコード・サンプルは、ご使用のシステムにコピーして貼付けることができます。公開上の制約のため、改行を修正し、スマート引用符として表示される引用符を削除して単純な引用符に置換する必要があります。

例7-45 バーコードの拡張書式設定のサンプル・コード

package oracle.xdo.template.rtf.util.barcoder;

import java.util.Hashtable;
import java.lang.reflect.Method;
import oracle.xdo.template.rtf.util.XDOBarcodeEncoder;
import oracle.xdo.common.log.Logger;
// This class name will be used in the register vendor
// field in the template.

public class BarcodeUtil  implements XDOBarcodeEncoder
// The class implements the XDOBarcodeEncoder interface
{
// This is the barcode vendor id that is used in the
// register vendor field and format-barcode fields
public static final String BARCODE_VENDOR_ID = "XMLPBarVendor";
// The hashtable is used to store references to
// the encoding methods
public static final Hashtable ENCODERS = new Hashtable(10);
// The BarcodeUtil class needs to be instantiated
public static final BarcodeUtil mUtility = new BarcodeUtil();
// This is the main code that is executed in the class,
// it is loading the methods for the encoding into the hashtable.
// In this case we are loading the three code128 encoding
// methods we have created.
static {
try {
Class[] clazz = new Class[] { "".getClass() };

ENCODERS.put("code128a",mUtility.getClass().getMethod("code128a", clazz));
ENCODERS.put("code128b",mUtility.getClass().getMethod("code128b", clazz));
ENCODERS.put("code128c",mUtility.getClass().getMethod("code128c", clazz));
} catch (Exception e) {
// This is using the BI Publisher logging class to push
// errors to the XMLP log file.
Logger.log(e,5);
}
}

// The getVendorID method is called from the template layer
// at runtime to ensure the correct encoding method are used
public final String getVendorID()
{
return BARCODE_VENDOR_ID;
}
//The isSupported method is called to ensure that the
// encoding method called from the template is actually
//  present in this class.
// If not then XMLP will report this in the log.
public final boolean isSupported(String s)
{
if(s != null)
return ENCODERS.containsKey(s.trim().toLowerCase());
else
return false;
}

// The encode method is called to then call the appropriate
// encoding method, in this example the code128a/b/c methods.

public final String encode(String s, String s1)
{
if(s != null && s1 != null)
{
try
{
Method method = (Method)ENCODERS.get(s1.trim().toLowerCase());
if(method != null)
return (String)method.invoke(this, new Object[] {
s
});
else
return s;
}
catch(Exception exception)
{
Logger.log(exception,5);
}
return s;
} else
{
return s;
}
}

/** This is the complete method for Code128a */

public static final String code128a( String DataToEncode )
{
char C128_Start = (char)203;
char C128_Stop = (char)206;
String Printable_string = "";
char CurrentChar;
int CurrentValue=0;
int weightedTotal=0;
int CheckDigitValue=0;
char C128_CheckDigit='w';

DataToEncode = DataToEncode.trim();
weightedTotal = ((int)C128_Start) - 100;
for( int i = 1; i <= DataToEncode.length(); i++ )
{
//get the value of each character
CurrentChar = DataToEncode.charAt(i-1);
if( ((int)CurrentChar) < 135 )
CurrentValue = ((int)CurrentChar) - 32;
if( ((int)CurrentChar) > 134 )
CurrentValue = ((int)CurrentChar) - 100;

CurrentValue = CurrentValue * i;
weightedTotal = weightedTotal + CurrentValue;
}
//divide the WeightedTotal by 103 and get the remainder,
//this is the CheckDigitValue
CheckDigitValue = weightedTotal % 103;
if( (CheckDigitValue < 95) && (CheckDigitValue > 0) )
C128_CheckDigit = (char)(CheckDigitValue + 32);
if( CheckDigitValue > 94 )
C128_CheckDigit = (char)(CheckDigitValue + 100);
if( CheckDigitValue == 0 ){
C128_CheckDigit = (char)194;
}

Printable_string = C128_Start + DataToEncode + C128_CheckDigit + C128_Stop + " ";
return Printable_string;
}

/** This is the complete method for Code128b ***/

public static final String code128b( String DataToEncode )
{
char C128_Start = (char)204;
char C128_Stop = (char)206;
String Printable_string = "";
char CurrentChar;
int CurrentValue=0;
int weightedTotal=0;
int CheckDigitValue=0;
char C128_CheckDigit='w';

DataToEncode = DataToEncode.trim();
weightedTotal = ((int)C128_Start) - 100;
for( int i = 1; i <= DataToEncode.length(); i++ )
{
//get the value of each character
CurrentChar = DataToEncode.charAt(i-1);
if( ((int)CurrentChar) < 135 )
CurrentValue = ((int)CurrentChar) - 32;
if( ((int)CurrentChar) > 134 )
CurrentValue = ((int)CurrentChar) - 100;

CurrentValue = CurrentValue * i;
weightedTotal = weightedTotal + CurrentValue;
}
//divide the WeightedTotal by 103 and get the remainder,
//this is the CheckDigitValue
CheckDigitValue = weightedTotal % 103;
if( (CheckDigitValue < 95) && (CheckDigitValue > 0) )
C128_CheckDigit = (char)(CheckDigitValue + 32);
if( CheckDigitValue > 94 )
C128_CheckDigit = (char)(CheckDigitValue + 100);
if( CheckDigitValue == 0 ){
C128_CheckDigit = (char)194;
}

Printable_string = C128_Start + DataToEncode + C128_CheckDigit + C128_Stop + " ";
return Printable_string;
}

/** This is the complete method for Code128c **/

public static final String code128c( String s )
{
char C128_Start = (char)205;
char C128_Stop = (char)206;
String Printable_string = "";
String DataToPrint = "";
String OnlyCorrectData = "";
int i=1;
int CurrentChar=0;
int CurrentValue=0;
int weightedTotal=0;
int CheckDigitValue=0;
char C128_CheckDigit='w';
DataToPrint = "";
s = s.trim();
for(i = 1; i <= s.length(); i++ )
{
//Add only numbers to OnlyCorrectData string
CurrentChar = (int)s.charAt(i-1);
if((CurrentChar < 58) && (CurrentChar > 47))
{
OnlyCorrectData = OnlyCorrectData + (char)s.charAt(i-1);
}
}
s = OnlyCorrectData;
//Check for an even number of digits, add 0 if not even
if( (s.length() % 2) == 1 )
{
s = "0" + s;
}
//<<<< Calculate Modulo 103 Check Digit and generate
// DataToPrint >>>>
//Set WeightedTotal to the Code 128 value of
// the start character
weightedTotal = ((int)C128_Start) - 100;
int WeightValue = 1;
for( i = 1; i <= s.length(); i += 2 )
{
//Get the value of each number pair (ex: 5 and 6 = 5*10+6 =56)
//And assign the ASCII values to DataToPrint
CurrentChar = ((((int)s.charAt(i-1))-48)*10) + (((int)s.charAt(i))-48);
if((CurrentChar < 95) && (CurrentChar  > 0))
DataToPrint = DataToPrint + (char)(CurrentChar + 32);
if( CurrentChar > 94 )
DataToPrint = DataToPrint + (char)(CurrentChar + 100);
if( CurrentChar == 0)
DataToPrint = DataToPrint + (char)194;
//multiply by the weighting character
//add the values together to get the weighted total
weightedTotal = weightedTotal + (CurrentChar * WeightValue);
WeightValue = WeightValue + 1;
}
//divide the WeightedTotal by 103 and get the remainder,
//this is the CheckDigitValue
CheckDigitValue = weightedTotal % 103;
if((CheckDigitValue < 95) && (CheckDigitValue > 0))
C128_CheckDigit = (char)(CheckDigitValue + 32);
if( CheckDigitValue > 94 )
C128_CheckDigit = (char)(CheckDigitValue + 100);
if( CheckDigitValue == 0 ){
C128_CheckDigit = (char)194;
}
Printable_string = C128_Start + DataToPrint + C128_CheckDigit + C128_Stop + " ";
Logger.log(Printable_string,5);
return Printable_string;
}
}

クラスを作成して正しいクラスパスに配置すると、テンプレート作成者は、そのクラスを使用してバーコードのデータを書式設定できるようになります。テンプレート・コマンドに次の情報を指定することをテンプレート作成者に伝える必要があります。

- クラス名とパス
この例では、次のとおりです。

oracle.xdo.template.rtf.util.barcoder.BarcodeUtil

- 作成したバーコード・ベンダーID
この例では、XMLPBarVendorです。

- 使用可能なエンコーディング・メソッド
この例では、コード128a、コード128bおよびコード128cです。これらのコードはこの情報を使用して、データをバーコード出力にエンコードできます。

テンプレート作成者は、この情報を使用してバーコード出力用データを正しくエンコーディングできます。

8 配信マネージャJava APIの使用

この章では、BI Publisherの配信マネージャAPIについて説明します。

内容は次のとおりです。

- 第8.1項「配信マネージャの使用」

- 第8.2項「電子メールによるドキュメントの配信」

- 第8.3項「プリンタへのドキュメントの配信」

- 第8.4項「ローカル・プリンタへのドキュメントの配信」

- 第8.5項「Faxサーバーへのドキュメントの配信」

- 第8.6項「RightFaxサーバーへのドキュメントの配信」

- 第8.7項「WebDAVサーバーへのドキュメントの配信」

- 第8.8項「ファイル転送プロトコル(FTP)によるドキュメントの配信」

- 第8.9項「Secure FTPによるドキュメントの配信」

- 第8.10項「Hypertext Transfer Protocol(HTTP)によるドキュメントの配信」

- 第8.11項「AS2によるドキュメントの配信」

- 第8.12項「外部コマンドによるドキュメントの配信」

- 第8.13項「ローカル・ファイル・システムへのドキュメントの配信」

- 第8.14項「ダイレクト・モードとバッファリング・モード」

- 第8.15項「非同期の配信要求」

- 第8.16項「ドキュメント・フィルタのサポート」

- 第8.17項「日付式のサポート」

- 第8.18項「国際化サポート」

- 第8.19項「グローバル・プロパティの設定」

- 第8.20項「カスタム配信チャネルの追加」

- 第8.21項「構成ファイルのサポート」

8.1 配信マネージャの使用

配信マネージャは、BI Publisherドキュメントの配信制御に使用可能なJava APIのセットです。配信マネージャは、次のタスクの実行に使用します。

- 既存配信チャネルまたはカスタム配信チャネルを経由したドキュメントの配信

- ドキュメントの再配信

配信マネージャを使用するには、次の手順を実行します。

1. DeliveryManagerインスタンスを作成します。

2. createRequest()メソッドを使用して、DeliveryRequestインスタンスを作成します。

3. 要求のプロパティ(DeliveryRequestの宛先など)を追加します。ほとんどのプロパティには文字列値が必要です。詳細は、各配信チャネルでサポートされているプロパティを参照してください。

4. ドキュメントをDeliveryRequestに設定します。

5. submit()をコールし、配信要求を実行します。

1つの配信要求で処理できるのは、1つのドキュメントと1つの宛先です。これによって、監視と再送信が必要に応じて容易に実行できます。

DeliveryRequestを使用すると、次の2つの方法でドキュメントを設定できます。

- DeliveryRequestにドキュメントの入力ストリームを設定する方法。submit()を最初にコールしたときに、DeliveryRequestでは入力ストリームが読み取られます。DeliveryRequestでは入力ストリームが閉じないため、必ずユーザーが閉じる必要があります。

- ドキュメントのファイル名をDeliveryRequestに設定する方法。

ダイレクト・モードを設定すると、配信マネージャで配信のストリーム化がサポートされます。第8.14項「ダイレクト・モードとバッファリング・モード」を参照してください。

この章では、ドキュメントの次の配信チャネルについて説明します。

- 電子メール

- プリンタ

- ローカル・プリンタ

- FAX

- RightFax

- WebDAV

- FTP

- Secure FTP

- HTTP

- AS2

8.2 電子メールによるドキュメントの配信

次に、電子メール経由で配信するコードの例を示します。

例8-1 電子メールによるドキュメントの配信のサンプル・コード

// create delivery manager instance
DeliveryManager dm = new DeliveryManager();
// create a delivery request
DeliveryRequest req = dm.createRequest(DeliveryManager.TYPE_SMTP_EMAIL);

// set email subject
req.addProperty(DeliveryPropertyDefinitions.SMTP_SUBJECT, "test mail");
// set SMTP server host
req.addProperty(
DeliveryPropertyDefinitions.SMTP_HOST, "mysmtphost");
// set the sender email address
req.addProperty(DeliveryPropertyDefinitions.SMTP_FROM, "myname@foobar.com.example");
// set the destination email address
req.addProperty(
DeliveryPropertyDefinitions.SMTP_TO_RECIPIENTS, "user1@foobar.com.example, user2@foobar.com.example" );
// set the content type of the email body
req.addProperty(DeliveryPropertyDefinitions.SMTP_CONTENT_TYPE, "application/pdf");
// set the document file name appeared in the email
req.addProperty(DeliveryPropertyDefinitions.SMTP_CONTENT_FILENAME, "test.pdf");
// set the document to deliver
req.setDocument("/document/test.pdf");

// submit the request
req.submit();
// close the request
req.close();

次の表に、サポートされているプロパティを示します。

表8-1 電子メール配信のプロパティ

プロパティ

説明

SMTP_TO_RECIPIENTS

必須

カンマで区切った複数の受信者を入力します(例: "user1@foobar.com.example, user2@foobar.com.example")。

SMTP_CC_RECIPIENTS

オプション

カンマで区切った複数の受信者を入力します。

SMTP_BCC_RECIPIENTS

オプション

カンマで区切った複数の受信者を入力します。

SMTP_FROM

必須

送信者の電子メール・アドレスを入力します

SMTP_REPLY_TO

オプション

返信先の電子メール・アドレスを入力します。

SMTP_SUBJECT

必須

電子メールのサブジェクトを入力します。

SMTP_CHARACTER_ENCODING

オプション

デフォルトは"UTF-8"です。

SMTP_ATTACHMENT

オプション

電子メールに添付する場合は、添付オブジェクトの名前を入力します。

SMTP_CONTENT_FILENAME

オプション

添付ファイルの名前を入力します(例: invoice.pdf)。

SMTP_CONTENT_DISPOSITION

添付ファイルの内容の処理値は"inline"または"attachment"です。デフォルトは"attachment"です。

SMTP_CONTENT_TYPE

必須

MIMEタイプを入力します。

SMTP_SMTP_HOST

必須

SMTPホスト名を入力します。

SMTP_SMTP_PORT

オプション

SMTPポートを入力します。デフォルトは25です。

SMTP_SECURE_CONNECTION

このプロパティはセキュアに使用できる接続方法を制御します。

有効な値は次のとおりです。

- "none": デフォルト

- "tls": サーバーがコマンドをサポートする際にSTARTTLSを使用します。

- "tls_required": サーバーがコマンドをサポートしていない場合には、STARTTLSを使用して停止します。

- "ssl": Secure Sockets Layer向け

SMTP_SMTP_USERNAME

オプション

SMTPサーバーが認証を必要とする場合は、サーバーのユーザー名を入力します。

SMTP_SMTP_PASSWORD

オプション

SMTPサーバーが認証を必要とする場合は、入力したユーザー名に対応するパスワードを入力します。

SMTP_ATTACHMENT_FIRST

オプション

電子メールに添付を含めるときに、その添付を最初に表示する場合は"true"を入力します。最初に表示しない場合は"false"を入力します。

8.2.1 複数の受信者の定義

電子メール・サーバーによる配信チャネルでは、1つの要求に複数のドキュメントと複数の配信先を設定できます。次に、複数のTOアドレスと複数のCCアドレスを設定するコードの例を示します。

例8-2 複数の受信者の定義のサンプル・コード

// set the TO email addresses
req.addProperty(
DeliveryPropertyDefinitions.SMTP_TO_RECIPIENTS,
"user1@foobar.com.example, user2@foobar.com.example, user3@foobar.com.example");

// set the CC email addresses
req.addProperty(
DeliveryPropertyDefinitions.SMTP_CC_RECIPIENTS,
"user4@foobar.com.example, user5@foobar.com.example, user6@foobar.com.example");

8.2.2 1つの要求への複数のドキュメントの添付

Attachmentユーティリティ・クラス(oracle.apps.xdo.delivery.smtp.Attachment)を使用すると、複数のドキュメントが1つの要求に添付されます。次に、その使用方法の例を示します。

例8-3 1つの要求への複数のドキュメントの添付のサンプル・コード

:
:
// create Attachment instance
Attachment m = new Attachment();

// add PDF attachment
m.addAttachment(
"/pdf_doc/invoice.pdf",      // file to deliver
"invoice.pdf",               // file name as appears in email
"application/pdf");          // content type

// add RTF attachment
m.addAttachment(
"/rtf_doc/product.rtf",      // file to deliver
"product.rtf",               // file name appears in the email
"application/rtf");          // content type

// add XML attachment
m.addAttachment(
"/xml_doc/data.xml",          // file to deliver
"data.xml",                   // file name appears in the email
"text/xml");                  // content type

// If you want to attach HTML doucments, use addHtmlAttachment().
// This method automatically resolves the image references
// in your HTML document and attaches those images.
m.addHtmlAttachment("/html_doc/invoice.html");

// add the attachment to the request
req.addProperty(DeliveryPropertyDefinitions.SMTP_ATTACHMENT, m);

:
:

8.2.3 HTMLドキュメントの添付

複数のHTMLドキュメントを1つの要求に添付できます。ローカルのファイル・システムにあるイメージ・ファイルへの参照がHTMLドキュメントにある場合は、Attachmentユーティリティによって、これらのイメージ・ファイルも自動的に添付されます。次に、その使用方法の例を示します。

例8-4 HTMLドキュメントの添付のサンプル・コード

Attachment m = new Attachment();
m.addHtmlAttachment("/path/to/my.html");
:
:

req.addProperty(DeliveryPropertyDefinitions.SMTP_ATTACHMENT, m);

8.2.4 電子メールの最上部への添付の表示

電子メールの最上部に添付を表示する場合は、プロパティのSMTP_ATTACHMENT_FIRSTを"true"に設定します。次に、その使用方法の例を示します。

例8-5 電子メールの最上部への添付の表示のサンプル・コード

Attachment m = new Attachment();
m.addHtmlAttachment("/path/to/my.html");
:
:
req.addProperty(DeliveryPropertyDefinitions.SMTP_ATTACHMENT_FIRST, "true");
:

8.2.5 電子メールの本文としてのStringオブジェクトの使用

電子メールの本文に、Stringオブジェクトを使用できます。この方法は、添付ファイルとともにメッセージを含める場合などに便利です。次のサンプル・コードでは、電子メールの本文としてメッセージ"Please find the attached invoice."が配信され、添付ファイルとして1つのPDFドキュメント"invoice.pdf"が配信されます。

例8-6 電子メールの本文としてのStringオブジェクトの使用のサンプル・コード

// create delivery manager instance
DeliveryManager dm = new DeliveryManager();
// create a delivery request
DeliveryRequest req = dm.createRequest(DeliveryManager.TYPE_SMTP_EMAIL);

// set email subject
req.addProperty(DeliveryPropertyDefinitions.SMTP_SUBJECT, "Invoice");
// set SMTP server host
req.addProperty(
DeliveryPropertyDefinitions.SMTP_HOST, "mysmtphost");
// set the sender email address
req.addProperty(DeliveryPropertyDefinitions.SMTP_FROM, "myname@foobar.com.example");
// set the destination email address
req.addProperty(
DeliveryPropertyDefinitions.SMTP_TO_RECIPIENTS, "user1@foobar.com.example, user2@foobar.com.example" );
// set the document to deliver
req.setDocument("Please find the attached invoice. ", "UTF-8");

// create Attachment
Attachment m = new Attachment();
// add attachments
m.addAttachment(
"/pdf_doc/invoice.pdf",            // file to deliver
"invoice.pdf",                     // file name appears in the email
"application/pdf");                // content type
// add the attachment to the request
req.addProperty(DeliveryPropertyDefinitions.SMTP_ATTACHMENT, m);

// submit the request
req.submit();
// close the request
req.close();

:
:

8.2.6 電子メールの本文としてのHTMLドキュメントの使用

電子メールの本文には、HTMLドキュメントも使用できます。HTMLドキュメント内にあるローカル・イメージへの参照は、ユーティリティによって自動的に解決され、それらのイメージも添付されます。

次に、その使用方法の例を示します。

例8-7 電子メールの本文としてのHTMLドキュメントの使用のサンプル・コード

// create delivery manager instance
DeliveryManager dm = new DeliveryManager();
// create a delivery request
DeliveryRequest req = dm.createRequest(DeliveryManager.TYPE_SMTP_EMAIL);

// set email subject
req.addProperty(DeliveryPropertyDefinitions.SMTP_SUBJECT, "Invoice");
// set SMTP server host
req.addProperty(
DeliveryPropertyDefinitions.SMTP_HOST, "mysmtphost");
// set the sender email address
req.addProperty(DeliveryPropertyDefinitions.SMTP_FROM, "myname@foobar.com.example");
// set the destination email address
req.addProperty(
DeliveryPropertyDefinitions.SMTP_TO_RECIPIENTS, "user1@foobar.com.example, user2@foobar.com.example" );

// set the content type of the email body
req.addProperty(DeliveryPropertyDefinitions.SMTP_CONTENT_TYPE, "text/html");
// set the document file name appeared in the email
req.addProperty(DeliveryPropertyDefinitions.SMTP_CONTENT_FILENAME, "body.html");
// set the document to deliver
req.setDocument("/document/invoice.html");

// submit the request
req.submit();
// close the request
req.close();

:
:

8.2.7 認証用ユーザー名とパスワードの入力

SMTPサーバーが認証を必要とする場合は、要求の配信に使用するユーザー名とパスワードを指定できます。

例8-8 認証用ユーザー名とパスワードの入力のサンプル・コード

:
req.addProperty(DeliveryPropertyDefinitions.SMTP_USERNAME, "scott");
req.addProperty(DeliveryPropertyDefinitions.SMTP_PASSWORD, "tiger");
:

8.3 プリンタへのドキュメントの配信

配信マネージャでは、Internet Printing Protocol(IPP)がサポートされています。IPPはRFC 2910およびRFC 2911で定義され、CUPSなどのIPP対応プリンタまたはサーバーへのドキュメントの配信方法を規定しています。

Common Unix Printing System(CUPS)は、サーバー・タイプの無償の、IPPベースのソフトウェアで、IPP要求を受け取り、プリンタやFAXマシンなどの、IPPベースおよび非IPPベースの両方のデバイスにこれらの要求をディスパッチできます。CUPSの詳細は、 http://www.cups.org/を参照してください。

IPPを使用してドキュメントを印刷するには、ドキュメントを配信する前に、そのドキュメントをターゲットのIPPプリンタまたはサーバーが認識できる書式に変換する必要があります。たとえば、ターゲット・プリンタがPostscriptプリンタであれば、ドキュメントをPostscript書式に変換する必要があります。通常、プリンタでは、PDF、RTF、ExcelまたはWordドキュメントの書式がネイティブに処理されません。Delivery API自体にはドキュメントの書式変換機能はありませんが、この変換を実現する目的でドキュメント・フィルタがサポートされています。第8.16項「ドキュメント・フィルタのサポート」を参照してください。

次は、プリンタに配信するためのコード・サンプルです。

例8-9 プリンタへのドキュメントの配信のサンプル・コード

// create delivery manager instance
DeliveryManager dm = new DeliveryManager();
// create a delivery request
DeliveryRequest req = dm.createRequest(DeliveryManager.TYPE_IPP_PRINTER);

// set IPP printer host
req.addProperty(DeliveryPropertyDefinitions.IPP_HOST, "myhost");
// set IPP printer port
req.addProperty(DeliveryPropertyDefinitions.IPP_PORT, "631");
// set IPP printer name
req.addProperty(DeliveryPropertyDefinitions.IPP_PRINTER_NAME, "/printers/myprinter");
// set the document format
req.addProperty(DeliveryPropertyDefinitions.IPP_DOCUMENT_FORMAT,
DeliveryPropertyDefinitions.IPP_DOCUMENT_FORMAT_POSTSCRIPT);
// set the document
req.setDocument("/document/invoice.ps");

// submit the request
req.submit();
// close the request
req.close();

次のプロパティがサポートされています。特別に指示されている場合を除き、各プロパティには文字列値が必要です。IPP_SIDES、IPP_COPIES、IPP_ORIENTATIONなどのプリンタ固有のプロパティは、そのプリンタの機能によって異なります。たとえば、ターゲット・プリンタで両面印刷がサポートされていない場合は、IPP_SIDESを設定しても効果はありません。

表8-2 プリンタへのドキュメントの配信のプロパティ

プロパティ

説明

IPP_HOST

必須

ホスト名を入力します。

IPP_PORT

オプション

デフォルトは631です。

IPP_PRINTER_NAME

必須

出力を受信するプリンタの名前を入力します。

- CUPSをデフォルトの設定で使用する場合は、プリンタ名を/printers/<printer-name>の形式で入力します。

- Microsoft Internet Information Service(IIS)をデフォルトの設定で使用する場合は、プリンタ名を/printers/<printer-name>/.printerの形式で入力します。

IPP_AUTHTYPE

オプション

認証タイプに有効な値は次のとおりです。

IPP_AUTHTYPE_NONE: 認証を行いません(デフォルト)

IPP_AUTHTYPE_BASIC: HTTP Basic認証を使用します

IPP_AUTHTYPE_DIGEST: HTTP Digest認証を使用します

IPP_USERNAME

オプション

HTTP認証に使用するユーザー名を入力します。

IPP_PASSWORD

オプション

HTTP認証に使用するパスワードを入力します。

IPP_ENCTYPE

オプション

暗号化タイプは、次のいずれかを設定できます。

IPP_ENCTYPE_NONE: 暗号化しない(デフォルト)

IPP_ENCTYPE_SSL: Secure Sockets Layerを使用します

IPP_USE_FULL_URL

オプション

"true"を設定すると、HTTP要求ヘッダーの完全なURLが送信されます。有効な値は"true"または"false"(デフォルト)です。

IPP_USE_CHUNKED_BODY

オプション

有効な値は"true"(デフォルト)または"false"です。"true"を設定すると、メッセージ本文のHTTPチャンク転送コーディングが使用されます。

IPP_ATTRIBUTE_CHARSET

オプション

IPP要求の属性キャラクタ・セットです。デフォルトは"UTF-8"です。

IPP_NATURAL_LANGUAGE

オプション

IPP要求の自然言語です。デフォルトは"en"です。

IPP_JOB_NAME

オプション

IPP要求のジョブ名です。

IPP_COPIES

オプション

印刷部数を定義します(例: "1"、"5"、"10")。デフォルトは1です。

IPP_SIDES

オプション

両面印刷を有効にします。ターゲット・プリンタで両面印刷がサポートされていない場合は、この設定は無視されます。有効な値は次のとおりです。

- IPP_SIDES_ONE_SIDED: デフォルトです。

- IPP_SIDES_TWO_SIDED_LONG_EDGE: 長辺綴じで用紙の両面に印刷します。

- IPP_SIDES_TWO_SIDED_SHORT_EDGE: 短辺綴じで用紙の両面に印刷します。

- IPP_SIDES_DUPLEX: IPP_SIDES_TWO_SIDED_LONG_EDGEと同じです。

- IPP_SIDES_TUMBLE: IPP_SIDES_TWO_SIDED_SHORT_EDGEと同じです。

IPP_ORIENTATIONS

オプション

用紙の方向を設定します。ターゲット・プリンタで用紙の向きがサポートされていない場合は、この設定は無視されます。有効な値は次のとおりです。

IPP_ORIENTATIONS_PORTRAIT (デフォルト)

IPP_ORIENTATIONS_LANDSCAPE

IPP_DOCUMENT_FORMAT

オプション

ここで指定した書式は、ターゲット・プリンタでサポートされている必要があります。有効な値は次のとおりです。

IPP_DOCUMENT_FORMAT_POSTSCRIPT

IPP_DOCUMENT_FORMAT_PLAINTEXT

IPP_DOCUMENT_FORMAT_PDF

IPP_DOCUMENT_FORMAT_OCTETSTREAM (デフォルト)

IPP_MEDIA

用紙サイズまたはトレイ番号のどちらかを選択できます。このオプションを指定しない場合には、ターゲット・プリンタのデフォルトの用紙が使用されます。ターゲット・プリンタで用紙のオプションがサポートされていない場合、この設定は無視されます。有効な値は次のとおりです。

- IPP_MEDIA_TRAY1: トレイ1の用紙

- IPP_MEDIA_TRAY2: トレイ2の用紙

- IPP_MEDIA_TRAY3: トレイ3の用紙

- IPP_MEDIA_A3: A3用紙

- IPP_MEDIA_A4: A4用紙

- IPP_MEDIA_A5: A5用紙

- IPP_MEDIA_B4: B4用紙

- IPP_MEDIA_B5: B5用紙

IPP_PAGE_RANGES

印刷するページ範囲を指定します。デフォルトでは、すべてのページが印刷されます。次に、例を示します。

- “3”: 3ページのみが印刷されます。

- "2-5": 2ページから5ページまで印刷されます。

- "1,3-5": 1ページと、3ページから5ページまで印刷されます。

8.3.1 HTTPプロキシ・サーバー経由での印刷

IPP対応のプリンタまたはFAXマシンにHTTPプロキシ・サーバー経由でドキュメントを配信する場合は、CUPSとプロキシ・サーバー間でのHTTP実装の相違が原因で、配信で問題が発生する場合があります。これらの問題の大半は、次の2つのプロパティを設定することで解決できます。

- DeliveryPropertyDefinitions.IPP_USE_FULL_URL: "true"に設定します。

- DeliveryPropertyDefinitions.IPP_USE_CHUNKED_BODY: "false"に設定します。

CUPSをデフォルトの設定で使用する場合は、一般的に次のようなプロパティ設定となります。

- IPP_HOST: <host-name>

- IPP_PORT: 631

- IPP_PRINTER_NAME: /printers/<printer-name>

Microsoft Internet Information Service(IIS)をデフォルトの設定で使用する場合は、一般的に次のようなプロパティ設定となります。

- IPP_HOST: <host-name>

- IPP_PORT: 80

- IPP_PRINTER_NAME: /printers/<printer-name>/.printer

8.4 ローカル・プリンタへのドキュメントの配信

配信マネージャでは、配信マネージャが実行しているシステムに取付けられているローカル・プリンタへのドキュメントの配信がサポートされています。

ローカル・プリンタに配信するためのコード・サンプルは、次のとおりです。

例8-10 ローカル・プリンタへのドキュメントの配信のサンプル・コード

// create delivery manager instance
DeliveryManager dm = new DeliveryManager();
// create a delivery request
DeliveryRequest req = dm.createRequest(DeliveryManager.TYPE_PRINTER);
// set target printer name as HOST - if no HOST is set default printer is used
//req.addProperty(PRINTER_HOST, "PrinterName");
// set cotnent type – the content type must be supported by the printer
req.addProperty(CONTENT_TYPE, CONTENT_TYPE_POSTSCRIPT);
// set the document
req.setDocument("/document/invoice.ps");
// submit the request
req.submit();
// close the request
req.close();

次の表に、サポートされているプロパティを示します。PRINTER_SIDES、PRINTER_COPIES、PRINTER_MEDIA、PRINTER_ORIENTATION、PRINTER_PAGE_RANGES、PRINTER_SIDESなどのプリンタ固有のプロパティへの対応は、プリンタとローカルの印刷システムの機能によって異なります。たとえば、Windowsではドキュメントにそれらのプロパティ追加をサポートするフィルタも使用する場合を除いて、そのようなプロパティは無視されます。

表8-3 ローカル・プリンタへのドキュメントの配信のプロパティ

プロパティ

説明

PRINTER_CONTENT_TYPE

オプション

ドキュメントのコンテンツ・タイプです(例: "application/pdf")。

PRINTER_COPIES

オプション

印刷部数を指定します(例: "1"、"5"、"10")。デフォルトは1です。

PRINTER_HOST

オプション

ドキュメントの配信先のプリンタ名(オペレーティング・システムまたはローカル印刷システム上のプリンタ名)です。HOSTが指定されていない場合、デフォルトのローカル・プリンタが使用されます。

PRINTER_MEDIA

オプション

用紙サイズまたはトレイ番号のどちらかを選択できます。このオプションを指定しない場合には、ターゲット・プリンタのデフォルトの用紙が使用されます。ターゲット・プリンタで用紙のオプションがサポートされていない場合、この設定は無視されます。

有効な値は次のとおりです。

- PRINTER_MEDIA_TRAY1: トレイ1の用紙

- PRINTER_MEDIA_TRAY2: トレイ2の用紙

- PRINTER_MEDIA_TRAY3: トレイ3の用紙

- PRINTER_MEDIA_A3: A3用紙

- PRINTER_MEDIA_A4: A4用紙

- PRINTER_MEDIA_A5: A5用紙

- PRINTER_MEDIA_B4: B4用紙

- PRINTER_MEDIA_B5: B5用紙

PRINTER_ORIENTATIONS

オプション

用紙の方向を設定します。ターゲット・プリンタで用紙の向きがサポートされていない場合は、この設定は無視されます。有効な値は、PRINTER_ORIENTATIONS_PORTRAIT(デフォルト)、PRINTER_ORIENTATIONS_LANDSCAPEです。

PRINTER_PAGE_RANGES

印刷するページ範囲を指定します。デフォルトでは、すべてのページが印刷されます。次に、例を示します。

- “3”: 3ページのみが印刷されます。

- "2-5": 2ページから5ページまで印刷されます。

- "1,3-5": 1ページと、3ページから5ページまで印刷されます。

PRINTER_SIDES

オプション

両面印刷を有効にします。ターゲット・プリンタで両面印刷がサポートされていない場合は、この設定は無視されます。有効な値は次のとおりです。

- PRINTER_SIDES_ONE_SIDED: デフォルトです。

- PRINTER_SIDES_TWO_SIDED_LONG_EDGE: 長辺綴じで用紙の両面に印刷します。

- PRINTER_SIDES_TWO_SIDED_SHORT_EDGE: 短辺綴じで用紙の両面に印刷します。

- PRINTER_SIDES_DUPLEX: PRINTER_SIDES_TWO_SIDED_LONG_EDGEと同じです。

- PRINTER_SIDES_TUMBLE: PRINTER_SIDES_TWO_SIDED_SHORT_EDGEと同じです。

8.5 Faxサーバーへのドキュメントの配信

配信マネージャでは、CUPS上に構成されたFAXモデムへのドキュメントの配信がサポートされています。CUPS上のFAXモデムをefaxで構成できます。efaxの詳細は、http://www.cce.com/efax/のWebサイトを参照してください。

FAX4CUPSは様々なWebサイトで自由に入手できます。FAX4CUPSをインターネット検索エンジンで検索し、このソフトウェアを提供しているサイトを探します。

次は、FAX配信を実行するためのサンプル・コードです。

例8-11 Faxサーバーへのドキュメントの配信のサンプル・コード

// create delivery manager instance
DeliveryManager dm = new DeliveryManager();
// create a delivery request
DeliveryRequest req = dm.createRequest(DeliveryManager.TYPE_IPP_FAX);

// set IPP fax host
req.addProperty(DeliveryPropertyDefinitions.IPP_HOST, "myhost");
// set IPP fax port
req.addProperty(DeliveryPropertyDefinitions.IPP_PORT, "631");
// set IPP fax name
req.addProperty(DeliveryPropertyDefinitions.IPP_PRINTER_NAME, "/printers/myfax");
// set the document format
req.addProperty(DeliveryPropertyDefinitions.IPP_DOCUMENT_FORMAT, "application/postscript");
// set the phone number to send
req.addProperty(DeliveryPropertyDefinitions.IPP_PHONE_NUMBER, "9999999");
// set the document
req.setDocument("/document/invoice.pdf");

// submit the request
req.submit();
// close the request
req.close();

サポートされているプロパティは、プリンタ・ドキュメントと同じプロパティと、次の固有のプロパティです。

表8-4 Faxサーバーへのドキュメントの配信のプロパティ

プロパティ

説明

IPP_PHONE_NUMBER

必須

Fax番号を入力します。

8.6 RightFaxサーバーへのドキュメントの配信

配信マネージャでは、Open Text Fax Server、RightFax Edition(旧Captaris RightFax) 9.3以上へのドキュメントの配信がサポートされています。この統合を有効にするには、HTTPポート上のXMLインタフェースをRightFaxサーバーで有効にする必要があります。

RightFaxサーバーに配信するためのコード・サンプルは、次のとおりです。

例8-12 RightFaxサーバーへのドキュメントの配信のサンプル・コード

// create delivery manager instance
DeliveryManager dm = new DeliveryManager();
// create a delivery request
DeliveryRequest req = dm.createRequest(DeliveryManager.TYPE_RIGHTFAX);
// set RightFax host
req.addProperty(DeliveryPropertyDefinitions.RIGHTFAX_HTTP_HOST, "myhost");
// set RightFax server port
req.addProperty(DeliveryPropertyDefinitions.RIGHTFAX_HTTP_PORT, "80");
// set the target remote directory
req.addProperty(DeliveryPropertyDefinitions.RIGHTFAX_HTTP_REMOTE_DIRECTORY, "/RFWebCon.dll");
// sender information
req.addProperty(DeliveryPropertyDefinitions.RIGHTFAX_SENDER_NAME, "Lex De Hann");
req.addProperty(DeliveryPropertyDefinitions.RIGHTFAX_SENDER_COMPANY, "Company, Ltd.");
req.addproperty(DeliveryPropertyDefinitions.RIGHTFAX_SENDER_PHONE", "555-9976");
// destionation
req.addProperty(DeliveryPropertyDefinitions.RIGHTFAX_TO_FAXNUM, "555-1111");
req.addProperty(DeliveryPropertyDefinitions.RIGHTFAX_TO_NAME, "Jane Bennett");
req.addProperty(DeliveryPropertyDefinitions.RIGHTFAX_TO_COMPANY, "Acme, Inc.");
// set the document
req.setDocument("/document/invoice.pdf");
// submit the request
req.submit();
// close the request
req.close();

次の表に、サポートされているプロパティを示します。

表8-5 RightFaxサーバーへのドキュメントの配信のプロパティ

プロパティ

説明

RIGHTFAX_HTTP_HOST

必須

RightFaxサーバーのHTTPホスト。

RIGHTFAX_HTTP_PORT

オプション

RightFaxサーバーのHTTPポート。デフォルト = 80

RIGHTFAX_HTTP_REMOTE_DIRECTORY

オプション

RightFax XMLインタフェースのリモート・ディレクトリの名前を入力します(例: /RFWebCon.dll)。

RIGHTFAX_HTTP_AUTHTYPE

オプション

RightFaxサーバーのURLのHTTP認証タイプ。有効な値はRIGHTFAX_HTTP_AUTHTYPE_NONE、RIGHTFAX_HTTP_AUTHTYPE_BASIC、RIGHTFAX_HTTP_AUTHTYPE_DIGESTです。デフォルト値はRIGHTFAX_AUTHTYPE_NONEです。

RIGHTFAX_HTTP_USERNAME

オプション

RightFaxサーバーのURLのHTTPユーザー名。RIGHTFAX_HTTP_AUTH_TYPEがRIGHTFAX_HTTP_AUTHTYPE_NONE以外の値に設定されているときは必須。

RIGHTFAX_HTTP_PASSWORD

オプション

RightFaxサーバーのURLのHTTPパスワード。RIGHTFAX_HTTP_AUTH_TYPEがRIGHTFAX_HTTP_AUTHTYPE_NONE以外の値に設定されているときは必須。

RIGHTFAX_HTTP_ENCTYPE

オプション

暗号化タイプを次のいずれかに設定できます。RIGHTFAX_HTTP_ENCTYPE_NONE: 暗号化しない(デフォルト)、RIGHTFAX_HTTP_ENCTYPE_SSL: Secure Socket Layerを使用

RIGHTFAX_HTTP_USE_FULL_URL

オプション

"true"を設定すると、HTTP要求ヘッダーの完全なURLが送信されます。有効な値は"true"または"false"(デフォルト)です。

RIGHTFAX_HTTP_USE_CHUNKED_BODY

オプション

有効な値は"true"(デフォルト)または"false"です。"true"を設定すると、メッセージ本文のHTTPチャンク転送コーディングが使用されます。

RIGHTFAX_HTTP_TIMEOUT

オプション

HTTPサーバーへの接続が確立されるまで待機する時間(要求の強制終了待ち時間)をミリ秒単位で入力します。デフォルトは60000(1分)です。

RIGHTFAX_HTTP_PROXY_HOST

オプション

プロキシ・サーバーのホスト名を入力します。

RIGHTFAX_HTTP_PROXY_PORT

オプション

プロキシ・サーバーのポート番号を入力します。デフォルト = 80

RIGHTFAX_HTTP_PROXY_AUTHTYPE

オプション

有効な値は次のいずれかです。RIGHTFAX_HTTP_PROXY_AUTHTYPE_NONE: 認証なし。RIGHTFAX_HTTP_PROXY_AUTHTYPE_BASIC: HTTP Basic認証を使用。RIGHTFAX_HTTP_PROXY_AUTHTYPE_DIGEST: HTTP Digest認証を使用。

RIGHTFAX_HTTP_PROXY_USERNAME

オプション

プロキシ認証に使用するユーザー名を入力します。

RIGHTFAX_HTTP_PROXY_PASSWORD

オプション

HTTPプロキシ認証に使用するパスワードを入力します。

RIGHTFAX_SENDER_FROM_NAME

オプション

送信者の名前を入力します。

RIGHTFAX_SENDER_EMP_ID

オプション

送信者の従業員IDを入力します。

RIGHTFAX_SENDER_FROM_COMPANY

オプション

送信者の会社の名前を入力します。

RIGHTFAX_SENDER_FROM_DEPARTMENT

オプション

送信者の所属部門の名前を入力します。

RIGHTFAX_SENDER_FROMO_PHONE

オプション

送信者の電話番号を入力します。

RIGHTFAX_SENDER_RETURN_EMAIL

オプション

送信者の返信用電子メール・アドレスを入力します。

RIGHTFAX_SENDER_BILLINFO1

オプション

Fax所有者の請求書コードを入力します。

RIGHTFAX_SENDER_BILLINFO2

オプション

Fax所有者の2次請求書コードを入力します。

RIGHTFAX_SENDER_RF_USER

必須

送信者のRightFaxユーザー名を入力します。

RIGHTFAX_FAX_TO_NUMBER

必須

ドキュメントの送信先のFax番号を入力します。

RIGHTFAX_FAX_TO_NAME

オプション

受信者の名前を入力します。

RIGHTFAX_FAX_TO_COMPANY

オプション

受信者の会社の名前を入力します。

RIGHTFAX_FAX_ALT_FAX_NUM

オプション

別のFax番号を入力します。

RIGHTFAX_FAX_TO_CONTACTNUM

オプション

受信者の連絡先の電話番号を入力します。

RIGHTFAX_FAX_COVERSHEET

オプション

現行のドキュメントに対応する表紙のテンプレートを入力します。ファイル名はRightFaxサーバー・コンピュータのフルパスか、RightFax\Production\Coversへの相対パスのいずれかを使用できます。

RIGHTFAX_COVERTEXT

オプション

表紙に表示されるテキストを入力します。

RIGHTFAX_COVERTEXT_TYPE

オプション

表紙のテキストのタイプを入力します。有効な値は次のとおりです。

- TXT (デフォルト)

- RTF

RIGHTFAX_COVERTEXT_ENCODING

オプション

表紙のテキストのエンコーディングを入力します。有効な値は次のとおりです。

- NONE (デフォルト)

- BASE64

- QUOTEDPRINTABLE

RIGHTFAX_DOCUMENT_FORMAT

オプション

有効な値は次のとおりです。

- PDF (デフォルト)

- PS

- TEXT

8.7 WebDAVサーバーへのドキュメントの配信

次は、Web-based Distributed Authoring and Versioning(WebDAV)サーバーに配信するためのサンプル・コードです。

例8-13 WebDAVサーバーへのドキュメントの配信のサンプル・コード

// create delivery manager instance
DeliveryManager dm = new DeliveryManager();
// create a delivery request
DeliveryRequest req = dm.createRequest(DeliveryManager.TYPE_WEBDAV);

// set document content type
req.addProperty(DeliveryPropertyDefinitions.WEBDAV_CONTENT_TYPE, "application/pdf");
// set the WebDAV server hostname
req.addProperty(DeliveryPropertyDefinitions.WEBDAV_HOST, "mywebdavhost");
// set the WebDAV server port number
req.addProperty(DeliveryPropertyDefinitions.WEBDAV_PORT, "80");
// set the target remote directory
req.addProperty(DeliveryPropertyDefinitions.WEBDAV_REMOTE_DIRECTORY, "/content/");
// set the remote filename
req.addProperty(DeliveryPropertyDefinitions.WEBDAV_REMOTE_FILENAME, "xdotest.pdf");

// set username and password to access WebDAV server
req.addProperty(DeliveryPropertyDefinitions.WEBDAV_USERNAME, "xdo");
req.addProperty(DeliveryPropertyDefinitions.WEBDAV_PASSWORD, "xdo");
// set the document
req.setDocument("/document/test.pdf");

// submit the request
req.submit();
// close the request
req.close();

次のプロパティがサポートされています。特別に指示されている場合を除き、各プロパティには文字列値が必要です。

表8-6 WebDAVサーバーへのドキュメントの配信のプロパティ

プロパティ

説明

WEBDAV_CONTENT_TYPE

必須

ドキュメントのコンテンツ・タイプを入力します(例: "application/pdf")。

WEBDAV_HOST

必須

サーバーのホスト名を入力します。

WEBDAV_PORT

オプション

サーバーのポート番号を入力します。

デフォルトは80です。

WEBDAV_REMOTE_DIRECTORY

必須。

リモート・ディレクトリの名前を入力します(例: "/myreports/")。

WEBDAV_REMOTE_FILENAME

必須。

リモート・ファイルの名前を入力します。

WEBDAV_AUTHTYPE

オプション

認証タイプに有効な値は次のとおりです。

WEBDAV_AUTHTYPE_NONE: 認証を行いません(デフォルト)

WEBDAV_AUTHTYPE_BASIC: HTTP Basic認証を使用します

WEBDAV_AUTHTYPE_DIGEST: HTTP Digest認証を使用します

WEBDAV_USERNAME

オプション

HTTP認証に使用するユーザー名を入力します。

WEBDAV_PASSWORD

オプション

HTTP認証に使用するパスワードを入力します。

WEBDAV_ENCTYPE

オプション

暗号化タイプに有効な値は次のとおりです。

WEBDAV_ENCTYPE_NONE: 暗号化を行いません(デフォルト)

WEBDAV_ENCTYPE_SSL: Secure Sockets Layerを使用します

WEBDAV_USE_FULL_URL

オプション

"true"を設定すると、HTTP要求ヘッダーの完全なURLが送信されます。有効な値は"true"または"false"(デフォルト)です。

WEBDAV_USE_CHUNKED_BODY

オプション

有効な値は"true"(デフォルト)または"false"です。"true"を設定すると、メッセージ本文のHTTPチャンク転送コーディングが使用されます。

WEBDAV_URL_CHARACTER_ENCODING

URLのエンコーディングです。URLでASCII以外の文字セットを使用すると、このプロパティが使用されます。Javaがサポートするエンコーディング文字列を値に設定します。

8.8 ファイル転送プロトコル(FTP)によるドキュメントの配信

FTPサーバーに配信するためのコード・サンプルは、次のとおりです。

例8-14 FTPによるドキュメントの配信のサンプル・コード

// create delivery manager instance
DeliveryManager dm = new DeliveryManager();
// create a delivery request
DeliveryRequest req = dm.createRequest(DeliveryManager.TYPE_FTP);

// set hostname of the FTP server
req.addProperty(DeliveryPropertyDefinitions.FTP_HOST, "myftphost");
// set port# of the FTP server
req.addProperty(DeliveryPropertyDefinitions.FTP_PORT, "21");
// set username and password to access WebDAV server
req.addProperty(DeliveryPropertyDefinitions.FTP_USERNAME, "xdo");
req.addProperty(DeliveryPropertyDefinitions.FTP_PASSWORD, "xdo");
// set the remote directory that you want to send your document to
req.addProperty(DeliveryPropertyDefinitions.FTP_REMOTE_DIRECTORY, "pub");
// set the remote file name
req.addProperty(DeliveryPropertyDefinitions.FTP_REMOTE_FILENAME, "test.pdf");
// set the document
req.setDocument("/document/test.pdf");

// submit the request
req.submit();
// close the request
req.close();

次のプロパティがサポートされています。特別に指示されている場合を除き、各プロパティには文字列値が必要です。

表8-7 FTPによるドキュメントの配信のプロパティ

プロパティ

説明

FTP_HOST

必須

サーバーのホスト名を入力します。

FTP_PORT

オプション

サーバーのポート番号を入力します。デフォルトは21です。

FTP_USERNAME

必須

FTPサーバーへのログイン・ユーザー名を入力します。

FTP_PASSWORD

必須

FTPサーバーへのログイン・パスワードを入力します。

FTP_REMOTE_DIRECTORY

必須

ドキュメントの配信先ディレクトリを入力します(例: /pub/)。

FTP_REMOTE_FILENAME

必須

リモート・サーバーのドキュメント・ファイルの名前を入力します。

FTP_BINARY_MODE

オプション

有効な値はtrue（デフォルト）とfalseです。

FTP_PASSIVE_MODE

オプション

有効な値は"true"または"false"(デフォルト)です。

8.9 Secure FTPによるドキュメントの配信

Secure FTPはSecure Shellテクノロジ(ssh)に基づいたプロトコルで、セキュアな方式でのファイル転送に幅広く使用されます。Secure ShellとSecure FTPはともにInternet Engineering Task Force(IETF)により定義されており、その仕様はIETFのWebサイト(http://www.ietf.org)から入手できます。配信システムでは、Secure FTPサーバーへのドキュメントの配信がサポートされています。

次の表に、サポートされているプロパティを示します。特別に指示されている場合を除き、各プロパティには文字列値が必要です。

例8-15 SFTPによるドキュメントの配信のサンプル・コード

// create delivery manager instance
DeliveryManager dm = new DeliveryManager();
// create a delivery request
DeliveryRequest req = dm.createRequest(DeliveryManager.TYPE_SFTP);
// set hostname of the SFTP server
req.addProperty(DeliveryPropertyDefinitions.SFTP_HOST, "mysftphost");
// set username and password to access server
req.addProperty(DeliveryPropertyDefinitions.SFTP_USERNAME, "myname");
req.addProperty(DeliveryPropertyDefinitions.SFTP_PASSWORD, "mypassword");
// set the remote directory that you want to send your document to
req.addProperty(DeliveryPropertyDefinitions.SFTP_REMOTE_DIRECTORY, "pub");
// set the remote file name
req.addProperty(DeliveryPropertyDefinitions.SFTP_REMOTE_FILENAME, "test.pdf");
// set the document
req.setDocument("/document/test.pdf");

// submit the request
req.submit();
// close the request
req.close();

表8-8 SFTPによるドキュメントの配信のプロパティ

プロパティ

説明

SFTP_HOST

必須

ターゲット・サーバーのホスト名を入力します。

SFTP_PORT

オプション

ターゲット・サーバーのSSHポート番号を入力します。デフォルトは22です。

SFTP_USERNAME

必須

ログイン・ユーザー名を入力します。

SFTP_PASSWORD

SFTP_AUTH_TYPE_PASSWORD認証タイプを選択した場合は必須。

ログイン・パスワードを入力します。

SFTP_REMOTE_DIRECTORY

必須

ドキュメントの配信先ディレクトリを入力します(例: /pub/)。値を指定しない場合、ドキュメントはログイン・ディレクトリに配信されます。

SFTP_REMOTE_FILENAME

必須

リモート・サーバーのドキュメント・ファイルの名前を入力します。

SFTP_AUTH_TYPE

次のどちらかを設定します。

SFTP_AUTH_TYPE_PASSWORD(デフォルト): ログイン時にパスワードの入力が必須です。

SFTP_AUTH_TYPE_PUBLIC_KEY: 公開鍵認証タイプです。

SFTP_PRIVATE_KEY_FILE

クライアントの秘密鍵ファイルを入力します。SFTP_AUTH_TYPE_PUBLIC_KEYを選択した場合は必須です。

SFTP_PRIVATE_KEY_PASSWORD

クライアントの秘密鍵のパスワードを入力します。SFTP_AUTH_TYPE_PUBLIC_KEYを選択した場合は必須です。

SFTP_FILE_PERMISSION

作成されるファイルに設定する権限を入力します。デフォルトは0755です。

8.9.1 認証モード

Secure FTPによる配信では、パスワード認証と公開鍵認証の2タイプの認証モードがサポートされています。SFTP_AUTH_TYPEプロパティを設定してモードを選択します。デフォルトのモードはパスワード認証です。

パスワード認証モードでは、Secure FTPサーバーにログインするためのユーザー名とパスワードが必要です。次に、サンプル・コードを示します。

例8-16 パスワード認証のサンプル・コード

:
:
// set password auth type
req.addProperty(DeliveryPropertyDefinitions.SFTP_AUTH_TYPE,
DeliveryPropertyDefinitions.SFTP_AUTH_TYPE_PASSWORD);
// set username and password to access server
req.addProperty(DeliveryPropertyDefinitions.SFTP_USERNAME, "myname");
req.addProperty(DeliveryPropertyDefinitions.SFTP_PASSWORD, "mypassword");
:
:

公開鍵認証モードでは、ユーザー名、秘密鍵および秘密鍵のパスワードが必要です。これはパスワード認証よりもよりセキュアな方法です。公開鍵認証モードを使用するには、事前にssh/secure FTPサーバーに公開鍵を設定する必要があることに注意してください。次に、サンプル・コードを示します。

例8-17 公開鍵認証のサンプル・コード

:
:
// set public key auth type
req.addProperty(DeliveryPropertyDefinitions.SFTP_AUTH_TYPE,
DeliveryPropertyDefinitions.SFTP_AUTH_TYPE_PUBLIC_KEY);
// set username
req.addProperty(DeliveryPropertyDefinitions.SFTP_USERNAME, "myname");
// set the client's private key file
req.addProperty(DeliveryPropertyDefinitions.SFTP_PRIVATE_KEY_FILE,
"/path/to/the/key");
// set the client's private key password
req.addProperty(DeliveryPropertyDefinitions.SFTP_PRIVATE_KEY_PASSWORD, "myPrivateKeyPass");
:
:

8.10 Hypertext Transfer Protocol(HTTP)によるドキュメントの配信

配信マネージャでは、HTTPサーバーへのドキュメントの配信がサポートされています。次のサンプルでは、HTTP POSTメソッドを使用してドキュメントを送信します。受信側のHTTPサーバーが、事前に、カスタムなHTTP要求を(カスタムなサーブレットやCGIプログラムなどを介して)受入れ可能に構成されている必要があることに注意してください。

例8-18 HTTPによるドキュメントの配信のサンプル・コード

// create delivery manager instance
DeliveryManager dm = new DeliveryManager();
// create a delivery request
DeliveryRequest req = dm.createRequest(DeliveryManager.TYPE_HTTP);

// set request method
req.addProperty(DeliveryPropertyDefinitions.HTTP_METHOD, DeliveryPropertyDefinitions.HTTP_METHOD_POST);
// set document content type
req.addProperty(DeliveryPropertyDefinitions.HTTP_CONTENT_TYPE, "application/pdf");
// set the HTTP server hostname
req.addProperty(DeliveryPropertyDefinitions.HTTP_HOST, "myhost");
// set the HTTP server port number
req.addProperty(DeliveryPropertyDefinitions.HTTP_PORT, "80");
// set the target remote directory
req.addProperty(DeliveryPropertyDefinitions.HTTP_REMOTE_DIRECTORY, "/servlet/");
// set the remote filename (servlet class)
req.addProperty(DeliveryPropertyDefinitions.HTTP_REMOTE_FILENAME, "uploadDocument");

// set the document
req.setDocument("/document/test.pdf");

// submit the request
req.submit();
// close the request
req.close();

次の表に、サポートされているプロパティを示します。特別に指示されている場合を除き、各プロパティには文字列値が必要です。

表8-9 HTTPによるドキュメントの配信のプロパティ

プロパティ

説明

HTTP_METHOD

オプション

HTTP要求メソッドを設定します。有効な値は次のとおりです。

HTTP_METHOD_POST (デフォルト)

HTTP_METHOD_PUT

HTTP_CONTENT_TYPE

オプション

ドキュメントのコンテンツ・タイプです(例: "application/pdf")。

HTTP_HOST

必須

サーバーのホスト名を入力します。

HTTP_PORT

オプション

サーバーのポート番号を入力します。デフォルトは80です。

HTTP_REMOTE_DIRECTORY

必須

リモート・ディレクトリの名前を入力します(例: "/home/")。

HTTP_REMOTE_FILENAME

必須

ドキュメントの保存先ファイル(リモート・ディレクトリ内)の名前を指定します。

HTTP_AUTHTYPE

オプション

認証タイプに有効な値は次のとおりです。

HTTP_AUTHTYPE_NONE: 認証を行いません(デフォルト)

HTTP_AUTHTYPE_BASIC: HTTP Basic認証を使用します

HTTP_AUTHTYPE_DIGEST: HTTP Digest認証を使用します

HTTP_USERNAME

オプション

サーバーが認証を必要とする場合は、ユーザー名を入力します。

HTTP_PASSWORD

オプション

サーバーが認証を必要とする場合は、ユーザー名に対応するパスワードを入力します。

HTTP_ENCTYPE

オプション

次の暗号化タイプを入力します。

HTTP_ENCTYPE_NONE: 暗号化しません(デフォルト)

HTTP_ENCTYPE_SSL: Secure Sockets Layerを使用します

HTTP_USE_FULL_URL

オプション

"true"を設定すると、HTTP要求ヘッダーの完全なURLが送信されます。有効な値は"true"または"false"(デフォルト)です。

HTTP_USE_CHUNKED_BODY

オプション

有効な値は"true"(デフォルト)または"false"です。"true"を設定すると、メッセージ本文のHTTPチャンク転送コーディングが使用されます。

HTTP_TIMEOUT

オプション

HTTPサーバーへの接続が確立されるまで待機する時間(要求の強制終了待ち時間)をミリ秒単位で入力します。デフォルトは60000(1分)です。

HTTP_URL_CHARACTER_ENCODING

URLのエンコーディングです。URLでASCII以外の文字セットを使用すると、このプロパティが使用されます。Javaがサポートするエンコーディング文字列を値に設定します。

8.11 AS2によるドキュメントの配信

AS2は、Electronic Data Interchange-Internet Integration(EDI-INT)で定義されている標準プロトコルの1つです。AS2は、HTTPとその他のインターネット標準テクノロジをベースとし、インターネットを介してセキュアなデータ交換を行うために設計されています。AS2の仕様はRFC4130(http://www.ietf.org/で入手可能)で定義されています。配信システムでは、AS2サーバーへのドキュメントの配信がサポートされています。サンプル・コードは次のとおりです。

例8-19 AS2によるドキュメントの配信のサンプル・コード

// create delivery manager instance
DeliveryManager dm = new DeliveryManager();
// create a delivery request
DeliveryRequest req = dm.createRequest(DeliveryManager.TYPE_AS2);

// set AS2 message properties
req.addProperty(DeliveryPropertyDefinitions.AS2_FROM, "Me");
req.addProperty(DeliveryPropertyDefinitions.AS2_TO, "You");
req.addProperty(DeliveryPropertyDefinitions.AS2_SUBJECT, "My EDI Message");
req.addProperty(DeliveryPropertyDefinitions.AS2_CONTENT_TYPE, "applications/EDIFACT");

// set HTTP properties
req.addProperty(DeliveryPropertyDefinitions.AS2_HTTP_HOST, "as2hsot");
req.addProperty(DeliveryPropertyDefinitions.AS2_HTTP_REMOTE_DIRECTORY, "/");
req.addProperty(DeliveryPropertyDefinitions.AS2_HTTP_REMOTE_FILENAME, "as2");

// set the document
req.setDocument("/document/myEDIdoc");
// submit the request
DeliveryResponse res = req.submit();
// close the request
req.close();

次の表に、サポートされているプロパティを示します。特別に指示されている場合を除き、各プロパティには文字列値が必要です。

表8-10 AS2によるドキュメントの配信のプロパティ

プロパティ

説明

AS2_FROM

必須。

AS2メッセージの送信者を入力します。

AS2_TO

必須。

AS2メッセージの受信者を入力します。

AS2_SUBJECT

必須。

メッセージの件名を入力します。

AS2_MESSAGE_COMPRESSION

デフォルト値はFalseです。メッセージを圧縮する場合はTrueを入力します。

AS2_MESSAGE_SIGNATURE

デフォルト値はFalseです。メッセージに署名する場合はTrueを入力します。

AS2_MESSAGE_ENCRYPTION

デフォルト値はFalseです。メッセージを暗号化する場合はTrueを入力します。

AS2_CONTENT_TYPE

必須。

ドキュメントのコンテンツ・タイプを入力します。有効な値は次のとおりです。

- application/EDIFACT

- application/xml

AS2_ENC_ALGO

AS2暗号化アルゴリズムです。次のいずれかを設定します。

- AS2_ENC_ALGO_RC2_40

- AS2_ENC_ALGO_RC2_64

- AS2_ENC_ALGO_RC2_128

- AS2_ENC_ALGO_DES

- AS2_ENC_ALGO_DES_EDE3(デフォルト)

- AS2_ENC_ALGO_AES_128

- AS2_ENC_ALGO_AES_192

- AS2_ENC_ALGO_AES_256

AS2_DIGEST_ALGO

メッセージの署名に使用するAS2ダイジェスト・アルゴリズムを入力します。次のどちらかを設定します。

- AS2_DIGEST_ALGO_MD5(デフォルト)

- AS2_DIGEST_ALGO_SHA1

AS2_ASYNC_ADDRESS

MDN通知を受信する非同期アドレスを入力します。

AS2_ASYNC_EMAIL_SERVER_HOST

非同期MDNの電子メールに使用する電子メール・サーバーのホストを入力します。

AS2_ASYNC_EMAIL_SERVER_PORT

非同期MDNの電子メールに使用する電子メール・サーバーのポートを入力します。

AS2_ASYNC_EMAIL_SERVER_USERNAME

非同期MDNの電子メールに使用する電子メール・サーバーのユーザー名を入力します。

AS2_ASYNC_EMAIL_SERVER_PASSWORD

非同期MDNの電子メールに使用する電子メール・サーバーのパスワードを入力します。

AS2_ASYNC_EMAIL_SERVER_FOLDER_NAME

非同期MDNの電子メールに使用するIMAPフォルダの名前を入力します。

AS2_SENDER_PKCS12_FILE

送信者のPKCS12(公開鍵と秘密鍵)ファイルの場所です。

AS2_SENDER_PKCS12_PASSWORD

送信者のPKCS12(公開鍵と秘密鍵)のパスワードです。

AS2_RECEIVER_CERTIFICATES_FILE

受信者の証明書ファイルの場所です。

AS2_DELIVERY_RECEIPT_DIRECTORY

配信通知の格納先ディレクトリです。配信通知を受信する場合は、このディレクトリを指定する必要があります。

AS2_HTTP_HOST

必須。

サーバーのホスト名を入力します。

AS2_HTTP_PORT

サーバーのHTTPポート番号を入力します。デフォルトは80です。

AS2_HTTP_REMOTE_DIRECTORY

必須。

リモート・ディレクトリの名前を入力します(例: /home/)

AS2_HTTP_REMOTE_FILENAME

必須。

リモート・ファイルの名前を入力します。

AS2_HTTP_AUTHTYPE

HTTP認証タイプを入力します。有効な値は次のとおりです。

- AS2_HTTP_AUTHTYPE_NONE: 認証を行いません(デフォルト)。

- AS2_HTTP_AUTHTYPE_BASIC: HTTP Basic認証を使用します。

- AS2_HTTP_AUTHTYPE_DIGEST: HTTP Digest認証を使用します。

AS2_HTTP_USERNAME

HTTP認証に使用するユーザー名を入力します。

AS2_HTTP_PASSWORD

HTTP認証に使用するパスワードを入力します。

AS2_HTTP_ENCTYPE

暗号化タイプを設定します。有効な値は次のとおりです。

- AS2_HTTP_ENCTYPE_NONE: 暗号化しない(デフォルト)。

- AS2_HTTP_ENCTYPE_SSL: Secure Sockets Layer(SSL)を使用。

AS2_HTTP_TIMEOUT

タイムアウト待ち時間をミリ秒単位で入力します。デフォルトは60,000(1分)です

AS2_HTTP_PROXY_HOST

必須。

プロキシ・サーバーのホスト名を入力します。

AS2_HTTP_PROXY_PORT

プロキシ・サーバーのポート番号を入力します。デフォルトは80です。

AS2_HTTP_PROXY_AUTHTYPE

- AS2_HTTP_AUTHTYPE_NONE: 認証を行いません(デフォルト)。

- AS2_HTTP_AUTHTYPE_BASIC: HTTP Basic認証を使用します。

- AS2_HTTP_AUTHTYPE_DIGEST: HTTP Digest認証を使用します。

AS2_HTTP_PROXY_USERNAME

プロキシ認証に使用するユーザー名を入力します。

AS2_HTTP_PROXY_PASSWORD

HTTPプロキシ認証に使用するパスワードを入力します。

8.11.1 >配信通知

AS2サーバーは、AS2配信通知を各AS2要求に対して必ず発行します。AS2_DELIVERY_RECEIPT_DIRECTORYプロパティを設定し、配信通知を格納する場所を指定します。このディレクトリを指定しない場合、配信通知は無視されます。配信通知の格納先ディレクトリを設定するサンプル・コードは次のとおりです。

例8-20 配信通知の格納先ディレクトリを設定するサンプル・コード

:
:
// Set the delivery receipt directory
req.addProperty(DeliveryPropertyDefinitions.AS2_DELIVERY_RECEIPT_DIRECTORY, "/my/receipt/dir");
:
:

8.11.2 同期

AS2サーバーに送信する配信要求は、同期または非同期にできます。デフォルトでは、要求は同期して送信されるため、Message Disposition Notification(MDN)をただちにDeliveryResponseで確認できます。

AS2_ASYNC_ADDRESSを要求に対して設定すると、要求は非同期になります。要求処理後の配信通知の受信先として、HTTP URLまたは電子メール・アドレスを指定できます。配信通知を受信するには、HTTPサーバーまたは電子メール・アドレスを設定する必要があります。

AS2_ASYNC_ADDRESSに電子メール・アドレスを設定した場合は、Delivery APIを使用して、非同期要求を追跡できます。Delivery APIに電子メール・アカウントの情報を指定すると、Delivery APIによって電子メール・アカウントが定期的にチェックされ、配信通知が取得されます。サンプル・コードは次のとおりです。

例8-21 非同期の配信要求送信のサンプル・コード

:
:
// Set the email address - async request
req.addProperty(DeliveryPropertyDefinitions.AS2_ASYNC_ADDRESS, "async_target@acme.com");

// Set the delivery receipt directory
req.addProperty(DeliveryPropertyDefinitions.AS2_DELIVERY_RECEIPT_DIRECTORY, "/my/receipt/dir");

// Set the email server information where the delivery receipt will be delivered to.
req.addProperty(
DeliveryPropertyDefinitions.AS2_ASYNC_EMAIL_SERVER_HOST, "mail.acme.com");
req.addProperty(
DeliveryPropertyDefinitions.AS2_ASYNC_EMAIL_SERVER_USERNAME, "async_target");
req.addProperty(
DeliveryPropertyDefinitions.AS2_ASYNC_EMAIL_SERVER_PASSWORD, "mypassword");
req.addProperty(
DeliveryPropertyDefinitions.AS2_ASYNC_EMAIL_SERVER_FOLDER_NAME, "inbox");

// set the document
req.setDocument("/document/myEDIdoc");

// submit the request with the DeliveryResponseListener
req.submit(myDeliveryListener);
:
:

配信要求を追跡するには、前述のコード例に示すように、Delivery APIの非同期配信要求メカニズムを使用する必要があることに注意してください。第8.15項「非同期の配信要求」を参照してください。

8.11.3 ドキュメントの署名

Delivery APIによりドキュメントに署名してトランザクションをセキュアにできます。この機能は公開鍵アーキテクチャに基づくため、次の設定が必要になります。

- 送信者側: 送信者の公開鍵と秘密鍵
送信者は、送信者の公開鍵と秘密鍵をPKCS12標準ファイルに所持している必要があります。ファイルの拡張子は.p12です。このファイルを、Delivery APIを実行するローカル・システムに配置します。

- 受信者側(AS2サーバー側): 送信者の公開鍵証明書
受信者は、送信者の公開鍵証明書を所持している必要があります。AS2サーバーへの証明書のインストール方法は、サーバーによって異なります。一般的に、.der証明書または.cer証明書を特定の場所にコピーする必要があります。手順の詳細は、ご使用のAS2サーバーのマニュアルを参照してください。

設定が完了したら、配信要求においてプロパティを設定してドキュメントに署名できます。サンプル・コードは次のとおりです。

例8-22 署名ドキュメントのサンプル・コード

:
:
// Signing the document
req.addProperty(DeliveryPropertyDefinitions.AS2_MESSAGE_SIGNATURE, "true");
req.addProperty(DeliveryPropertyDefinitions.AS2_SENDER_PKCS12_FILE, "/path/to/mykey.p12");
req.addProperty(DeliveryPropertyDefinitions.AS2_SENDER_PKCS12_PASSWORD, "welcome");
:
:

8.11.4 ドキュメントの暗号化

Delivery APIによりドキュメントを暗号化してトランザクションをセキュアにできます。この機能は公開鍵アーキテクチャに基づくため、次の設定が必要になります。

- 送信者側: 受信者の公開鍵証明書
送信者側は、受信者の公開鍵証明書ファイルを所持している必要があります。ファイルの拡張子は.derまたは.cerです。このファイルを、Delivery APIを実行するローカル・システムに配置します。AS2サーバーの公開鍵証明書を取得する手順の詳細は、ご使用のAS2サーバーのマニュアルを参照してください。

- 受信者側(AS2サーバー側): 受信者の公開鍵と秘密鍵
受信者側(AS2サーバー)は、受信者の公開鍵と秘密鍵を所持している必要があります。これらの鍵の設定手順の詳細は、ご使用のAS2サーバーのマニュアルを参照してください。

設定が完了したら、配信要求においてプロパティを設定してドキュメントを暗号化できます。サンプル・コードは次のとおりです。

例8-23 暗号化ドキュメントのサンプル・コード

:
:
// Encrypting the document
req.addProperty(DeliveryPropertyDefinitions.AS2_MESSAGE_ENCRYPTION, "true");
req.addProperty(DeliveryPropertyDefinitions.AS2_RECEIVER_CERTIFICATES_FILE,  "/path/to/server-certificate.der");
:
:

8.12 外部コマンドによるドキュメントの配信

Delivery APIでは、外部(つまりオペレーティング・システム(OS))のネイティブ・コマンドを使用してドキュメントを配信する機能がサポートされています。

OSのネイティブ・コマンドは、{file}プレースホルダとともに指定します。実行時に、このプレースホルダがドキュメントのファイル名に置換されます。

配信のステータスは、OSコマンドのexit値によって決まります。この値が0の場合、要求は成功とみなされます。

サンプル・コードは次のとおりです。

例8-24 外部コマンドよるドキュメントの配信のサンプル・コード

// create delivery manager instance
DeliveryManager dm = new DeliveryManager();
// create a delivery request
DeliveryRequest req = dm.createRequest(DeliveryManager.TYPE_EXTERNAL);
// set the OS native command for delivery
req.addProperty(DeliveryPropertyDefinitions.EXTERNAL_DELIVERY_COMMAND,
"/usr/bin/lp -d myprinter {file}");
// set the document
req.setDocument("/document/test.pdf");

// submit the request
req.submit();
// close the request
req.close();

DeliveryPropertyDefinitionsには、次のプロパティがサポートされ定義されています。

表8-11 外部コマンドよるドキュメントの配信のプロパティ

プロパティ

説明

EXTERNAL_DELIVERY_COMMAND

必須。

配信に使用するOSネイティブ・コマンドを入力します。

8.13 ローカル・ファイル・システムへのドキュメントの配信

Delivery APIでは、Delivery APIが実行しているローカル・ファイル・システムへのドキュメントの配信がサポートされています。このコマンドにより、指定されたファイルが指定された場所にコピーされます。

次のサンプル・コードにより、/document/test.pdfファイルが/destination/document.pdfにコピーされます。

例8-25 ローカル・ファイル・システムへのドキュメントの配信のサンプル・コード

// create delivery manager instance
DeliveryManager dm = new DeliveryManager();
// create a delivery request
DeliveryRequest req = dm.createRequest(DeliveryManager.TYPE_LOCAL);
// set the document destination in the local filesystem.
req.addProperty(DeliveryPropertyDefinitions.LOCAL_DESTINATION, "/destination/document.pdf");
// set the document to deliver.
req.setDocument("/document/test.pdf");

// submit the request
req.submit();
// close the request
req.close();

DeliveryPropertyDefinitionsには、次のプロパティがサポートされ定義されています。

表8-12 ローカル・ファイル・システムへのドキュメントの配信のプロパティ

プロパティ

説明

LOCAL_DESTINATION

必須。

ローカル・ファイル・システムにおけるコピー先ファイルの名前へのフルパスです。

8.14 ダイレクト・モードとバッファリング・モード

配信システムでは、ダイレクト・モードとバッファリング・モードの2種類の配信モードがサポートされています。バッファリング・モードがデフォルトです。

8.14.1 ダイレクト・モード

ダイレクト・モードにより、完全にストリームライン化した配信処理が実現します。ドキュメントは、宛先に直接接続された接続ストリームに配信されます。このモードは高速なので、メモリーとディスク・スペースの使用量を抑えます。これは、オンライン対話型処理で使用することをお薦めします。

ダイレクト・モードを設定するには、BUFFERING_MODEプロパティを"false"に設定します。次に、そのコード・サンプルを示します。

例8-26 ダイレクト・モード設定のサンプル・コード

// create delivery manager instance
DeliveryManager dm = new DeliveryManager();

// create a delivery request
DeliveryRequest req = dm.createRequest(DeliveryManager.TYPE_IPP_PRINTER);

// set the direct mode
req.addProperty(DeliveryPropertyDefinitions.BUFFERING_MODE, "false");
:
:
:

このモードでは、ドキュメントの再配信はサポートされていません。再配信が必要な場合は、バッファリング・モードを使用します。

8.14.2 バッファリング・モード

バッファリング・モードでは、何度でもドキュメントを再配信できます。一時ディレクトリ(ds-temp-dir)を配信サーバー構成ファイルで指定すると、配信システムでは、一時ファイルを使用してドキュメントがバッファされます。一時ディレクトリを指定しない場合、配信システムでは一時メモリー・バッファが使用されます。一時ディレクトリを定義することをお薦めします。この構成ファイルの詳細は、第8.21項「構成ファイルのサポート」を参照してください。

配信要求の終了後に、DeliveryRequest.close()をコールして、一時ファイルまたはバッファを明示的にクリアできます。

例8-27 バッファリング・モード設定のサンプル・コード

// create delivery manager instance
DeliveryManager dm = new DeliveryManager();

// create a delivery request
DeliveryRequest req = dm.createRequest(DeliveryManager.TYPE_IPP_PRINTER);

// set buffering mode
req.addProperty(DeliveryPropertyDefinitions.BUFFERING_MODE, "true");
req.addProperty(DeliveryPropertyDefinitions.TEMP_DIR, "/tmp");
:
:
:
// submit request
req.submit();
:
:
// submit request again
req.submit();
:
:
// close the request
req.close();

8.15 非同期の配信リクエスト

Delivery APIには、コールバック関数を登録することで、配信要求を非同期に実行する機能が用意されています。

DeliveryResponseListenerインタフェースを実装して、独自のコールバック・ロジックを作成できます。それには、resposeReceived()メソッドを実装する必要があります。独自のロジックをこのメソッドに実装することで、配信要求の終了時に独自のロジックをコールできるようになります。サンプル・コードは次のとおりです。

例8-28 コールバック・ロジック実装のサンプル・コード

import oracle.apps.xdo.delivery.DeliveryResponseListener;

class MyListener implements DeliveryResponseListener
{

public void responseReceived(DeliveryResponse pResponse)
{
// Show the status to the System.out
System.out.println("Request done!");
System.out.println("Request status id  : " + pResponse.getStatus());
System.out.println("Request status msg : " + pResponse.getStatusMessage());
}

}

コールバックを実装したら、DeliveryRequestのsubmit()メソッドのコール時に、実装したコールバック処理を渡すことができます。コールバック処理にあるsubmit()をコールすると、配信プロセスがバックグラウンドで起動され、submit()メソッドはただちに制御を戻します。サンプル・コードは次のとおりです。

例8-29 コールバック・ロジック発行のサンプル・コード

// create delivery manager instance
DeliveryManager dm = new DeliveryManager();

// create a delivery request
DeliveryRequest req = dm.createRequest(DeliveryManager.TYPE_IPP_PRINTER);
:
:
// submit request with the callback logic
req.submit(new MyListener());
:
:

8.16 ドキュメントのフィルタのサポート

Delivery APIでは、サポートされているすべてのプロトコルに対して、ドキュメント・フィルタ機能がサポートされています。この機能によって、各配信要求を実行する前に、OSのネイティブ・コマンドをコールして、ドキュメントの変換を実行できます。フィルタを指定するには、入力ファイル名と出力ファイル名用の2つのプレースホルダである{infile}および{outfile}とともにOSのネイティブ・コマンドの文字列を渡します。作成したフィルタは、配信プロパティとして配信要求に設定できます。次に、サンプルを2つ示します。

例8-30 ドキュメントのフィルタを配信プロパティとして設定するサンプル・コード

// The easiest filter, just copy the file :)
req.addProperty(DeliveryPropertyDefinitions.FILTER, "cp {infile} {outfile}");

// Call "pdftops" utility to transform the PDF document into Postscript format
req.addProperty(DeliveryPropertyDefinitions.FILTER, "pdftops {infile} {outfile}");

また、各サーバーにフィルタを構成ファイルにおいて指定できます(第8.21項「構成ファイルのサポート」を参照)。この場合、このサーバーへの要求には、必ず指定したフィルタが使用されます。

例8-31 ドキュメントのフィルタを構成ファイル内で設定するサンプル・コード

:
:

<server name="printer1" type="ipp_printer" default="true">
<uri>ipp://myserver:80/printers/MyPrinter1/.printer</uri>
<filter>pdftops {infile} {outfile}</filter>
</server>
:
:

この構成は、IPPプリンタを直接コールするときや、Microsoft Internet Information Service(IIS)上のIPPプリンタをコールするときに特に有効です。これらのプリンタは通常、PDFドキュメントに対応しておらず、特定のドキュメント書式にのみ制限されるためです。この機能を使用することで、オペレーション・システム(OS)の任意のネイティブ・コマンドをコールして、ターゲット・プリンタが認識できる書式にドキュメントを変換できます。たとえば、Microsoft IIS上のHP LaserJetプリンタ設定をLinuxからコールする必要がある場合は、PDFドキュメントをHP LaserJetが認識できる書式に変換するフィルタとしてGhostscriptを設定できます。

例8-32 ドキュメントのフィルタをOSコマンドで使用して設定するサンプル・コード

// specify filter
req.addProperty(DeliveryPropertyDefinitions.FILTER,
"gs -q -dNOPAUSE -dBATCH -sDEVICE=laserjet -sOutputFile={outfile}
{infile}");

この機能を使用するには、バッファリング・モードを有効にして一時ディレクトリを指定する必要があることに注意してください。第8.21項「構成ファイルのサポート」を参照してください。

8.16.1 PDFからPostScriptへの変換フィルタ

さらに、BI PublisherではPDFからPostscript Level 2変換フィルタが提供されています。この内部フィルタを使用するには、{infile}プレース・ホルダーおよび{outfile}プレース・ホルダーを設定する必要はありません。ただし、次に示すようにフィルタ・クラスを直接指定する必要があります。

例8-33 PDFからPostscript Level 2への変換フィルタを設定するサンプル・コード

req.addProperty(DeliveryPropertyDefinitions.FILTER, "oracle.xdo.delivery.filter.PDF2PSFilterImpl");
<server name="printer1" type="ipp_printer" default="true">
ipp://myserver:80/printers/MyPrinter1/.printer
<filter>oracle.xdo.delivery.filter.PDF2PSFilterImpl</filter>
</server>

8.17 日付式のサポート

BI Publisherでは日付式をサポートするプロパティが提供されます。ファイルの命名に日付を使用する場合や実行時に日付を自動的に設定する場合は、日付式を使用します。

次のプロパティが日付式でサポートされます。

- SMTP_CONTENT_FILENAME

- FTP_REMOTE_FILENAME

- WEBDAV_REMOTE_FILENAME

サポートされる日付式は次のとおりです。

- %y: 4桁の年(例: 1972、2005)

- %m: 2桁の月(00から12)

- %d: 2桁の日(00から31)

- %H: 24時間ベースの2桁の時(00から24)

- %M: 2桁の分(00から59)

- %S: 2桁の秒(00から59)

- %l: 3桁のミリ秒(000から999)

たとえば、my_file_%y%m%d.txtをファイル名に指定した場合、2005年11月8日であれば、実際のファイル名はmy_file_20051108.txtになります。未定義の式はすべて、長さがゼロの文字列に変換されます。たとえば、my_file_%a%b%c.txtを指定すると、my_file_.txtになります。%'文字は、'%%'を渡すことでエスケープ処理ができます。

8.18 国際化のサポート

配信サーバーのAPIでは、リストされた配信チャネルに対して、次に示す国際化機能がサポートされています。

8.18.1 SMTP

- SMTP_CONTENT_TYPEによって、メイン・ドキュメントの文字エンコーディング方法を指定します。

- addAttachment()メソッドのコール時にコンテンツ・タイプを渡すことで、添付の文字エンコーディング方法を指定します。

- SMTP_CHARACTER_ENCODINGプロパティによって、電子メールの宛先、送信者、CCおよび件名における文字エンコーディング方法を指定します。デフォルト値は"UTF-8"です。

8.18.2 IPP

- IPP_ATTRIBUTE_CHARSETプロパティによって、IPP属性の文字エンコーディング方法を指定します。デフォルト値は"UTF-8"です。

- ASCII以外の文字をURLにおいてエンコーディングする場合は、IPP_URL_CHARACTER_ENCODINGプロパティを指定します。

8.18.3 WebDAV

- ASCII以外の文字をURLにおいてエンコーディングする場合は、WEBDAV_URL_CHARACTER_ENCODINGプロパティを指定します。

8.18.4 FTP

- FTP配信チャネルの場合は、ターゲットのFTPサーバーでサポートされている国際化が自動的に検出されます。ASCII以外の文字のディレクトリ名およびファイル名を指定できるのは、ターゲットのFTPサーバーで国際化がサポートされている場合のみです(詳細はRFC 2640を参照)。その場合は、UTF-8エンコーディングが自動的に使用されます。サーバーで国際化がサポートされていない場合にASCII以外の文字の値を指定すると、配信プロセス中に例外がスローされます。

8.18.5 HTTP

- ASCII以外の文字をURLにおいてエンコーディングする場合は、HTTP_CHARACTER_ENCODINGプロパティを指定できます。

8.19 グローバル・プロパティの設定

グローバル・プロパティをDeliveryManagerに対して定義することで、すべての配信要求でグローバル・プロパティが自動的に継承されるようになります。

次のグローバル・プロパティがサポートされています。

表8-13 DeliveryManager APIでサポートされるグローバル・プロパティ

プロパティ

説明

BUFFERING_MODE

有効な値は"true"(デフォルト)および"false"です。第8.14項「ダイレクト・モードとバッファリング・モード」を参照してください。

TEMP_DIR

一時ディレクトリの場所を定義します。

CA_CERT_FILE

Oracle Wallet Managerによって生成されるCA証明書ファイルの場所を定義します。これはOracle SSLライブラリとのSSL接続に使用されます。指定しない場合は、デフォルトのCA証明書が使用されます。

例8-34 グローバル・プロパティ設定のサンプル・コード

// create delivery manager instance
DeliveryManager dm = new DeliveryManager();

// set global properties
dm.addProperty(DeliveryPropertyDefinitions.TEMP_DIR, "/tmp");
dm.addProperty(DeliveryPropertyDefinitions.BUFFERING_MODE, "true");

// create delivery requests
DeliveryRequest req1 = dm.createRequest(DeliveryManager.TYPE_IPP_PRINTER);
DeliveryRequest req2 = dm.createRequest(DeliveryManager.TYPE_IPP_FAX);
DeliveryRequest req3 = dm.createRequest(DeliveryManager.TYPE_SMTP_EMAIL);
:
:

8.20 カスタム配信チャネルの追加

カスタム配信チャネルをシステムに追加するには、次の手順を実行します。

1. 配信プロパティを定義します。

2. DeliveryRequestインタフェースを実装します。

3. DeliveryRequestHandlerインタフェースを実装します。

4. DeliveryRequestFactoryインタフェースを実装します。

5. カスタムなDeliveryRequestFactoryをDeliveryManagerに登録します。

次の各項では、ドキュメントをローカル・ファイル・システムに配信するサンプル・カスタム配信チャネル(チャネル名は"File delivery channel")を作成することで、配信チャネルの作成方法について詳細に説明します。

8.20.1 配信プロパティの定義

カスタム配信チャネルを追加する最初の手順では、プロパティを定義します。定義するプロパティは、配信チャネルの使用目的によって異なります。プロパティ用に定数を定義できます。ここで紹介するファイル配信チャネルでは、必要となるプロパティは宛先の1つのみです。

サンプル・コードは次のとおりです。

例8-35 配信チャネルのプロパティを定義するサンプル・コード

package oracle.apps.xdo.delivery.file;

public interface FilePropertyDefinitions
{
/** Destination property definition.  */
public static final String FILE_DESTINATION = "FILE_DESTINATION:String";

}

各定数の値は、文字列であれば任意の値を指定できます。[property name]:[property value type]形式で値を定義することをお薦めします。これによって、配信システムによりプロパティ値が実行時に自動的に検証されます。この例では、FILE_DESTINATIONプロパティが文字列値を持つことが定義されています。

8.20.2 DeliveryRequestインタフェースの実装

DeliveryRequestは、ドキュメントに関する情報と、宛先などの配信メタデータやその他のプロパティを含む配信要求を表します。oracle.apps.xdo.delivery.DeliveryRequestを実装するために、クラスoracle.apps.xdo.delivery.AbstractDeliveryRequestを拡張できます。

たとえば、ドキュメントをローカル・ファイル・システムに配信するカスタム配信チャネルを作成するには、DeliveryRequestの実装は次のようになります。

例8-36 カスタム配信チャネルによるローカル・ファイル・システムへのドキュメントの配信のサンプル・コード

package oracle.apps.xdo.delivery.file;
import oracle.apps.xdo.delivery.AbstractDeliveryRequest;

public class FileDeliveryRequest extends AbstractDeliveryRequest
implements FilePropertyDefinitions
{
private static final String[] MANDATORY_PROPS = {FILE_DESTINATION};

/**
* Returns mandatory property names
*/
public String[] getMandatoryProperties()
{
return MANDATORY_PROPS;
}
/**
* Returns optional property names
*/
public String[] getOptionalProperties()
{
return null;
}
}

8.20.3 DeliveryRequestHandlerインタフェースの実装

DeliveryRequestHandlerには、配信要求を処理するロジックが含まれます。ファイル配信チャネル用oracle.apps.xdo.delivery.DeliveryRequestHandlerのサンプル実装は、次のようになります。

例8-37 DeliveryRequestHandlerインタフェース実装のサンプル・コード

package oracle.apps.xdo.delivery.file;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

import oracle.apps.xdo.delivery.DeliveryException;
import oracle.apps.xdo.delivery.DeliveryRequest;
import oracle.apps.xdo.delivery.DeliveryRequestHandler;
import oracle.apps.xdo.delivery.DeliveryStatusDefinitions;

public class FileDeliveryRequestHandler implements DeliveryRequestHandler
{

private FileDeliveryRequest mRequest;
private boolean mIsOpen = false;
private OutputStream mOut;

/**
* default constructor.
*/
public FileDeliveryRequestHandler()
{
}

/**
* sets the request.
*/
public void setRequest(DeliveryRequest pRequest)
{
mRequest = (FileDeliveryRequest) pRequest;
}

/**
* returns the request.
*/
public DeliveryRequest getRequest()
{
return mRequest;
}

/**
* opens the output stream to the destination.
*/
public OutputStream openRequest() throws DeliveryException
{
try
{
String filename =
(String) mRequest.getProperty(FileDeliveryRequest.FILE_DESTINATION);
mOut = new BufferedOutputStream(new FileOutputStream(filename));

mIsOpen = true;
// set request status to open
mRequest.setStatus(DeliveryStatusDefinitions.STATUS_OPEN);
return mOut;

}
catch (IOException e)
{
closeRequest();
throw new DeliveryException(e);
}

}

/**
* flushes and closes the output stream to submit the request.
*/
public void submitRequest() throws DeliveryException
{
try
{
// flush and close
mOut.flush();
mOut.close();
// set request status
mRequest.setStatus(DeliveryStatusDefinitions.STATUS_SUCCESSFUL);
mIsOpen = false;
}
catch (IOException e)
{
closeRequest();
throw new DeliveryException(e);
}
}

/**
* checks the delivery status.
*/
public void updateRequestStatus() throws DeliveryException
{

// check if the file is successfully delivered
String filename =
(String) mRequest.getProperty(FileDeliveryRequest.FILE_DESTINATION);
File f = new File(filename);

// set request status
if (f.exists())
mRequest.setStatus(DeliveryStatusDefinitions.STATUS_SUCCESSFUL);
else
mRequest.setStatus(DeliveryStatusDefinitions.STATUS_FAILED_IO_ERROR);

}
/**
* returns the request status.
*/
public boolean isRequestOpen()
{
return mIsOpen;
}

/**
* closes the request, frees all resources.
*/
public void closeRequest()
{
mIsOpen = false;
try
{
if (mOut != null)
{
mOut.flush();
mOut.close();
}
}
catch (IOException e)
{
}
finally
{
mOut = null;
}
}

}

8.20.4 DeliveryRequestFactoryインタフェースの実装

カスタム配信チャネルを配信システムに登録するためのDeliveryRequestFactoryインタフェースを実装します。

oracle.apps.xdo.delivery.DeliveryRequestFactoryのサンプル実装は次のとおりです。

例8-38 DeliveryRequestFactoryインタフェース実装のサンプル・コード

package oracle.apps.xdo.delivery.file;

import oracle.apps.xdo.delivery.DeliveryRequest;
import oracle.apps.xdo.delivery.DeliveryRequestFactory;
import oracle.apps.xdo.delivery.DeliveryRequestHandler;

public class FileDeliveryRequestFactory
implements DeliveryRequestFactory
{
/**
* default constructor.
*/
public FileDeliveryRequestFactory()
{
}
/**
* returns delivery request.
*/
public DeliveryRequest createRequest()
{
return new FileDeliveryRequest();
}
/**
* returns delivery request handler.
*/
public DeliveryRequestHandler createRequestHandler()
{
return new FileDeliveryRequestHandler();
}
/**
* returns this
*/
public DeliveryRequestFactory getFactory()
{
return this;
}
}

8.20.5 DeliveryManagerへのカスタムなDeliveryRequestFactoryの登録

最後の手順では、カスタム配信チャネルを配信システムに登録します。配信チャネルは、次の2種類の方法で登録できます。

- 静的な方法
この方法では、配信チャネルを構成ファイルに指定することで、配信システム全体に対して登録します。第8.21項「構成ファイルのサポート」を参照してください。

- 動的な方法
登録用APIをプログラムでコールすることで、配信チャネルをJava VMインスタンスに登録します。

動的な方法を使用してファイル配信チャネルを登録し、そのファイル配信チャネルをコールするサンプル・コードは次のとおりです。

例8-39 動的な方法によるファイル配信チャネルの登録とコールのサンプル・コード

package oracle.apps.xdo.delivery.file;

import oracle.apps.xdo.delivery.DeliveryManager;
import oracle.apps.xdo.delivery.DeliveryRequest;

public class FileDeliverySample
{
public static void main(String[] args) throws Exception
{
// register the file delivery channel
DeliveryManager.addRequestFactory("file", "oracle.apps.xdo.delivery.file.FileDeliveryRequestFactory");

// create delivery manager instance
DeliveryManager dm = new DeliveryManager();
// create a delivery request
DeliveryRequest req = dm.createRequest("file");

// set the destination
req.addProperty(
FileDeliveryRequest.FILE_DESTINATION,
"d:/Temp/testDocument_delivered.pdf");
// set the document to deliver
req.setDocument("D:/Temp/testDocument.pdf");

// submit the request
req.submit();
// close the request
req.close();
}
}

8.21 構成ファイルのサポート

配信システムでは、構成ファイルによるデフォルト・サーバー、デフォルト・プロパティおよびカスタム配信チャネルの設定がサポートされています。構成ファイルは、次の場所にあります。

{XDO_TOP}/resource/xdodelivery.cfg

ここで、{XDO_TOP}は、物理ディレクトリを示すJavaシステム・プロパティです。

このシステム・プロパティは、次の2種類の方法で設定できます。

- -DXDO_TOP=/path/to/xdotopをJavaの起動パラメータに渡します。

- java.lang.System.getProperties().put("XDO_TOP", "/path/to/xdotop")などのJava APIをコードに使用します。

システム・プロパティは、DeliveryManagerオブジェクトを作成する前に定義する必要があります。

次に、構成ファイルのサンプルを示します。

例8-40 サンプル構成ファイル

<?xml version='1.0' encoding='UTF-8'?>
<config xmlns="http://xmlns.oracle.com/oxp/delivery/config">
<! -  ========================================================  - >
<! -     servers section                                        - >
<! -     List your pre-defined servers here.                    - >

<! -  ========================================================  - >
<servers>
<server name="myprinter1" type="ipp_printer" default="true">
<uri>ipp://myprinter1.oracle.com:631/printers/myprinter1</uri>

</server>
<server name="myprinter2" type="ipp_printer" >
<host>myprinter2.oracle.com</host>
<port>631</port>

<uri>ipp://myprinter2.oracle.com:631/printers/myprinter2</uri>
<authType>basic</authType>
<username>xdo</username>
<password>xdo</password>

</server>
<server name="myfax1" type="ipp_fax" default="true" >
<host>myfax1.oracle.com</host>

<port>631</port>
<uri>ipp://myfax1.oracle.com:631/printers/myfax1</uri>
</server>
<server name="mysmtp1" type="smtp_email" default="true">

<host>myprinter1.oracle.com</host>
<port>25</port>
</server>
<server name="mysmtp2" type="smtp_email" >

<host>mysmtp12.oracle.com</host>
<port>25</port>
<username>xdo</username>
<password>xdo</password>

</server>
</servers>
<! -  ========================================================  - >
<! -     properties section                                     - >
<! -     List the system properties here.                       - >
<! -  ========================================================  - >
<properties>

<property name="ds-temp-dir">/tmp</property>
<property name="ds-buffering">true</property>
</properties>
<! -  ========================================================  - >
<! -      channels section                                      - >

<! -      List the custom delivery channels here.               - >
<! -  ========================================================  - >
<channels>
<channel name="file">oracle.apps.xdo.delivery.file.FileDeliveryRequestFactory</channel>
</channels>

</config>

8.21.1 配信チャネルに対する複数のサーバーの定義

複数のサーバー・エントリを各配信チャネルに対して定義できます。たとえば、前述のサンプル構成ファイルでは、2つのサーバー・エントリ("myprinter1"と"myprinter2")が"ipp_printer"配信チャネルに対して定義されています。

サーバー・エントリを配信要求に対してロードするには、DeliveryRequest.setServer()メソッドをコールします。次に例を示します。

例8-41 配信チャネルに対する複数のサーバーを定義するサンプル・コード

// create delivery manager instance
DeliveryManager dm = new DeliveryManager();
// create a delivery request
DeliveryRequest req = dm.createRequest(DeliveryManager.TYPE_IPP_PRINTER);

// load myprinter1 setting
req.setServer("myprinter1");

8.21.2 配信チャネルに対するデフォルト・サーバーの指定

デフォルト・サーバーを配信チャネルに対して定義するには、default="true"を指定します。前述の構成ファイル例では、"myprinter1"がデフォルト・サーバーとして"ipp_printer"配信チャネルに対して定義されています。ユーザーがサーバー・プロパティを"ipp_printer"配信に対して指定しない場合は、デフォルト・サーバーに定義されたサーバー・プロパティが使用されます。

8.21.3 サポートされている構成ファイルのプロパティと要素

次のプロパティが<properties>セクションでサポートされています。

- ds-temp-dir: 一時ディレクトリの場所です。

- ds-buffering: バッファリング・モードに対してtrueまたはfalseを指定します。

- ds-ca-cert-file: SSL証明書ファイルの場所を指定します。

次の要素が<server type="ipp_printer">および<server type="ipp_fax">でサポートされています。

- <host>

- <port>

- <printerName>

- <uri>

- <username>

- <password>

- <authType>

- <encType>

- <proxyHost>

- <proxyPort>

- <proxyUsername>

- <proxyPassword>

- <proxyAuthType>

- <filter>

- <filterOutputContentType>

次の要素が<server type="smtp_email">でサポートされています。

- <secureConnection>

- <host>

- <port>

- <username>

- <password>

- <authType>

- <filter>

次の要素が<server type="rightfax">でサポートされています。

- <host>

- <port>

- <uri>

- <username>

- <password>

- <authType>

- <encType>

- <proxyHost>

- <proxyPort>

- <proxyUsername>

- <proxyPassword>

- <proxyAuthType>

- <filter>

- <filterOutputContentType>

次の要素が<server type="printer">でサポートされています。

- <host>

- <filter>

- <filterOutputContentType>

次の要素が<server type="webdav">でサポートされています。

- <host>

- <port>

- <uri>

- <username>

- <password>

- <authType>

- <encType>

- <proxyHost>

- <proxyPort>

- <proxyUsername>

- <proxyPassword>

- <proxyAuthType>

- <filter>

次の要素が<server type="ftp">でサポートされています。

- <host>

- <port>

- <username>

- <password>

- <filter>

- <passiveMode>

次の要素が<server type="sftp">でサポートされています。

- <host>

- <port>

- <username>

- <password>

- <filter>

- <authType>

次の要素が<server type="http">でサポートされています。

- <host>

- <port>

- <uri>

- <username>

- <password>

- <authType>

- <encType>

- <proxyHost>

- <proxyPort>

- <proxyUsername>

- <proxyPassword>

- <proxyAuthType>

次の要素が<server type="as2">でサポートされています。

- <host>

- <port>

- <uri>

- <username>

- <password>

- <authType>

- <encType>

- <proxyHost>

- <proxyPort>

- <proxyUsername>

- <proxyPassword>

- <proxyAuthType>

次の要素が<server type="external">でサポートされています。

- <command>

- <filter>

第III部

その他のトピック

この部の内容は次のとおりです。

- 第9章「ビュー・オブジェクトをデータソースとしてBI Publisherで使用可能にするには」

- 第10章「After-Reportトリガーの設定」

9 ビュー・オブジェクトをデータソースとしてBI Publisherで使用可能にするには

この章では、ビュー・オブジェクトをデータソースとしてBI Publisher内で使用する際に必要な手順について説明します。

内容は次のとおりです。

- 第9.1項「前提条件」

- 第9.2項「アプリケーション・モジュールの構成」

- 第9.3項「web.xmlの更新」

- 第9.4項「weblogic.xmlの更新」

- 第9.5項「アプリケーション・モジュールのデプロイ」

- 第9.6項「providers.xmlファイルの更新」

注意:

この章では、Oracle Application Development Framework(ADF)およびOracle JDeveloperに習熟していることが前提となっています。詳細は、次のものを参照してください。

- 『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』

- Oracle JDeveloper 11gオンライン・ヘルプ

9.1 前提条件

Oracle BI Publisherには、ビュー・オブジェクトへのWebサービスのコールを使用してリモート・サーバーからデータを抽出するメカニズムが備わっています。アプリケーション開発者は、データソースをアプリケーション内でビュー・オブジェクトとして定義し、データ・モデルをBI Publisherに作成してレポートで使用するデータを抽出できます。

この章に記載された情報を使用する前提条件は、次のとおりです。

- BI Publisherが、アプリケーションを稼働するWebLogicサーバーにデプロイされていること。ライブラリ「oracle.xdo.webapp」が必要です。このライブラリはOracle BI Platform Installerによりデプロイされます。

- JDeveloperで、エンティティ・ベースのビューオブジェクトが作成されていること。

- JDeveloperでは、データベース接続データソースの名前が「ApplicationDB」であること。

9.2 アプリケーション・モジュールの構成

Oracle JDeveloperを使用して、ビュー・オブジェクトを持つアプリケーション・モジュールを構成します。その手順は、この章の残りの項に記載してあります。

9.3 web.xmlの更新

1. JDeveloperで、「プロジェクト」→「Webコンテンツ」→「WEB-INF」フォルダでweb.xmlファイルに移動します。

図9-1 JDeveloperのweb.xmlファイルの更新

2. 「ソース」ビューで、次のようにしてweb.xmlファイルを更新します。

<filter-mapping>
<filter-name>adfBindings</filter-name>
<servlet-name>oracle.xdo.vo.webservice.VODataSourceService</servlet-name>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>

<servlet>
<servlet-name>oracle.xdo.vo.webservice.VODataSourceService</servlet-name>
<servlet-class>oracle.j2ee.ws.server.provider.ProviderServlet</servlet-class>
<init-param>
<param-name>Oracle.JAX-WS.ServiceEndpointBean</param-name>
<param-value>oracle.xdo.vo.webservice.VODataSourceService</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>oracle.xdo.vo.webservice.VODataSourceService</servlet-name>
<url-pattern>/services/voService</url-pattern>
</servlet-mapping>

9.4 weblogic.xmlの更新

1. JDeveloperで、「プロジェクト」→「Webコンテンツ」→「WEB-INF」フォルダでweblogic.xmlファイルに移動します。

2. WEB-INFディレクトリにあるweblogic.xmlファイルを次のライブラリ参照を使用して更新します。

<library-ref>
<library-name>oracle.xdo.webapp</library-name>
</library-ref>

図9-2 JDeveloperのweblogic.xmlファイルの更新

9.5 アプリケーション・モジュールのデプロイ

アプリケーション・モジュールを、BI PublisherがインストールされているWebLogicサーバーにデプロイします。アプリケーション・コンテキスト・パスをメモします。

9.6 providers.xmlファイルの更新

1. BI Publisherのインストールで、providers.xmlファイルへ移動します。providers.xmlファイルは、${xdo.server.config.dir}/repository/Admin/Configurationにあります。

2. providers.xmlファイルを更新するには、データソースにnameを入力し、次に示すようにアプリケーション・コンテキスト・パスをnonSSOUri属性に追加します。

<provider name="MyWSVOTest" uri =""  nonSSOUri="http://example.com:7101/Application-VOTestWS-ViewController-context-root"/>

3. providers.xmlファイルを保存します。

4. BI Publisherアプリケーションを再起動します。
これで、ビュー・オブジェクトのデータソースがデータ・モデル・エディタから使用できるようになります。

このデータソースに対応するデータモデルの作成方法は、『Oracle Fusion Middleware Oracle Business Intelligence Publisherレポート・デザイナーズ・ガイド』のデータ・セット型としてのビュー・オブジェクトの定義に関する項を参照してください。

10 After-Reportトリガーの設定

この章では、HTTPサーブレットを使用してAfter-Reportトリガーを設定する方法について説明します。

内容は次のとおりです。

- 第10.1項「After-Reportトリガーの概要」

- 第10.2項「After-Reportトリガーの設定」

10.1 After-Reportトリガーの概要

BI Publisherを使用すれば、After-ReportトリガーとしてAfter-Reportの生成を実行するHTTP通知を設定できます。これにより、BI Publisherを他のOracleアプリケーションやサード・パーティ・アプリケーション(BPELプロセス、コンテンツ管理アプリケーション、その他のワークフロー・アプリケーションなど)と統合できます。

BI Publisherは、データ・モデル定義内のイベント・トリガー(Before DataトリガーおよびAfter Dataトリガー)をサポートします。それを使用して、データ生成時にプログラムをトリガーできます。HTTP通知はレポート生成後にトリガーされます。

10.1.1 制限事項

BI Publisherでレポートが生成されるとすぐに通知が実行されることに注意してください。現時点では、レポートの生成からサーブレットへのHTTP通知の間に、リスナーまたはプロセスをコール・バックしたり導入したりする機能はありません。

10.1.2 After-Reportトリガーのレポートへの追加に対するプロセスの概要

レポートに対してAfter-Reportトリガーを設定するには、次のタスクが必要です。

1. この章で説明されているように、サーブレットまたはサード・パーティ・アプリケーションを作成します。

2. BI Publisherの「管理」ページでサーブレットURLをHTTP配信サーバーとして登録します。第10.2.1項「HTTPサーブレットの登録」を参照してください。
サーブレットはセキュリティ回避に使用できる必要があるため、サーブレットのマッピングはweb.xmlで行う必要があります(WEB-INFフォルダ下)。

3. レポートのスケジュールを作成するには、HTTP通知を選択します。

10.2 After-Reportトリガーの設定

レポートの生成が完了すると、BI PublisherでHTTP通知が後処理としてコールされ、次の追加パラメータとともに(HTTPサーバーとして登録した)URLが実行されます。

- jobid

- report_url

- status
statusの値は、成功を表す「S」、または失敗を表す「F」になります。

その後、リモート・アプリケーションは、BI PublisherのAPIやWebサービスを使用してこれらのパラメータにアクセスし、レポート出力やXMLデータなどのジョブの詳細にアクセスできます。サンプル・コードを次に示します。

例10-1 After-Reportトリガーの設定のサンプル・コード

String id = request.getParameter("jobid");
String report_url = request.getParameter("report_url");
String status = request.getParameter("status");

try
{
Scheduler sch =new SchedulerImpl();
JobHistoryInfo[] jobs= sch.getJobHistoryInfo(id);
for (int i = 0; i<jobs.length; i++){
JobHistoryInfo outinfo = jobs[i];
FileOutputStream fos = new FileOutputStream(targetDir+id+".pdf");
byte[] buf = new byte[256];
int read = 0;
InputStream in  = outinfo.getDocumentOutput();

while ((read =in.read(buf)) > 0) {
fos.write(buf, 0, read);
}
in.close();
fos.close();
}
} catch (Exception e) {
Logger.log(e);
}

10.2.1 HTTPサーブレットの登録

HTTPサーブレットが同じサーバー上のBI Publisherアプリケーション内で実行中の場合、それをweb.xmlで登録する必要があります(WEB-INFフォルダ内に配置)。次のようにweb.xmlファイルを更新します。

<servlet>
<servlet-name>HttpNotificationTest</servlet-name>
<servlet-class>oracle.xdo.service.scheduling.HttpNotificationTest</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>HttpNotificationTest</servlet-name>
<url-pattern>/services/HttpNotificationTest</url-pattern>
</servlet-mapping>

または、HTTPサーブレットのかわりにJSPページを作成して、このHTTP通知を処理することも可能です。JSPでは、web.xmlを変更する必要はありません。

10.2.2 サンプル・プログラム

次に、HTTP通知として呼び出されるサンプルのHTTPサーブレットを示します。この例では、サーブレットがBI Publisherアプリケーションと同じサーバー上にデプロイされます。サーブレットをリモート・サーバー上にデプロイする場合は、BI PublisherのWebサービスAPIを使用してレポートの詳細にアクセスします。BI PublisherのWebサービスAPIの詳細は、Oracle Fusion Middleware Oracle Business Intelligence Publisher 11g Java APIリファレンスを参照してください。

このサンプルでは、サーブレットでレポート出力を取得するために、HTTPリクエストから提供される情報をBI Publisher Webサービスの入力として使用します。このレポート出力は、後で承認ワークフローに挿入するために使用される場合があります。

例10-2 サンプル・プログラム・コード

package oracle.xdo.service.scheduling;

import java.io.FileOutputStream;

import java.io.IOException;
import java.io.InputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import oracle.xdo.common.log.Logger;
import oracle.xdo.server.JobHistoryInfo;
import oracle.xdo.server.Scheduler;
import oracle.xdo.server.impl.SchedulerImpl;

public class HttpNotificationTest extends HttpServlet
{
public String targetDir = "c://scratch/example/apphome/xmlpserver/xmlpserver/output/";
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException
{
doPost(request, response);
}
public void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException
{

String id=    request.getParameter("jobid");
String report_url = request.getParameter("report_url");
String status = request.getParameter("status");

try
{
Scheduler sch =new SchedulerImpl();
JobHistoryInfo[] jobs= sch.getJobHistoryInfo(id);
for (int i = 0; i<jobs.length; i++){
JobHistoryInfo outinfo = jobs[i];
FileOutputStream fos = new FileOutputStream(targetDir+id+"."+getFileExtension(outinfo.getDocumentDataContentType()));
byte[] buf = new byte[256];
int read = 0;
InputStream in  = outinfo.getDocumentOutput();

while ((read =in.read(buf)) > 0) {
fos.write(buf, 0, read);
}
in.close();
fos.close();
}
} catch (Exception e) {
Logger.log(e);
}
}

public static String getFileExtension(String contentType)
{
String ext="pdf";

if (contentType == "application/pdf")
ext="pdf" ;

else if (contentType == "text/html; charset=UTF-8")
ext="html";
return ext;
}

索引

A  B  C  D  E  F  G  H  I  M  P  R  S  T  V  W  X

A

After-Reportトリガー, 10.1

API

コア, 7.1

B

バーコード・フォント書式設定API, 7.13

バーコード

APIの説明, 7.13

ベース・データ型, 2.1 バッファリング・モード

配信サーバー, 8.14

C

CatalogService, 1.1, 1.1, 6

複合データ型, 2.3

構成ファイル

配信マネージャ, 8.21

コアAPI, 7.1

D

データ型マッピング, 2.2

データ型

ベース, 2.1

複合, 2.3

デバッグ

TCP Monitorユーティリティ, 1.3

Webサービス, 1.3

配信

オペレーティング・システム・コマンドの使用, 8.12

配信チャネル

追加カスタム, 8.20

配信マネージャ

構成ファイル, 8.21

Java API, 8.1

配信サーバー, 8.18

バッファリング・モード, 8.14

日付式, 8.17

ダイレクト・モード, 8.14

ドキュメント・フィルタのサポート, 8.16

グローバル・プロパティ, 8.19

ローカル・ファイル・システムへの配信, 8.13

ダイレクト・モード

配信サーバー, 8.14

E

電子メール配信, 8.2

F

FAX配信, 8.5

FTP配信, 8.8

G

グローバル・プロパティ

配信サーバー, 8.19

H

HTTP

ドキュメント配信の経路, 8.10

HTTP通知

サンプル・プログラム, 10.2.2

HTTPサーブレット

After-Reportトリガーの登録, 10.2.1

I

インセッション・メソッド

説明, 1.2

M

PDFファイルのマージ, 7.7.1

メソッド

インセッション, 1.2

P

PDFファイル

マージ, 7.7.1

出力, 8.3 providers.xmlファイル, 9.6

R

ReportService, 1.1, 1.1, 4

S

ScheduleService, 1.1, 3

セキュアFTP

配信, 8.9

SecurityService, 1.1, 5

T

TCP Monitorユーティリティ, 1.3

トリガー

After-Report, 10.1

V

ビュー・オブジェクト

作成, 9.1

W

Webサービス

説明, 1.1

CatalogService, 1.1

デバッグ, 1.3

ReportService, 1.1

ScheduleService, 1.1

SecurityService, 1.1

WebDAV delivery, 8.7

X

XMLとJavaとのマッピング

データ型対応, 2.2

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