HTTP入力

6 分読む 最終更新日 2023年01月11日

HTTP入力ノード

注: このノードは、あらゆる形式のファイルを動作対象としています。

HTTP入力ノードでは、Webサービスを通じてアップロードされたドキュメントを受信します。複数のワークフローで、このノードを実行できます。ただし、各ノードには一意のワークフロー別名が必要です。ドキュメントの送信先となるターゲットワークフローは、URLで指定されるリクエストパラメーターの1つである、ワークフロー別名によって決まります。任意のタイプのファイルをこのノードに送信できます。

HTTP入力ノードを作成する

HTTP入力 ノードアイコンをワークフロービルダーキャンバスにドラッグすることで、HTTP入力 ノードをワークフローに追加できます。アイコンをダブルクリックすると、 [HTTP入力ノード] ウィンドウが開きます。

HTTP入力ノード

  • [有効] チェックボックスをオンにして処理が実行されるようにします。オフにすると、この処理は無視されます。ドキュメントは、ノードが存在していないかのように通過します(つまり、既定のパスまたは「Y(はい)方向の」パスを進み続けます)。無効になっているノードでは、論理条件やエラー条件がチェックされません。

  • [ノード名] フィールドに、HTTP入力ノードに付ける、わかりやすい名前を入力します。

  • [説明] フィールドに、HTTP入力ノードの説明を入力します。これは必須ではありませんが、複数の処理を相互に区別するのに役立ちます。説明が長い場合、このフィールドにマウスを合わせるとその内容全体を読むことができます。

  • [ワークフロー別名] フィールドに、各HTTP入力ノードの一意の名前を入力します。この別名は、ファイルがアップロードされたときに実行する必要があるワークフローを識別するために使用されます。

    注: 使用できるのは、英数字と2つの特殊文字(「-」と「_」)だけです。

  • 変更を保存するには、[保存]ボタンを選択します。 [キャンセル] を選択してウィンドウを閉じると、変更は保存されません。

  • オンラインヘルプにアクセスするには、 [ヘルプ] ボタンを選択します。

    注: IPアドレスとポート番号は、インストールされているDispatcher Phoenix Webで使用されているものと同じです。

HTTP入力ノードを使う

サードパーティーのHTTPジョブ送信アプリケーションを使用して、ワークフローの HTTP入力 ノードにジョブを送信できます。そのために、Dispatcher Phoenix WebのWebサービスを利用できます。

次のHTTP入力ノード画面では、[Webサービス設定]ボックスにサンプルURLが表示されます。

HTTP入力ノード

サンプル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入力ノードに送信され、その後出力フォルダーに移動されます。

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つずつノードに送信し、数秒待ってから次のファイルを送信してください。