JSON 注文を Web サービスで処理する使用シナリオ

このシナリオでは、印刷会社は書籍注文 Web サイトから注文を取得して処理します。各注文は、2 つのジョブチケットで構成されています。1 つのジョブチケットは、書籍の印刷に必要な情報 (印刷ファイルの場所を含む) を提供します。他のジョブチケットは、書籍の表紙を印刷するために必要な情報を提供します書籍と表紙は別の実動プロセスで処理されているので、印刷会社は、注文の処理全体が完了したときに報告する必要があります。Web サイトには、REST Web サービスインターフェースが備わっています。

Web Services Enablement 機能には、このシナリオの展開を示すサンプルオブジェクトが含まれています。

  • RestfulWebServiceWFワークフロー
  • RestfulWebServiceSampleREST Web サービスの入力装置
  • JSON 注文とジョブチケット
  • XPath 表現
  • XSLT スタイルシート
  • RICOH ProcessDirector 指定変更ファイル
  • RestfulWebServiceSampleNotifyREST Web サービスの通知

RestfulWebServiceWFワークフローについて詳しくは、REST Web サービスから取得した注文を処理するワークフローを実行する際の、関連タスクのトピックを参照してください。

書籍注文 Web サイトの要件を確認する

印刷会社は、書籍注文 Web サイトの REST Web サービスと通信するための要件を確認します。 RICOH ProcessDirector は、3 つの Web サービスを呼び出す必要があります。

  • 1 つの Web サービスへの呼び出しは、各書籍注文の JSON 情報を取得します。注文が Web サイトで待機状態になっている場合、Web サービスは各 GET 呼び出しへの応答で 1 件の JSON 注文を返します。待機状態の注文がない場合、Web サービスは呼び出しに応答しません。

    サンプルの JSON 注文の内容:

    {"Order": {"orderId": "ORD1238875463", "customername": "Ricoh"}}

  • 別の Web サービスへの呼び出しは、書籍と表紙のジョブチケットに関する JSON 情報を取得します。

    サンプルの JSON ジョブチケット情報:

    {"JobTicket": [{ "itemnumber": "1182563839", "copies":"4","media" : "Letter Plain","file" : "http://localhost:15080/restapi/Brochure.pdf","type" : "Brochure","title" : "RPDBestSeller"}, { "itemnumber": "1934194376", "copies":"4","media" : "Letter Preprinted","file" : "http://localhost:15080/restapi/Cover.pdf","type" : "Cover" ,"title" : "RPDBestSeller" }]}

  • 3 つ目の Web サービスへの呼び出しは、注文の各完了済みジョブチケットの品目番号を送信します。注文の両方の品目番号が送信されると、Web サービスはジョブ番号と品目番号がリストされた PDF ファイルを作成します。Web サービスは、PDF ファイルをディレクトリーに配置します。

    サンプル PDF ファイルの内容:

    10000001.2 with item number 1182563839 has been processed10000001.1 with item number 1934194376 has been processed

    注意:
  • 3 つのサンプル Web サービスは、書籍注文 Web サイトの Web サービスをシミュレートしますが、これらは Web Services Enablement 機能の一部としてローカルで使用できます。これらの Web サービスは、 RestfulWebServiceSample入力装置、 RestfulWebServiceWFワークフロー内の CallRESTServiceステップ、および RestfulWebServiceSampleNotify通知で作成された特定の要求に対してサンプルデータを返します。
  • サンプル Web サービスは、異なる注文 ID でサンプル注文を生成し、異なる品目番号で複数のサンプルジョブチケットを生成します。サンプル内の他のデータは同じです。

Web サービスへの呼び出しを作成する場合、RICOH ProcessDirector の管理者は次の内容を確認してください。

  • 書籍注文 Web サイトでの認証に必要な値。
  • 各 Web サービスにデータを要求するために必要な値。
  • 各 Web サービスからの応答で提供されるデータの形式。

管理者は、ブラウザーのプラグインを使用して、REST Web サービスに応答を要求する手動テストを実行します。プラグインの例としては、RESTClient for Mozilla Firefox および Boomerang for Google Chrome があります。

JSON の処理を準備する

