HTTP入力
注: このノードは、あらゆる形式のファイルを動作対象としています。
HTTP入力ノードでは、Webサービスを通じてアップロードされたドキュメントを受信します。複数のワークフローで、このノードを実行できます。ただし、各ノードには一意のワークフロー別名が必要です。ドキュメントの送信先となるターゲットワークフローは、URLで指定されるリクエストパラメーターの1つである、ワークフロー別名によって決まります。任意のタイプのファイルをこのノードに送信できます。
HTTP入力ノードを作成する
HTTP入力 ノードアイコンをワークフロービルダーキャンバスにドラッグすることで、HTTP入力 ノードをワークフローに追加できます。アイコンをダブルクリックすると、 [HTTP入力ノード] ウィンドウが開きます。
-
[有効] チェックボックスをオンにして処理が実行されるようにします。オフにすると、この処理は無視されます。ドキュメントは、ノードが存在していないかのように通過します(つまり、既定のパスまたは「Y(はい)方向の」パスを進み続けます)。無効になっているノードでは、論理条件やエラー条件がチェックされません。
-
[ノード名] フィールドに、HTTP入力ノードに付ける、わかりやすい名前を入力します。
-
[説明] フィールドに、HTTP入力ノードの説明を入力します。これは必須ではありませんが、複数の処理を相互に区別するのに役立ちます。説明が長い場合、このフィールドにマウスを合わせるとその内容全体を読むことができます。
-
[ワークフロー別名] フィールドに、各HTTP入力ノードの一意の名前を入力します。この別名は、ファイルがアップロードされたときに実行する必要があるワークフローを識別するために使用されます。
注: 使用できるのは、英数字と2つの特殊文字(「-」と「_」)だけです。
-
変更を保存するには、[保存]ボタンを選択します。 [キャンセル] を選択してウィンドウを閉じると、変更は保存されません。
-
オンラインヘルプにアクセスするには、 [ヘルプ] ボタンを選択します。
注: IPアドレスとポート番号は、インストールされているDispatcher Phoenix Webで使用されているものと同じです。
HTTP入力ノードを使う
サードパーティーのHTTPジョブ送信アプリケーションを使用して、ワークフローの HTTP入力 ノードにジョブを送信できます。そのために、Dispatcher Phoenix WebのWebサービスを利用できます。
次のHTTP入力ノード画面では、[Webサービス設定]ボックスにサンプルURLが表示されます。
サンプルURLの値は、HTTPジョブ送信アプリケーションによるデータ(POST)の送信先です。 HTTPを使用してHTTP入力ノードにデータを送信するためのURL値(ターゲットファイル名とワークフロー別名を含む)を、サードパーティーのジョブ送信アプリケーションを使用して指定します。
URLの形式は以下のテンプレートに従ってください。
http://[ipaddress]:[port]/jobsubmission/api-1/workflows?file=[filename]&uniquename=[Workflow Alias Name]
以下は、角かっこで囲まれた値の詳細です。
- ipaddress: Dispatcher Phoenix Webが動作するサーバーのIPアドレス。
- port: Dispatcher Phoenix Webが動作するサーバーのポート番号。
- filename: サードパーティーのアプリケーションから送信されてきたファイルの名前。
- Workflow Alias Name: HTTP入力ノード設定画面で入力された[ワークフロー別名]の値。上記の例では、 test という値が設定されています。データ取得先(GET)に対するワークフローの別名を設定します。HTTPを使用してHTTP入力ノードにデータを送信するときに、この値が宛先として使用されます。
サードパーティーアプリケーションの構成設定を使用して上記のURLを指定します。このURLを使用して、ワークフローにファイルを送信できるようになります。角かっこの値を使用して、ワークフローにファイルがマッピングされます。
Webサーバー上でのWebサイトのホスティングについての詳細は、 DP Webホスティングオプション を参照してください。
HTTP入力ワークフローのサンプル
HTTP入力ノードを作成し、サードパーティーアプリケーションに正しいURL情報を設定すると、ワークフローにジョブを送信できるようになります。
サンプルワークフローでは、サードパーティーアプリケーションからのジョブがHTTP入力ノードに送信され、その後出力フォルダーに移動されます。
サードパーティーアプリケーション経由で入力されたURL情報に、Dispatcher Phoenix Webのワークフローに関する正しい角かっこで囲まれた値の情報が含まれている場合、この機能は説明どおりに動作します。
ファイルアップロードのサンプルコード
Curl コマンドラインコードのサンプル
ワークフローのHTTP入力ノードを使用したジョブのアップロードには、以下のCurlコマンドラインコードを使用できます。
curl -i -X POST -H "Content-Type: application/pdf" "http://127.0.0.1:44350/jobsubmission/api-1/workflows?file=A4.pdf&uniquename=test" --data-binary "@./sample.pdf"
Curlコマンドを使用する場合は、前のセクション1.2で説明している正しいURLを指定します。 以下のリンクからCurlコマンドラインツールをダウンロードしてください。
https://winampplugins.co.uk/curl/
このツールに関する詳細については、HTTP入力ノードにHTTPジョブを送信するために使用する、サードパーティーアプリケーションのWebサイトをご確認ください。
JAVAサーバーコードのサンプル
ワークフローのHTTP入力ノードを使用したジョブのアップロードには、以下のJavaサーバーコードを使用できます。
package httpnodes;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.nio.file.Files;
public class HttpIn {
public static void main(String args[]) throws MalformedURLException, IOException{
//Update the URL as per the configuration below.
String url = "http://127.0.0.1:44350/jobsubmission/api-1/workflows?file=sample.pdf&uniquename=test";
String charset = "UTF-8";
//update the location of the file here.
File sampleFile = new File("C:\\Users\\test.user\\Desktop\\Test\\input\\sample.pdf");
String boundary = Long.toHexString(System.currentTimeMillis());
String CRLF = "\r\n";
URLConnection connection = new URL(url).openConnection();
connection.setDoOutput(true);
connection.setRequestProperty("Content-Type", "application/pdf; boundary=" + boundary);
try (
OutputStream output = connection.getOutputStream();
PrintWriter writer = new PrintWriter(new OutputStreamWriter(output, charset), true);
) {
//send file
writer.append("--" + boundary).append(CRLF);
writer.append("Content-Disposition: form-data; name=\"file\"; filename=\"" + sampleFile.getName() + "\"").append(CRLF);
writer.append("Content-Type: text/plain; charset=" + charset).append(CRLF);
writer.append(CRLF).flush();
Files.copy(sampleFile.toPath(), output);
output.flush();
writer.append(CRLF).flush();
writer.append("--" + boundary + "--").append(CRLF).flush();
}
int responseCode = ((HttpURLConnection) connection).getResponseCode();
System.out.println(responseCode); // Should be 200 for success
}
}
PHPサーバーコードのサンプル
ワークフローのHTTP入力ノードを使用したジョブのアップロードには、以下のPHPサーバーコードを使用できます。
<?php
//Update the URL as per the configuration below.
$request = curl_init('http://127.0.0.1:44350/jobsubmission/api-1/workflows?file=sample.pdf&uniquename=test');
curl_setopt($request, CURLOPT_POST, true);
curl_setopt(
$request,
CURLOPT_POSTFIELDS,
array(
'file' => '@' . realpath('C:/Users/test.user/Desktop/Test/input/sample.pdf') //update the location of the file here.
));
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
echo curl_exec($request);
curl_close($request);
?>
注: HTTP入力ノードを使用するには、Dispatcher Phoenix Webサーバーがインストールされている必要があります。
注: HTTP入力ノードでは、1つのリクエストに対して複数のファイルは受け入れられません。ファイルは一度に1つずつノードに送信し、数秒待ってから次のファイルを送信してください。