17
All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 i FW ファイルアップロード・ダウンロード機能利用ガイド Version 1.1 2016 9 21 富士通株式会社

Version 1...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 4 第4章 作業詳細 各作業の詳細を以下に示します。 4.1 リクエストの送信

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Version 1...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 4 第4章 作業詳細 各作業の詳細を以下に示します。 4.1 リクエストの送信

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016

i

FW

ファイルアップロード・ダウンロード機能利用ガイド

Version 1.1

2016年 9月 21日 富士通株式会社

Page 2: Version 1...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 4 第4章 作業詳細 各作業の詳細を以下に示します。 4.1 リクエストの送信

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016

ii

改訂履歴

改訂

No. 日付 Version 章 No. 項 No. 改訂内容

1 2015/12/02 1.0 - - 新規作成

2 2016/09/21 1.1 4 4.1.3 ・text/plan を text/plain に修正。

・章立てを修正。

Page 3: Version 1...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 4 第4章 作業詳細 各作業の詳細を以下に示します。 4.1 リクエストの送信

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016

iii

目次

第 1 章 はじめに ............................................................................................................................................................ 1

第 2 章 ファイルアップロード機能 ............................................................................................................................. 2

第 3 章 ファイルダウンロード機能 ............................................................................................................................ 3

第 4 章 作業詳細 ........................................................................................................................................................... 4

4.1 リクエストの送信 .............................................................................................................................................................................................. 4

メソッド ............................................................................................................................................................................................................ 4

ヘッダ .............................................................................................................................................................................................................. 4

multipart の内部構造 ............................................................................................................................................................................... 4

4.2 レスポンスの受信 ............................................................................................................................................................................................ 6

ヘッダ .............................................................................................................................................................................................................. 6

ボディ部 ......................................................................................................................................................................................................... 6

4.3 フレームワーク定義の設定......................................................................................................................................................................... 7

定義ファイル ................................................................................................................................................................................................ 7

4.4 SIMPLEEVENTFLOW定義の編集 ................................................................................................................................................................... 8

4.5 業務処理の実装 .............................................................................................................................................................................................. 9

実行対象のメソッドの引数設定 .......................................................................................................................................................... 9

業務処理の実装 ...................................................................................................................................................................................... 13

4.5.2.1 アップロードファイルの情報を取得し業務処理を実装する例 .................................................................................... 13

4.5.2.2 ダウンロードファイル情報を返却するための処理を実装する例............................................................................... 14

Page 4: Version 1...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 4 第4章 作業詳細 各作業の詳細を以下に示します。 4.1 リクエストの送信

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016

1

第1章 はじめに

本資料は、ファイルのアップロード・ダウンロード機能の利用方法について説明します。

Page 5: Version 1...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 4 第4章 作業詳細 各作業の詳細を以下に示します。 4.1 リクエストの送信

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016

2

第2章 ファイルアップロード機能

ファイルアップロード機能は http リクエストにファイルデータを設定し、対応する業務処理に連携することでファイルのアップロードを実現するための機能です。

ファイルアップロード処理時に対象のファイルに問題がないか以下のチェックを行います。チェックで問題となった場合は、http レスポンスにエラーコードを返却し処理を中断します。

クライアント、フレームワーク、プラグイン、業務処理でファイルアップロード機能として必要な作業は以下の通りです。

ファイルアップロード機能に関連する機能配置の概要は以下の通りです。

チェック項目 デフォルト値 備考

ファイルのアップロード数の上限チェック 100 個 フレームワーク定義で任意設定可能です。

アップロードファイルの単体ファイルサイズチェック 1000000000 バイト フレームワーク定義で任意設定可能です。

アップロードファイルの1リクエストに対する全体サイズチェック 1000000000 バイト フレームワーク定義で任意設定可能です。

作業を行う箇所 必要となる作業 説明 備考

クライアント リクエストの送信 http リクエストでファイルデータを含むデータを送信します。

送信するデータ形式は FW の指定したインターフェースで設定してください。

フレームワーク フレームワーク定義の設定 フレームワークの共通設定を定義している定義ファイル(xFrameworkConfig.xml)に、ファ