管理者は、REST Web サービスで返された JSON 注文の内容とジョブチケットを確認して、RICOH ProcessDirector で必要な情報を識別します。次に、Web サービスを呼び出して XML および JSON を処理する RICOH ProcessDirector 機能を判断します。管理者は、RICOH ProcessDirector オブジェクトを決定し、さらに注文とジョブチケットを処理して必要な情報を抽出する一連のステップを決定します。次に、オブジェクトとステップで必要な XPath 表現と XSLT スタイルシートを定義します。

  1. RICOH ProcessDirector で注文とジョブチケットを処理するために、管理者は必要な情報を提供する JSON オブジェクトを識別します。管理者は、これらのオブジェクトの値を RICOH ProcessDirector ジョブプロパティーに割り当てます。
    • ジョブチケットの JSON 情報を取得する Web サービスを呼び出すには、注文 ID を提供する必要があります。また、RICOH ProcessDirector 内のカスタマー名を追跡する必要があります。

      JSON注文オブジェクトの次の2つのメンバーが、これらの値を提供します。 orderIdcustomername

      次のテーブルに、2 つの JSON メンバー、および管理者が情報の抽出に使用する RICOH ProcessDirector ジョブプロパティーの名前を示します。

      JSON メンバー ジョブプロパティーのデータベース名 ジョブプロパティーのユーザーインターフェース名
      orderId Job.Info.Attr3 Custom 3
      customername Job.CustomerName カスタマー名

    • ジョブチケットごとに個別にジョブを作成するには、管理者は品目番号を使用する必要があります。書籍と表紙のために PDF ファイルをダウンロードして印刷するには、管理者はジョブチケット内のファイル、部数、メディアの情報を使用する必要があります。また、RICOH ProcessDirector 内の書籍のタイプとタイトルを追跡する必要もあります。

      JSONジョブチケットオブジェクトの次の6つのメンバーが、これらの値を提供します。 fileitemnumber,、typetitlecopiesmedia

      次のテーブルに、これらの 6 つの JSON メンバー、および RICOH ProcessDirector ジョブプロパティーの名前を示します。

      JSON メンバー ジョブプロパティーのデータベース名 ジョブプロパティーのユーザーインターフェース名
      itemnumber Job.Info.Attr1 Custom 1
      file Job.Info.Attr2 Custom 2
      type Job.Info.Attr4 Custom 4
      title Job.Info.Attr5 Custom 5
      copies Job.Copies 要求されたジョブコピー
      media Job.Media メディア

  2. RICOH ProcessDirector プロセスを設計する前に、管理者は RICOH ProcessDirector オブジェクトと REST Web サービスを呼び出すステップテンプレートを確認します。
    • REST Web サービスの入力装置
    • REST Webサービスの通知
    • CallRESTServiceステップテンプレート

    それぞれがDELETE、GET、PATCH、POST、またはPUT呼び出しを行うことができ、それぞれがJSONまたはXMLを処理できます。

    入力装置は、すべての応答からジョブを作成できます。 また、応答を JSONPath または XPath 表現で評価できます。入力装置が評価を行う場合には、表現を検出するたびにジョブを作成できます。

  3. また管理者は、XML を処理する RICOH ProcessDirector ステップテンプレートも確認します。
    • ApplyXSLTransformステップテンプレートに基づくステップは、ある形式の入力を別の形式の出力に変換できます。例えば、このステップは XML を次の出力に変換できます。
      • RICOH ProcessDirector ジョブまたは文書プロパティーを含むテキストファイル。
      • CreateJobsFromXMLステップへの入力用に別の形式になっている XML ファイル。
    • CreateJobsFromXMLステップテンプレートに基づくステップは、XML 入力ファイルの内容を評価して 1 つ以上の XML ジョブを作成できます。このステップは、独立したジョブまたは子ジョブとして、ジョブを指定されたワークフローに送信できます。

    ApplyXSLTransformおよび CreateJobsFromXMLは JSON を処理しないので、 ConvertJSONToXMLステップテンプレートに基づくステップを使用して、これらのステップへの入力のために JSON を XML に変換できます。

  4. 管理者は、RICOH ProcessDirector プロセスの基本的なコンポーネントを決定します。
    • 書籍注文 Web サイトから JSON の注文を取得するには、管理者は REST Web サービスの入力装置を選択します。

      各応答には 1 件の注文が含まれているので、管理者はすべての応答からジョブを 1 件作成するように、入力装置をセットアップします。

    • 各注文の JSON ジョブチケットを取得するには、管理者は 3 つのステップを選択します。
      • ConvertJSONToXMLステップは、 ApplyXSLTransformステップへの入力のために、JSON の注文を XML に変換します。
      • ApplyXSLTransformステップは、XML の注文に含まれている注文 ID とカスタマー名の値を RICOH ProcessDirectorCustom 3および カスタマー名ジョブプロパティーに変換します。
      • CallRESTServiceステップは、 Custom 3プロパティーの値を使用して JSON ジョブチケットを取得します。
    • ジョブチケットごとにジョブを作成するには、管理者は 2 つのステップを選択します。
      • ConvertJSONToXMLステップは、 CreateJobsFromXMLステップへの入力のために、JSON ジョブチケットを XML に変換します。
      • CreateJobsFromXMLステップは、XPath 表現を使用して応答を評価し、ジョブチケットごとに個別にジョブを作成します。
    • ジョブチケットから情報を抽出し、その情報を使用して PDF 印刷ファイルをダウンロードするには、管理者は 3 つのステップを選択します。
      • ApplyXSLTransformステップは、XML ジョブチケット内の値を RICOH ProcessDirector ジョブプロパティーに変換します。例えば、ダウンロードするファイルの URL は、 Custom 2ジョブプロパティーの値に変換されます。
      • DownloadFileステップは、 Custom 2ジョブプロパティーの値を使用して PDF 印刷ファイルをダウンロードします。
      • AssignJobValuesステップは、入力データストリームを PDF に設定して、処理するファイルのタイプをワークフロー内の他のステップに通知します。
    • 注文内の両方の PDF ジョブが印刷されたら、管理者は、注文品の出荷準備が整ったことを書籍注文 Web サイトに通知します。Web サイトが REST を使用しているので、管理者は REST Web サービスの通知を選択します。
  5. CreateJobsFromXMLステップでは、ジョブチケットを識別する XML Path Language (XPath) 表現が必要です。表現を定義するには、管理者は XML を調べてジョブチケットを確認します。
  6. XML エレメントをジョブプロパティーに変換するには、ApplyXSLTransformステップごとに XSLT スタイルシートが必要です。管理者は、XSLTツール(Altova MapForceなど)を使用して、2つのXSLTスタイルシートを作成します。
    • order-to-overrides-file XSLT スタイルシートは、注文の注文 ID およびカスタマー名エレメントをジョブプロパティーに変換します。
    • job-ticket-to-overrides-file XSLT スタイルシートは、ジョブチケットのファイル、品目番号、タイプ、タイトル、部数、メディアなどのエレメントをジョブプロパティーに変換します。

    ApplyXSLTransformステップは、ジョブプロパティーをテキストファイルに出力します。各 出力ファイルプロパティーの値は、ジョブのスプールディレクトリー内の指定変更ファイルを指定します。

    RICOH ProcessDirectorは、指定変更ファイルの値を使用して、このジョブのプロパティーの値を設定します。注文の値は、ジョブチケットの取得に使用されます。ジョブチケットの値は、印刷ファイルのダウンロードと処理に使用されます。

