HttpStart - HTTPから実行するフローの開始

Webブラウザから呼び出すなどHTTPからのリクエストで実行するフローのための開始コンポーネントです。
WebLoginコンポーネントと連携してユーザーがログインされていなかったりログインユーザーに権限がない場合にはエラーとすることができます。

■ストリーム情報

入力フォーマットNONE
接続数0
説明 入力ストリームは定義されません。
開始コンポーネントでは入力ストリームがそのまま出力ストリームとするため出力ストリームのみを定義します。
出力フォーマットParameterList,MIME,Text,XML,JSON,CSV,Binary
説明 送信されてきたリクエストのボディを出力する場合は、ボディに対応するストリームの型を指定します。
リクエスト全体を出力する場合は、MIMEを指定します。
HTMLフォームのパラメーターを取得する場合は、ParameterListを指定します。詳しくは、下記トピック「パラメーターの取得方法」を参照してください。

■コンポーネントプロパティ

名前プロパティ型マッピング説明
トランザクション化boolean- フロー内の各コンポーネントのトランザクション処理をいつ実行するかを指定します。
処理方法によってアイコンが切り替わります。
はい [true] - フロー終了時にすべてのトランザクションがまとめてコミットまたはロールバックします。
いいえ [false] - フロー内の各コンポーネントの実行後にコミットします。
チェックポイントを使用choice- チェックポイントを使用するかを指定します。
処理方法によってアイコンが切り替わります。
チェックポイントの詳細については、「はじめに」-「詳細なトピック」-「フローの構成要素」-「チェックポイントと再実行」を参照してください。
はい [True] - チェックポイントフローとなりチェックポイントを保存します。
いいえ [False] - チェックポイントを使用しません。
ステータスstring- チェックポイントのステータスを指定します。
ここで指定したステータスは管理コンソールの「状態」-「フロー」-「ステータス一覧」画面の「チェックポイント」欄に表示されます。
指定しなかった場合はコンポーネントの名前となります。
チェックポイントの再実行時にステータスが変更されているとエラーになりますので、再実行前にステータスは変更しないようにしてください。
リトライ回数choice- リクエストが正常に終了しなかったときに自動的に再実行する回数を指定します。再実行しない場合は0を指定します。
システム設定 [SystemDefault] - 管理コンソールの「設定」-「サービス」-「フロー」-「フローエンジン」画面で設定する「チェックポイント再実行回数」を使用します。
リトライ間隔(秒)choice- 「リトライ回数」プロパティで再実行する回数を指定した場合に、再実行するまでの間隔を秒単位で指定します。
システム設定 [SystemDefault] - 管理コンソールの「設定」-「サービス」-「フロー」-「フローエンジン」画面で設定する「チェックポイント再実行インターバル」を使用します。
別サーバーリトライboolean- リクエストが正常に終了しなかったときに、他のサーバーからの再実行を許可するかを指定します。
はい [true] - 他のサーバーからの再実行を許可します。
いいえ [false] - 他のサーバーからの再実行を許可しません。
大容量ストリームを使用boolean- フロー内のデータを処理するために大容量ストリームを使用するかどうかを指定します。
フローが大容量のデータを処理することが予想される場合、このプロパティを「はい」に設定するとメモリ使用量が軽減されます。特にFileGetコンポーネントなどのファイル操作コンポーネント、および、RDBGetコンポーネントなどのデータベース操作コンポーネントでの大容量データ処理に対して、大容量ストリームは効果を発揮します。
はい [true] - 大容量ストリームを使用します
いいえ [false] - 大容量ストリームを使用しません
パラメーターのエンコーディングchoice- HTMLフォームのパラメーターを解釈する際のエンコーディングを指定します。
HTMLフォームのパラメーターを処理しないフローでは使用しません。
自動判別 [(AutoDetect)] - (AutoDetect)を指定すると自動判別が行われますが、期待されたように自動判定されない可能性があります。
utf-8 [utf-8] - unicode utf-8
shift_jis [shift_jis] - シフトJIS
euc-jp [euc-jp] - EUC-JP
iso-2022-jp [iso-2022-jp] - ISO-2022-JP
utf-16 [utf-16] - unicode utf-16
Windows-31J [Windows-31J] - Windows-31J
WebLoginをチェックするboolean入力&出力WebLoginコンポーネントによるログインをチェックするかどうかを指定します。
はい [true] - WebLoginコンポーネントによるログインをチェックし、ログインされていなければエラーにします。
いいえ [false] - WebLoginコンポーネントによるログインをチェックしません。
WebLoginで必要な権限string入力&出力WebLoginをチェックするはいの場合にログインユーザーに必要な権限を設定します。
権限は「,」で区切って複数設定することができます。
実行権限名string入力&出力