イルアップロード・ダウンロード処理に関連する値を設定します。

フレームワークの定義ファイルについては別紙「FW

全体定義体ガイド」を参照してください。

プラグイン SimpleEventFlow 定義の編集 FWプラグインの「SimpleEventFlowデザイナー」にて SimpleEventFlow定義の編集を行

います。

モデルベースオブジェクト(MBC)のパラメーターリストに「BPM_CONTEXT」を定義しま

す。

SimpleEventFlow 定義、SimpleEventFlow デザイナー

と関連する用語については、別紙「SimpleEventFlow

定義ツールマニュアル」を参照してください。

業務処理 業務処理の実装

モデルオブジェクトクラス(MBC)にて、IBPMContext よりアップロードファイルに関連す

る値を取得する処理を実装します。取得した IBPMContext よりアップロードファイル情

報を取得し、アップロード処理を実装します。

フレームワーク

モデルオブジェクト(MBC)

クライアント

フレームワーク定義

(xFrameworkConfig.xml)

BPM IBPMContext

業務処理

プラグイン (BPM 資産の自動生成)

HTTP リクエストにファイルの

データを設定し送信します。

multipart 形式により複数ファイルを

送信できます。

SimpleEventFlow 定義

Page 6: Version 1...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 4 第4章 作業詳細 各作業の詳細を以下に示します。 4.1 リクエストの送信

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016

3

第3章 ファイルダウンロード機能

ファイルダウンロード機能は http レスポンスに業務処理で書き込んだファイルの情報を返却することでファイルのダウンロードを実現するための機能です。

リクエストについてはフレームワークで許可している GET,POST,PUT,DELETE のメソッドが使用可能です。

クライアント、フレームワーク、プラグイン、業務処理でファイルダウンロード機能として必要な作業は以下の通りです。

ファイルダウンロード機能に関連する機能配置の概要は以下の通りです。

作業を行う箇所 必要となる作業 説明 備考

クライアント レスポンスの受信 http レスポンスで FW が設定したファイルデータを受信します。

フレームワーク フレームワーク定義の設定 フレームワークの共通設定を定義している定義ファイルに、ファイルアップロード・ダウ

ンロード処理に関連する値を設定します。

フレームワークの定義ファイルについては別紙「FW

全体定義体ガイド」を参照してください。

プラグイン SimpleEventFlow 定義の編集 FWプラグインの「SimpleEventFlowデザイナー」にて SimpleEventFlow定義の編集を行

います。

モデルベースオブジェクト(MBC)のパラメーターリストに「BPM_CONTEXT」を定義しま

す。

SimpleEventFlow 定義、SimpleEventFlow デザイナー

と関連する用語については、別紙「SimpleEventFlow

定義ツールマニュアル」を参照してください。

業務処理 業務処理の実装

モデルベースオブジェクトクラス(MBC)にて、IBPMContext より値を取得する処理を実

装します。取得した IBPMContext よりアップロードファイル情報を取得し、

アップロード処理を実装します。

フレームワーク

モデルオブジェクト(MBC)

クライアント

フレームワーク定義

(xFrameworkConfig.xml)

BPM

IBPMContext

業務処理

プラグイン (BPM 資産の自動生成)

ファイルのデータが設定されている

http レスポンスを受信します。

ファイルは1レスポンスにつき1ファイ

ルのみ設定されています。

SimpleEventFlow 定義

Page 7: Version 1...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 4 第4章 作業詳細 各作業の詳細を以下に示します。 4.1 リクエストの送信

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016

4

第4章 作業詳細

各作業の詳細を以下に示します。

4.1 リクエストの送信

ファイルアップロードを行う際の http リクエストのインターフェースを以下に示します。

メソッド POST と PUT が使用可能です。

ヘッダ ファイルアップロードに関連する http リクエストヘッダの形式は以下の通りです。

multipart の内部構造 内部構造は http の multipart 形式の記述に準拠してください。

multipart 形式の http リクエストについて、ボディ部の設定は下記の通りに設定します。

①バウンダリ区切り1件目のデータのヘッダとボディ部構造