ワークフローをセットアップする

管理者は、2 つの分岐があるワークフローをセットアップします。

  1. 管理者は、ProcessBookOrdersという名前のワークフローを作成し、 SetJobPropsFromTextFileステップのプロパティーを設定します。
  2. 管理者は、以下の順序でワークフローに 10 個のステップを追加します。
    • DetectInputDataStream

      このステップは、入力データストリームプロパティーを JSONに設定します。

    • ConvertJSONToXML

      このステップは、JSON 入力ファイルおよび XML 出力ファイルのデフォルト値を使用します。

    • ApplyXSLTransform

      このステップは、order-to-overrides-file XSLT スタイルシートを使用して、Custom 3および カスタマー名プロパティーの値を設定するテキストファイルを作成します。このステップは、ジョブのスプールディレクトリー内に、指定変更ファイルとしてテキストファイルを出力します。 RICOH ProcessDirector は、指定変更ファイルを使用して、ジョブの Custom 3および カスタマー名プロパティー値を設定します。

    • AssignJobValues

      このステップは、ジョブ名プロパティーの値をORDER-order IDに設定します。

    • CallRESTService

      このステップは、書籍注文 Web サイト用の別の Web サービスに対して GET 呼び出しを作成します。このステップは、要求パラメータープロパティーの値に注文 ID を指定します。

      orderId:${Job.Info.Attr3}

      Web サービスは、JSON ジョブチケット情報を返します。

    • ConvertJSONToXML

      このステップは、JSON 入力ファイルおよび XML 出力ファイルのデフォルト値を使用します。

    • CreateJobsFromXML

      管理者は、XPath表現の値を//JobTicketに設定し、新しいジョブのワークフローの値に ProcessBookOrdersを設定します。注文の新しいジョブと元のジョブを結び付きを維持するには、管理者は 子ジョブを作成プロパティーの値に はいを設定します。ジョブ名として注文 ID を指定するには、管理者は 新規ジョブプロパティーの名前プロパティーの値に${Job.Info.Attr3}を設定します。

      このステップに入った XML ジョブは次のステップに進み、新規の子ジョブはワークフローの別の分岐に送られます。

    • RunHotFolderApplication

      管理者はこのステップを追加して、PDF ファイルを作成する Web サービスと通信し、これらのファイルをホットフォルダーに配置します。最初に、Web サービスがホットフォルダーをポーリングして、注文ジョブを探します。Web サービスがRestfulWebServiceSampleNotify通知から注文あたり 2 つの要求を受信すると、Web サービスは 1 つの PDF ファイルを別のホットフォルダーに入れます。 RunHotFolderApplicationステップは、 送信フォルダープロパティーの値として、注文ジョブのホットフォルダーを指定します。このステップは、 検索フォルダープロパティーの値として、PDF ファイルがあるホットフォルダーを指定します。

        注意:
      • このシナリオには、RunHotFolderApplicationステップが含まれます。 これは、サンプル RestfulWebServiceWFワークフローがこのステップを使用して、サンプル Web サービスとデータを交換することが理由です。Web サービスは、注文の完了時に PDF ファイルを返す代わりに、異なる機能を実行できます。例えば、注文品の受け渡しの準備が整ったときに、Web サービスは梱包部門にメールメッセージで通知できます。

    • AssignJobValues

      このステップは、入力データストリームプロパティーの値に PDFを設定します。 したがって、Web サービスにより作成された PDF ファイルは、ワークフロー内で表示できます。

    • RetainCompletedJobs
  3. 管理者は、RetainCompletedJobsステップを RemoveJobsステップに接続します。
  4. 管理者は、書籍と表紙のために、2 番目の分岐を作成して子ジョブを処理します。
    • 管理者は、SetJobPropsFromTextFileDetectInputDataStreamステップの間にあるコネクターで規則を設定します。
      • 規則名: Parent
      • 実行順: 1
      • プロパティージョブ番号
      • 比較異なります
      • *.*

      規則は、入力装置が取得する JSON ジョブを、DetectInputDataStreamステップに送信します。

    • 管理者は、受信フェーズで ApplyXSLTransform2ステップを追加し、これを SetJobPropsFromTextFileステップに接続します。

      このステップは、job-ticket-to-overrides-file XSLT スタイルシートを使用して、Custom 2Custom 1Custom 4Custom 5要求されたジョブコピー、および メディアプロパティーの値を設定する指定変更ファイルを作成します。 Custom 2Custom 1Custom 4、および Custom 5は、それぞれ file、item number、type、および title です。

    • 管理者は、SetJobPropsFromTextFileApplyXSLTransform2ステップの間にあるコネクターで規則を設定します。
      • 規則名: Child
      • 実行順: 2
      • プロパティージョブ番号
      • 比較類似しています
      • *.*

      この規則は、CreateJobsFromXMLステップが作成する子ジョブを ApplyXSLTransform2ステップに送信します。

    • このシナリオの焦点は Web サービスなので、印刷の部分はシンプルになっています。実動プロセスでは、異なるワークフロー内の異なるステップで、または異なるプリンターへの分岐で、書籍と表紙を送信できます。
  5. 管理者は、以下の順序でワークフローに 6 個のステップを追加します。
    • DownloadFile

      このステップは、書籍と表紙の PDF ファイルを Web サイトからダウンロードします。このステップは、[ダウンロードファイルの URL]プロパティーの値に Custom 2を設定します。 これには、ジョブチケットからのファイルダウンロード情報が保存されています。

    • AssignJobValues

      このステップは、3 つのジョブプロパティーの値を設定します。

      • 要求されたプリンター
      • 入力データストリーム
      • ジョブ名

      ジョブ名の値は、${Job.Info.Attr5}-${Job.Info.Attr4}になります。この名前は、書籍のタイトル、ハイフン、印刷ジョブの種類 (書籍または表紙) で構成されています。

    • OptimizePDF
    • CountPages
    • CreatePageRanges
    • PrintJobs
        注意:
      • このシナリオの焦点は Web サービスなので、ワークフローの印刷の部分は 4 ステップのみです。実動プロセスでは、別の分岐 (または別のワークフロー) にあるさらに多くのステップを経由して、異なるプリンターに書籍と表紙を送信できます。
  6. 管理者は、PrintJobsステップを RetainCompletedJobsステップに接続してワークフローを完成させます。

