Oracle® Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド 12c (12.2.1.3.0) E90222-01 |
|
前 |
次 |
この項では、配布XML要素の単純な例から複雑な例までを紹介します。これらの例は、次に示すdistribution.dtd
の主要な要素に基づいて編成されています。
この項で取り上げる例は、次のとおりです。
この例では、各添付ファイルがヘッダー、メイン、トレーラの各セクションの対応するインスタンスを含んでいます。つまり、レポートがdepartment_id
でグループ化され、最初の部門が部門10
である場合は、部門10の情報を含んでいるヘッダー、メイン、トレーラの各セクションからなるレポートが最初の添付ファイルとなります。この例が有効となるのは、同じグループ・インスタンス(この例の場合はdepartment_id
)でヘッダー、メイン、トレーラの各セクションが繰り返される場合にかぎられます。
<mail id="a1" to="managers@mycompany.com" subject="New Hires"> <foreach> <attach format="html" srcType="report" instance="this"> <include src="report"/> </attach> </foreach> </mail>
まず、この例では、managers@mycompany.com
が各部門の管理者に配信を行うメーリング・リストのアドレスであることを前提とします。10、20、30、40の4つの部門がある場合は、最初の添付ファイルに部門10に対応するヘッダー、メイン、トレーラの各セクションが取り込まれ、後続の各添付ファイルに残りの各部門に対応するセクションが取り込まれます。この例では、4つの添付ファイルを伴う電子メールが受信者ごとに1通ずつ作成されます。
この例では、各受信者が、グループ化されたレポートごとに異なる電子メールを受け取ります。たとえば、レポートがdepartment_id
でグループ化され、4つの部門が存在する場合は、1人の受信者がそれぞれに各部門のレポートが添付された4通の電子メールを受け取ります。
<foreach> <mail id="weeklies" to="managers@mycompany.com"> <attach format="htmlcss" srcType="report" instance="this"> <include src="mainSection"/> </attach> </mail> </foreach>
この例では、個別のセクションが別々のグループで繰り返されます。各受信者が、グループ化されたメイン・セクションごと、およびグループ化されたトレーラ・セクションごとの添付ファイルを伴う個別の電子メールを受信するように配布が設定されます。
<foreach> <mail id="a6" to="managers@mycompany.com" subject="Personnel Reports"> <attach format="pdf" name="attach.pdf" srcType="report" instance="this"> <include src="mainSection"/> </attach> <attach format="rtf" name="attach.rtf" srcType="report" instance="this"> <include src="trailerSection"/> </attach> </mail> </foreach>
この例では、グループ・インスタンスごとに異なるファイルが生成されます。グループはdepartment_id
で繰り返されます。各ファイルには、関連する部門IDから名前が付けられます。
<foreach> <file id="a10" name="department_&<department_id>.pdf" instance="this"> <include src="mainSection"/> </file> </foreach>
この例では、10から40までの4つの部門があることを前提に、department_10.pdf
、department_20.pdf
などの名前で4つのファイルが作成されます。
file
要素にはformat
属性が含まれていません。srcType
がfile
またはtext
である場合は、これが不要であるためです。srcType
がreport
である場合、これは必須です。
注意: この例で、変数値を使用するために一意のファイル名を指定しないと(第20.2.2項を参照)、後から作成される各ファイルによって、前に作成されたファイルが上書きされます。つまり、部門20のdepartment.pdfファイルによって部門10のdepartment.pdfファイルが上書きされます。この上書きは、最後の部門(部門40)レポートの情報を含んだdepartment.pdfが唯一のファイルとなるまで続きます。 |
Oracle Reportsでは、レポートの配布と一括処理におけるPDF暗号化をサポートしています。この機能を使用することで、次のように、レポート出力をPDFセキュリティによって保護できます。
<foreach> <file id="a10" name="department_&<department_id>.pdf" instance="this"> <property name="pdfuser" value="&<department_id>"/> <include src="mainSection"/> </file> </foreach>
生成されたPDF出力を開くには、departmentid
としてパスワードを入力する必要があります。
この項で取り上げる例は、次のとおりです。
レポートがこの電子メールの内容となります。つまり、受信者がこの電子メールを開くと、レポートが表示されます。
<mail id="a5" to="managers@mycompany.com" subject="Quarterly Report"> <body srcType="report" format="html"> <include src="report"/> </body> </mail>
レポートの1つのセクションがこの電子メールの内容となります。つまり、受信者がこの電子メールを開くと、レポートのセクションが表示されます。
<mail id="a6" to="employees@mycompany.com"> <body srcType="report" format="html"> <include src="mainSection"/> </body> </mail>
このmail
要素にはsubject
属性が含まれないため、デフォルトの件名であるMail Sent From &Report
が使用されます。変数&Report
は、実行時にレポートの名前で置き換えられます。
レポートの2つのセクションがこの電子メールの内容となります。つまり、受信者がこの電子メールを開くと、1つのレポートに結合された2つのセクション(headerSectionとmainSection)が表示されます。
<mail id="emp_addresses" to="employees@mycompany.com" subject="Employee Address List"> <body srcType="report" format="html"> <include src="headerSection"/> <include src="mainSection"/> </body> </mail>
このメールでは、外部ファイルが本文の内容となり、レポートが添付ファイルとなります。外部ファイルへのパスの表し方は、WindowsとUNIXで異なります。
この例では、受信者が複数の添付ファイルを伴う1通の電子メールを受け取ります。その内訳は、グループ・インスタンスごとの1つの添付ファイルと、レポート全体を含んだ1つの添付ファイルです。レポートがdepartment_id
でグループ化され、4つの部門が存在する場合は、受信者が5つの添付ファイルを受け取ります(部門ごとに1つの添付ファイルとレポート全体の添付ファイル)。
<mail id="grx90" to="sales@mycompany.com"> <body srcType="text">Attached you will find the summary report and breakdown by department of weekly totals. </body> <attach format="rtf" name="myAttach.rtf" srcType="report"> <include src="report"/> </attach> <foreach> <attach format="pdf" name="myattach.pdf" srcType="report" instance="this"> <include src="mainSection"/> </attach> </foreach> </mail>
この例では、部門10の管理者が部門10のレポートを受け取り、部門20の管理者が部門20のレポートを受け取ります。このタグ・セットが有効となるためには、添付されたセクションで使用されている「繰返し」グループに含まれる列を変数が参照する必要があります。つまり、セクションがG_department_id
で繰り返される場合、manager
がそのグループの列である必要があります。
<foreach> <mail id="mgr1090" to="&<manager>@mycompany.com"> <attach format="pdf" name="attach.pdf" srcType="report" instance="this"> <include src="mainSection"/> </attach> </mail> </foreach>
Oracle Reports 12cリリース(12.2.1.3)では、レポートの配布と一括処理におけるPDF暗号化をサポートしています。この機能を使用することで、次のように、レポート出力をPDFセキュリティによって保護できます。
<foreach> <mail id="mgr1090" to="&<manager>@mycompany.com"> <property name="pdfuser" value="&<manager>" /> <attach format="pdf" name="attach.pdf" srcType="report" instance="this"> <include src="mainSection"/> </attach> </mail> </foreach
グループ化されたレポートを一括処理してファイルに配布する場合は、繰返しグループに基づいた変数値またはその他の変数情報を使用してファイル名を指定する必要があります。そうしないと、ファイルが作成されるたびに、前に作成されたファイルが上書きされるおそれがあります。たとえば、department.pdf
の出力ファイル名を指定し、各部門のレポートのインスタンスを個別に出力すると、2番目のdepartment.pdf
ファイルによって最初のdepartment.pdfファイルが上書きされ、3番目のdepartment.pdfファイルによって2番目のdepartment.pdfファイルが上書きされます。その結果、最後の部門のレポートのみが残ることになります。グループ化されたレポートをグループ・インスタンスごとに個別に出力する場合は、変数値を使用してファイル名を指定してください(name="department_&<department_id>.pdf"
など)。
この項で取り上げる例は、次のとおりです。
この例では、レポート全体を含むreport.pdf
というファイルが作成されます。
この例では、レポートのヘッダー・セクションとメイン・セクションで構成されるレポートを含んだ、sections.pdf
というファイルが作成されます。
<file id="a2" name="sections.pdf" format="pdf"> <include src="headerSection"/> <include scr="mainSection"/> </file>
この例では、繰返しグループごとに異なるファイルが作成されます。各ファイルには、関連するグループのメイン・セクションとトレーラ・セクションを結合したレポートが格納されます。メイン・セクションとトレーラ・セクションが、同じグループで繰り返される必要があります。また、変数のファイル名が、"つまり、レポートがdepartment_id
で繰り返され、10から40までの4つの部門が存在する場合は、あるファイルに部門10のメイン・セクションとトレーラ・セクションが収められ、次のファイルに部門20のメイン・セクションとトレーラ・セクションが収められ、残りの部門も同様に処理されます。name
の中の変数値は、G_department_id
グループに含まれている列を参照する必要があります。
<foreach> <file id="file9" name="department_&<department_id>.pdf" instance="this"> <include src="mainSection"/> <include src="trailerSection"/> </file> </foreach>
この例では、レポートがdepartment_id
でグループ化され、10から40までの4つの部門が存在することを前提として、4つのファイルを作成します。それぞれのファイル名はdepartment_10.pdf
、department_20.pdf
、department_30.pdf
およびdepartment_40.pdf
です。
<foreach> <file id="a20" name="department_&<department_id>.pdf" instance="this"> <include src="report"/> </file> </foreach>
この項で取り上げる例は、次のとおりです。
プリンタ名の指定方法は、WindowsとUNIXで異なります。各例では、それぞれの指定方法を示します。
この例では、レポート全体が指定のプリンタに送信されます。
この例では、レポートの2つのセクションがプリンタに送信されます。
この例では、1つのレポートが印刷されます。このレポートは、department_id
などでグループ化されます。そのためには、レポートのすべてのセクションを同じグループで繰り返す必要があります。
この例では、グループ・インスタンスごとに1つずつ印刷ジョブが生成されます。結合されたセクションを、同じグループで繰り返す必要があります。レポートがdepartment_id
で繰り返され、10から40までの4つの部門が存在する場合は、4つの印刷ジョブが生成されます。つまり、部門10に1つのジョブが生成され、残りの部門にも1つずつジョブが生成されます。メイン・セクションとトレーラ・セクションの両方が、department_id
で繰り返される必要があります。
この例が機能するには、repeat on
グループにホスト・プラットフォームの適切なプリンタ名を含んだ列が含まれている必要があります。つまり、printer_name列に適切なプリンタの別名(UNIX)またはプリンタ・サーバー/名前の組合せ(Windows)が含まれている必要があります。たとえば、レポートがdepartment_id
でグループ化される場合は、G_department_id
にprinter_name
列が必要となります。printer_name
が部門に関連付けられているとすると、部門10のレポートが部門10のプリンタに印刷され、部門20のレポートが部門20のプリンタに印刷されます(以下同様)。
<foreach> <printer id="a60" name="&printer_name" instance="this"> <include src="mainSection"/> </printer> </foreach>
各グループ・インスタンスは、個別の印刷ジョブに相当します。各印刷ジョブは、関連する部門のプリンタに送信されます。
destype
を使用すると、配布時に、Oracle Reportsで使用可能なカスタムの宛先またはプラガブル宛先を定義できます。第20.3.9項「destype」を参照してください。この項では、次の宛先の例について説明します。
この例では、レポート出力をOracle Portalの宛先に送信する場合の汎用タグ構造を示します。DESTYPE=ORACLEPORTAL
を使用してレポート出力をOracle Portalに配信するときは、レポート出力はPAGEGROUPフォルダに作成されます。
<destinations> <destype id="customforPortal" name="oraclePortal"> <property name="outputpage" value="sample_report"/> <property name="statuspage" value="Reports_Status"/> <property name="pagegroup" value="REPORTS_OUTPUT"/> <property name="itemtitle" value="MyReport"/> <include src="report"/> </destype> </destinations>
この例では、レポート出力をFTPの宛先に送信する場合の汎用のタグ構造を示します。
<destinations> <foreach> <destype id="ftp1" name="ftp" instance="this" format="pdf"> <property name="desname" value="ftp://username:passwd@ftpServer/dir/myreport_&< DEPARTMENT_NAME>.pdf"/> <include src="mainSection"/> </destype> </foreach> </destinations>
この例では、レポート出力をWebDAVの宛先に送信する場合の汎用のタグ構造を示します。
<destinations> <foreach> <destype id="webdav1" name="webdav" instance="this" format="pdf"> <property name="desname" value="http://user:passwd@WebDAVServer/dir/myreport_&< DEPARTMENT_NAME>.pdf"/> <include src="mainSection"/> </destype> </foreach> </destinations>
この例では、レポート出力をFAXの宛先に送信する場合の汎用のタグ構造を示します。
<destype id="faxdest" name="fax"> <property name="number" value="123456789"/> <include src="report"/> </destype>
これとは別に、使いやすさを考慮して、次のようなより具体的なカスタムのタグ構造を指定することもできます。
<fax id="faxdest" number="123456789"> <include src="report"/> </fax>
注意: distribution.xsl ファイルを変更した後は、そのファイルを同じ位置に同じファイル名で保存する必要があります。Oracle Reportsでは、宛先を解決する際に自動的にこのファイルが検索されます。 |