バウンダリ区切り1件目に IF データ定義にて定義した Json 形式のデータを設定します。

ヘッダの形式は以下の通りです。

ボディ部は IF データ定義の形式の Json データを設定します。IF データ定義に対応する値を特に設定しない場合は{} (空設定、json の囲みのみ設定)をしてください。(しない場合はフレームワークエラーが発生します。)

②バウンダリ区切り2件目以降のヘッダとボディ部構造

バウンダリ区切り2件目以降にアップロードしたいファイルの情報を設定します。

関連するヘッダの形式は以下の通りです。

ボディ部はファイルデータを設定します。

ボディ部の末尾にバウンダリの終了区切り(--を末尾に設定)を設定してください。

フィールド設定 説明 設定

必須/任意

備考

Content-Type: multipart/form-data; boundary=[バウンダリ文字列] ファイルアップロード処理ではマルチパートの形式で受信することを想定しているため、

Content-Type には"multipart/form-data"を設定してください。

必須

フィールド設定 説明 設定

必須/任意

備考

Content-Type: application/json バウンダリの1区切り目は IF データ定義の形式で受信することを想定しているため、

"application/json"を設定してください。

必須

フィールド設定 説明 設定

必須/任意

備考

Content-Type:[任意の設定] アップロードファイルに対応する Content-Type と charset を設定してください。

ただし、値の使用は業務処理に依存します。

任意

Content-Disposition:

filename=[ファイル名]

Content-Disposition ヘッダの filename 引数に

アップロードファイルに対応するファイル名を設定してください。

ただし、値の使用は業務処理に依存します。

任意 ファイル名に日本語等、マルチバイト文字を使

用する場合は URLEncodeを実施する必要があ

ります。

Page 8: Version 1...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 4 第4章 作業詳細 各作業の詳細を以下に示します。 4.1 リクエストの送信

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016

5

multipart の内部構造の例は以下の通りです。

【IF データ定義の値有】

http リクエストヘッダに「Content-Type: multipart/form-data; boundary=FW_REST_SERVER_HANDLE_XF423F__1511E8D8EF800-10.77.11.154」が設定されている場合の内部構造です。

【IF データ定義の値無】

http リクエストヘッダに「Content-Type: multipart/form-data; boundary=FW_REST_SERVER_HANDLE_XF423F__1511E8D8EF800-10.77.11.154」が設定されている場合の内部構造です。

IF データ定義の値が無い場合であっても、バウンダリ区切り1件目は json を設定してください。ボディ部には{}(空設定)を行ってください。

--FW_REST_SERVER_HANDLE_XF423F__1511E8D8EF800-10.77.11.154

Content-type: application/json

{

"string_hankaku" : "test",

"string_zenkaku" : "テスト",

"lastupdate" : "20150501",

"number_long" : 1,

"number_decimal" : 1.1,

"catalog_string" : "01",

"catalog_nmber" : 0

}

--FW_REST_SERVER_HANDLE_XF423F__1511E8D8EF800-10.77.11.154

Content-type: text/plain

Content-Disposition: attachment; filename=uploadfile.txt

ファイルアップロードのデータ(テキストベース)

--FW_REST_SERVER_HANDLE_XF423F__1511E8D8EF800-10.77.11.154

Content-type: text/plain

Content-Disposition: attachment; filename=%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89%E7%94%A8%E8%A9%A6%E9%A8%93%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB.txt

ファイルアップロードのデータ(テキストベース)

--FW_REST_SERVER_HANDLE_XF423F__1511E8D8EF800-10.77.11.154--

--FW_REST_SERVER_HANDLE_XF423F__1511E8D8EF800-10.77.11.154

Content-type: application/json

{}

--FW_REST_SERVER_HANDLE_XF423F__1511E8D8EF800-10.77.11.154

Content-type: text/plain

Content-Disposition: attachment; filename=uploadfile.txt

ファイルアップロードのデータ(テキストベース)

--FW_REST_SERVER_HANDLE_XF423F__1511E8D8EF800-10.77.11.154

Content-type: text/plain

Content-Disposition: attachment; filename=%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89%E7%94%A8%E8%A9%A6%E9%A8%93%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB.txt