次の図に、入力装置、ワークフロー、および通知を示します。黒い線は、CreateJobsFromXMLステップが子ジョブを ProcessBookOrdersワークフローに送信することを示します。

入力装置をセットアップする

REST Web サービスの入力装置の[一般]タブで、管理者は子ワークフロープロパティーの値にProcessBookOrdersを設定します。入力装置は、書籍注文 Web サイト用の Web サービスから取得した JSON の注文を、このワークフローに送信します。複数の注文が Web サイトで待機状態になっている場合、管理者は注文をすばやく取得するために、ポーリング間隔を 30 秒に設定します。その他のプロパティーは、印刷会社の環境に合わせて設定されます。

管理者は[要求]タブで、REST Web サービスからの JSON 注文の取得に必要な値を指定します。各応答には JSON の注文が 1 件含まれているので、管理者は応答からジョブを作成プロパティーの値に 常時を設定します。この印刷会社のネットワークでは、プロキシサーバーは必要ありません。

    注意:
  • プロキシサーバーを使用する場合は、プロキシサーバーを使用プロパティーに はいを設定します。プロキシサーバーのプロパティーは、[システム設定]ページの プロキシサーバータブで設定します。

管理者は[認証]タブで、REST Web サービスでの認証に必要な値を指定します。

    注意:
  • 付属のRestfulWebServiceSample入力装置は、このシナリオで REST Web サービスの入力装置をセットアップする方法を示しています。この入力装置は、認証が不要な Web サービスを呼び出します。REST Web サービスでの認証について詳しくは、関連タスクのトピックを参照してください。