[非推奨]WebLoginコンポーネントの追加に伴いこのプロパティは非推奨となりました。WebLoginコンポーネントが追加される前のバージョンで作成したフローで、値が設定されている場合のみこのプロパティが表示されます。

設定した実行ユーザーがこのフローを実行するために必要な権限を指定します。
空の場合、権限はチェックされず、実行ユーザーの設定も必要ありません。
Cookiecategory入力&出力 HTTPリクエストのCookieの値を取得します。
名前のフィールドにCookieの名前を定義しておくと、フローの実行時に値を取得します。 このプロパティは自動的にストリーム変数になります。本コンポーネントの後に連結したマッパーで、ストリーム変数として見えるようになっています。ストリーム変数については、フローサービスマニュアル「はじめに」-「詳細なトピック」-「フローの構成要素」-「変数」-「ストリーム変数」の「コンポーネント定義のストリーム変数」を参照してください。
Headercategory入力&出力 HTTPリクエストのヘッダーの値を取得します。
名前のフィールドにヘッダーの名前を定義しておくと、フローの実行時に値を取得します。 このプロパティは自動的にストリーム変数になります。本コンポーネントの後に連結したマッパーで、ストリーム変数として見えるようになっています。ストリーム変数については、フローサービスマニュアル「はじめに」-「詳細なトピック」-「フローの構成要素」-「変数」-「ストリーム変数」の「コンポーネント定義のストリーム変数」を参照してください。
URLパラメーターcategory入力&出力 HTTPリクエストのURLパラメーターの値を取得します。
名前のフィールドにパラメーターの名前を定義しておくと、フローの実行時に値を取得します。 このプロパティは自動的にストリーム変数になります。本コンポーネントの後に連結したマッパーで、ストリーム変数として見えるようになっています。ストリーム変数については、フローサービスマニュアル「はじめに」-「詳細なトピック」-「フローの構成要素」-「変数」-「ストリーム変数」の「コンポーネント定義のストリーム変数」を参照してください。

■トランザクション処理

コミット何もしません。
ロールバック何もしません。

■エラー処理

タイプパラメーターエラー処理フロー
へのストリーム
エラー
コード
説明
汎用 なし コンポーネントの入力ストリーム なし パラメーターがフィールド定義のデータ型に変換できなかった場合
なし 実行権限名 が指定され、実行ユーザーが存在しない場合
なし 実行権限名 が指定され、実行ユーザーにその権限がない場合
3チェックポイントの保存に失敗した場合
ログインされていない なし コンポーネントの入力ストリーム なし WebLoginをチェックするはいでログインされていない場合
必要な権限がない「必要な権限がないのパラメーター 」
を参照してください。
コンポーネントの入力ストリーム なし WebLoginをチェックするはいでログインユーザーに必要な権限がない場合

■「必要な権限がない」のパラメーター

No.名前説明
1UserNameログインユーザー名
2Authority不足している権限名

■リクエストボディの取得方法

受信したHTTPリクエストのリクエストボディを出力ストリームに設定するには、リクエストボディの形式に応じて次のように出力ストリーム型を指定します。

出力ストリーム型取得するデータ
TextContent-Typeがtext/plainなどのテキスト形式の場合
XMLContent-Typeがapplication/xmlなどのXML形式の場合
JSONContent-Typeがapplication/jsonなどのJSON形式の場合
CSVContent-Typeがtext/csvなどのCSV形式の場合
BinaryContent-Typeがapplication/octet-streamなどのバイナリ形式の場合

■リクエスト全体の取得方法

リクエスト全体をMIMEとして取得し、後続のMIMEDecodeコンポーネントなどでリクエストを解析するには、出力ストリーム型をMIMEに指定します。
どのようなリクエストが送信されてきたのかを確認するデバッグ用途などのために、直後にFilePutコンポーネントを配置し、リクエスト全体をテキストファイルとして保存するという使い方も可能です。

■パラメーターの取得方法

パラメーターにはHTMLフォームのパラメーターと、URLパラメーターの2種類があります。

HTMLフォームのパラメーターを取得する