ファイルアップロードのデータ(テキストベース)

--FW_REST_SERVER_HANDLE_XF423F__1511E8D8EF800-10.77.11.154--

IF データ定義に対応した Json 形式の

値を設定します。

バウンダリ区切り2区切り目以降はファ

イルの情報を設定します。

ファイル名に日本語等マルチバイト文

字を使用する場合は URLEncode を実

施する必要があります。

{} (空設定)をしてください。

バウンダリの終了区切り。

ファイルデータ箇所

Page 9: Version 1...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 4 第4章 作業詳細 各作業の詳細を以下に示します。 4.1 リクエストの送信

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016

6

4.2 レスポンスの受信

ファイルダウンロードを行う際の http レスポンスのインターフェースを以下に示します。

ヘッダ

ファイルダウンロードに関連する http レスポンスヘッダは以下の通りです。

ボディ部

ボディ部に設定されているストリームがファイルのデータとなります。

フィールド設定 説明 備考

Content-Disposition: attachment; filename=[ファイル名] ダウンロードファイルのファイル名が設定されます。

業務処理でファイル名が設定されない場合は、当フィールドは設定されません。

値の設定有無、設定値については連携した業務処理に依存します。

①Content-Type: [コンテンツ種別]

もしくは

②Content-Type: [コンテンツ種別] ;charset=[エンコード]

ダウンロードファイルのコンテンツ種別とエンコードが設定されます。

業務処理でコンテンツ種別やエンコードが設定されない場合は、当フィールドは設定されません。

値の設定有無、設定値については連携した業務処理に依存します。

⇒コンテンツ種別のみ業務処理で設定した場合は①、

コンテンツ種別とエンコードを業務処理で設定した場合は②が設定されます。

Page 10: Version 1...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 4 第4章 作業詳細 各作業の詳細を以下に示します。 4.1 リクエストの送信

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016

7

4.3 フレームワーク定義の設定

フレームワークで使用している定義ファイルにアップロード処理に関連する値を設定します。設定内容を以下に示します。

定義ファイル

ファイル名:xFrameworkConfig.xml

概要 :フレームワークを構成するモジュールが共通で使用する定義体。

関連する領域の設定は以下の通りです。値の詳細については別紙「FW 全体定義体ガイド」を参照してください。

領域名 定義名

FILE_UTIL temporary.file.path

X71_SV_REQUEST_CHECKER com.fujitsu.xframework.x71.server.check.HttpRequestSizeChecker

X71_SV_REQUEST_CHECKER com.fujitsu.xframework.x71.server.check.HttpRequestCountChecker

Page 11: Version 1...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 4 第4章 作業詳細 各作業の詳細を以下に示します。 4.1 リクエストの送信

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016

8

4.4 SimpleEventFlow 定義の編集

SimpleEventFlow 定義の、モデルベースオブジェクト(MBC)のプロパティ「パラメーターリスト」の格納 RP キーに「BPM_CONTEXT」を設定します。

格納 RP キーに BPM_CONTEXT を設定します。

呼び出し対象のメソッドの引数の順番と合わせる

必要があります。

Page 12: Version 1...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 4 第4章 作業詳細 各作業の詳細を以下に示します。 4.1 リクエストの送信

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016

9

4.5 業務処理の実装

ファイルアップロード・ダウンロード処理で必要となる業務実装を以下に示します。

実行対象のメソッドの引数設定

ファイルアップロード・ダウンロードの処理を行うクラスのインターフェース(IBPMContext)を実行対象メソッドのパラメータに追加します。

IBPMContext のインターフェースは下記の通りです。

クラス名 com.fujitsu.fw.parameter.context.IBPMContext

機能概要 HTTP 連携で設定される情報について格納・編集・取得する機能提供します。

当資料ではファイルアップロード・ダウンロードに関する説明を記述します。

メソッド名 パラメータ 返却値 例外 説明

getUploadFilesSize 無 int 無 ■処理概要

アップロードファイル数を取得します。

■返却値

設定されたアップロードファイル数