通知をセットアップする

REST Web サービスの通知の[要求]タブで、管理者は通知を受信する REST Web サービスで必要な値を指定します。この印刷会社のネットワークでは、プロキシサーバーは必要ありません。

    注意:
  • プロキシサーバーを使用する場合は、プロキシサーバーを使用プロパティーに はいを設定します。

管理者は[認証]タブで、REST Web サービスでの認証に必要な値を指定します。

    注意:
  • 付属のRestfulWebServiceSampleNotify通知は、このシナリオで REST Web サービスの通知をセットアップする方法を示しています。この通知は、認証が不要な Web サービスを呼び出します。REST Web サービスでの認証について詳しくは、関連タスクのトピックを参照してください。

[イベント]タブで、管理者は通知イベントの情報を指定します。

  • イベントタイプジョブ
  • プロパティー現行ジョブの状態
  • アクション変更
  • 保存

[条件]タブで、管理者は通知条件の情報を指定します。

  • 次の条件のいずれかまたはすべてを適用する = すべて
  • プロパティー1ワークフロー
  • 比較1=
  • 値1ProcessBookOrders
  • プロパティー2ジョブ番号
  • 比較2類似しています
  • 値2*.*

簡単な条件文を次に示します。

Job.JobType = 'RestfulWebServiceWF' AND Job.ID like '*.*'

注文のすべての子ジョブがRetainCompletedJobsステップに達すると、この通知は Web サービスを呼び出します。Web サービスは、注文内の各ジョブチケットの品目番号を含む PDF ファイルを作成します。Web サービスは、 RunHotFolderApplicationステップで監視されるホットフォルダーにファイルを配置します。PDF ファイルがジョブテーブルに表示されます。印刷会社の従業員は、PDF ファイルを表示して、注文の書籍と表紙が印刷されたことを確認できます。

ワークフローを通じたジョブの処理

: 機能で提供されるWeb Services Enablementワークフローは、 ProcessBookOrdersワークフローに似ています。 ProcessBookOrdersワークフローでジョブを処理する方法を確認するには、 RestfulWebServiceWFワークフローを実行してください。詳しくは、REST Web サービスから取得した注文を処理するワークフローを実行する際の、関連タスクのトピックを参照してください。