HTMLフォームのパラメーターを取得するには、出力ストリーム型をParameterListに指定し、HTMLフォームのinputタグのname属性と同じ名前をParameterListのフィールド名に定義します。フィールド名を定義しておくと、フローの実行時に値を取得して自動的に設定されます。フィールドのデータ型にIntegerなどの数値型を指定した場合、渡されたパラメーターがそのデータ型に変換できない場合はnullになります。
定義したパラメーターがHTMLフォームに存在しなかった場合はフィールドの値としてnullが設定されます。HTMLフォームのパラメーターが空文字列だった場合はフィールドの値として空文字列が設定されます。

複数の値を取得する場合

<Input type="checkbox"/> のようにひとつのパラメーターに複数の値が設定される場合、データ型にString[]を指定します。

ファイルを取得する場合

<Input type="file"/> を扱う場合、パラメーター名で指定したフィールドでファイル本体を取得できます。通常はデータ型をBinaryに指定します。データ型にStringを指定した場合、パラメーターのエンコーディング で指定したエンコーディングで文字列化されます。
また、ファイル名を取得するには、フィールド名に「<パラメーター名>_filename」という名前を定義します。

URLパラメーターを取得する

URLパラメーターを取得するには、URLパラメーターの名前フィールドにURLパラメーターの名前を定義します。フィールド名を定義しておくと、フローの実行時に値を取得して自動的に設定されます。フィールドのデータ型にIntegerなどの数値型を指定した場合、渡されたパラメーターがそのデータ型に変換できない場合はnullになります。また、定義したパラメーターがHTMLフォームに存在しなかった場合はフィールドの値としてnullが設定されます。

上記に加えて、出力ストリームがMIMEの場合は、URLパラメーター名を公開フロー変数として定義しておくと、フローの実行時に値が公開フロー変数値として設定されます。また、出力ストリームがParameterListの場合はURLパラメーターもParameterListのフィールドに設定されます。

以下のサンプルフォームからHTTP(POST)によって投入されたMIMEのボディーを実行時にデコードして内容をParameterListに出力する例を示します。

サンプルフォーム(HTML)

<html>
<head>
<title>レポート送信</title>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<h1>レポート送信</h1>
<form method="post" ENCTYPE="multipart/form-data" action="http://localhost:21380/guest/sampleurl">
<input name="success_url" type="hidden" value="">
<input name="fail_url" type="hidden" value="">
タイトル:<br/><input type="text" size="64" name="title"/ ><br/>
本文:<br/><textarea rows="10" cols="50" name="body"></textarea><br/>
送信先:<br/><input type="checkbox" name="addr" value="id01">管理者</input>
<br/><input type="checkbox" name="addr" value="id02">リーダー</input>
<br/><input type="checkbox" name="addr" value="id03">担当者</input><br/>
添付ファイル:<br/><input name="fileupload" type="file" size="64"><br/>
<br/>
<input type="submit" value="送信">&nbsp;&nbsp;<input type="reset" value="リセット">
</form>
</body>
</html>

入力ストリーム(MIME)

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: ja
Content-Type: multipart/form-data; boundary=---------------------------7d62032549056e
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; InfoPath.1)
Host: localhost:21380
Content-Length: 4614
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: ASTERIA_FLOWSERVICE=ae00969c-fafc-49ec-ae43-a0166b7c949a

-----------------------------7d62032549056e
Content-Disposition: form-data; name="success_url"


-----------------------------7d62032549056e
Content-Disposition: form-data; name="fail_url"


-----------------------------7d62032549056e
Content-Disposition: form-data; name="title"

タイトル部分の文字列です。
-----------------------------7d62032549056e
Content-Disposition: form-data; name="body"

本文部分の文字列です。
-----------------------------7d62032549056e
Content-Disposition: form-data; name="addr"

id02
-----------------------------7d62032549056e
Content-Disposition: form-data; name="addr"

id03
-----------------------------7d62032549056e
Content-Disposition: form-data; name="fileupload"; filename="C:\work\sample.xfp"
Content-Type: application/octet-stream

(添付ファイルの内容)

-----------------------------7d62032549056e--

出力ストリームのParameterListのフィールドを以下のようにHTMLフォームのinputタグのname属性と同じ名前で指定しておくと、フロー実行時に値が自動取得されます。また、フィールド名に「<パラメーター名>_filename」という名前を定義しておくと、ファイル名またはファイルパスを取得できます。ファイル名とファイルパスのどちらの値が取得できるかはHTTPリクエストを送信するブラウザーによります。

フィールド名データ型
success_urlString
fail_urlString
titleString
bodyString
addrString[]
fileuploadBinary
fileupload_filenameString