getUploadFileContents int index IUploadFileContents 無 ■処理概要

アップロードファイル情報※1を取得します。

アップロードされた順序に対応した index を設定し取得できます。

設定されていない index を指定した場合は null を返却します。

■パラメータ

index - ファイル設定位置(位置は boundary で区切られたダウンロードファイルの順

に 0 から始まります)

■返却値

アップロードファイル情報

createDownloadFileContents 無 IDownloadFileContents 無 ■処理概要

ダウンロードファイル情報※2を作成します。

■返却値

ダウンロードファイル情報

removeDownloadFile 無 無 com.fujitsu.fw.exception.FrameworkException ■処理概要

ダウンロードファイル情報を削除します。

Page 13: Version 1...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 4 第4章 作業詳細 各作業の詳細を以下に示します。 4.1 リクエストの送信

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016

10

※1:アップロードファイル情報:アップロードファイルに関連する情報の取得機能を提供するクラス。インターフェースは以下の通りです。

クラス名 com.fujitsu.fw.url.file.IUploadFileContents

機能概要 アップロードファイルの情報を操作する機能を提供します。

メソッド名 パラメータ 返却値 例外 説明

getUploadFileName 無 String 無 ■処理概要

アップロードファイル名を取得します。

■返却値

アップロードファイル名。未設定の場合は null を返却します。

getUploadFileContentType 無 String 無 ■処理概要

アップロードファイルのコンテンツ種別を取得します。

■返却値

コンテンツ種別。未設定の場合は null を返却します。

getUploadFileStream 無 java.io.InputStream com.fujitsu.fw.exception.FrameworkException ■処理概要

アップロードファイルのストリームを取得します。

■返却値

アップロードファイルのストリーム

getUploadFileHeaders 無 Map<java.lang.String,java.lang.String[]> 無 ■処理概要

アップロードファイルのヘッダ情報を取得します。

■返却値

アップロードフィルのヘッダ情報

Page 14: Version 1...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 4 第4章 作業詳細 各作業の詳細を以下に示します。 4.1 リクエストの送信

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016

11

※2:ダウンロードファイル情報:ダウンロードファイルに関連する情報の作成・取得・削除機能を提供するクラス。インターフェースは以下の通りです。

設定する値(ストリーム、ファイル名、コンテンツ種別、エンコード)は任意設定です。設定していない場合は対応する箇所に値が設定されません。

⇒ストリームが設定されていない場合は、http レスポンスのボディが空となります。

ダウンロードファイル情報を作成した場合、http レスポンスはファイル情報を返却します。

ダウンロードファイルを作成していない場合、もしくは作成後 IBPMContext.removeDownloadFile を実行した場合は、ファイル情報を返却せず、IF データ定義に対応する値を http レスポンスとして返却します。

クラス名 com.fujitsu.fw.url.file.IDownloadFileContents

機能概要 ダウンロードファイルの情報を操作する機能を提供します。

メソッド名 パラメータ 返却値 例外 説明

getOutputStream 無 java.io.OutputStream com.fujitsu.fw.exception.FrameworkException ■処理概要

ダウンロードファイル用のストリームを取得します。

ダウンロードさせたい内容を取得したストリームに書き込みます。

書き込んだ情報がダウンロードファイルの中身となります。

■返却値

ダウンロードファイル用ストリーム

setFileName String filename 無 無 ■処理概要

ダウンロードファイルの名前を設定します。

設定した場合、レスポンスのヘッダに以下の内容が追加されます。

Content-Disposition: attachment; filename=[設定した値]

ファイル名はサーバのデフォルトエンコードで URLEncode されます。

■パラメータ

filename – ダウンロードファイル名

getFileName 無 String 無 ■処理概要

ダウンロードファイル名を取得します。

■返却値

ダウンロードファイル名

setContentType String contentType 無 無 ■処理概要

ダウンロードファイルのコンテンツ種別を設定します。

設定した場合、レスポンスのヘッダに以下の内容が追加されます。

Content-Type: [設定した値]

■パラメータ

contentType – コンテンツ種別

getContentType 無 String 無 ■処理概要

ダウンロードファイルのコンテンツ種別を取得します。

■返却値

コンテンツ種別

setEncode String encode 無 無 ■処理概要

ダウンロードファイルのエンコードを設定します。

設定した場合、レスポンスヘッダが以下の内容が追加されます。

Content-Type: [設定したコンテンツ種別 ;charset=[設定した値]

ただし、setContentType でコンテンツ種別を設定しない場合は、

エンコードは設定されません。

■パラメータ

encode – エンコード

getEncode 無 String 無 ■処理概要

ダウンロードファイルのエンコードを取得します。

■返却値

エンコード

remove 無 無 com.fujitsu.fw.exception.FrameworkException ■処理概要

ダウンロードファイル情報の削除処理を行います。

Page 15: Version 1...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 4 第4章 作業詳細 各作業の詳細を以下に示します。 4.1 リクエストの送信

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016

12

Page 16: Version 1...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 4 第4章 作業詳細 各作業の詳細を以下に示します。 4.1 リクエストの送信

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016

13

業務処理の実装

http リクエストで設定されたアップロードファイルの情報を取得し、業務がファイルアップロード業務に関連する処理を実装します。

また、http レスポンスにダウンロードファイルの情報を返却するために、業務がダウンロードファイル情報を返却するための処理を実装します。

実装例は以下の通りです。

4.5.2.1 アップロードファイルの情報を取得し業務処理を実装する例

public IFDataTypeTextOutput fileUploadDownload(ISessionHandle handle, IFDataTypeTextInput iFDataTypeTextInput, IBPMContext context) {

ILogger logger = this.getLogger();

// 設定されているアップロードファイルの数分処理を行う。

for (int i = 0; i < context.getUploadFilesSize(); i++) {

// アップロードファイル情報を取得する。

IUploadFileContents uploadFile = context.getUploadFileContents(i);

// 設定されているファイル名を取得する。

String filename = uploadFile.getUploadFileName();

// アップロードファイルの中身をストリームで取得する。

try (InputStream is = uploadFile.getUploadFileStream()) {

~ストリームを取得し、業務で必要なアップロード処理を実装する。 ~

} catch (Exception e) {

logger.log(BasicLevel.DEBUG, "アップロードファイル処理に失敗しました。", e);

throw new ModelLogicException(e, "アップロードファイル処理に失敗しました。","ERROR_CODE_FILE");

}

}

~ 以降の処理、記述省略 ~

IBPMContext をパラメータに設定します。

パラメータの位置は ISessionHandle を除き

SimpleEventFlow 定義の編集で設定したパラメータの順となります。

設定されているアップロードファイルの数分

ループしながら各種情報を取得し、アップロード処理を実装します。

Page 17: Version 1...All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016 4 第4章 作業詳細 各作業の詳細を以下に示します。 4.1 リクエストの送信

All Right Reserved, Copyright © FUJITSU LIMITED 2015-2016

14

4.5.2.2 ダウンロードファイル情報を返却するための処理を実装する例

public IFDataTypeTextOutput fileUploadDownload(ISessionHandle handle, IFDataTypeTextInput iFDataTypeTextInput, IBPMContext context) {

ILogger logger = this.getLogger();

// ダウンロードファイル情報を作成

IDownloadFileContents downloadFile = context.createDownloadFileContents();

OutputStream output = downloadFile.getOutputStream();

output.write("ファイルダウンロードのサンプル".getBytes());

// コンテンツ種別を設定

downloadFile.setContentType("text/plain");

// ファイル名を設定(ファイル名はサーバのデフォルトエンコードで URLEncode されます)

downloadFile.setFileName("ダウンロード用試験ファイル.txt");

~ 以降の処理、記述省略 ~

}

IBPMContext をパラメータに設定します。

パラメータの位置は ISessionHandle を除き

SimpleEventFlow 定義の編集で設定したパラメータの順となります。

ダウンロードファイル情報を作成します。

ダウンロードファイル情報を作成した場合、

http レスポンスはファイル情報を返却します。

取得したストリームにファイルの中身を書き込みます。

フレームワークがクローズ処理を行うため、業務処理で

は特にクローズする必要はありません。