サンプルワークフローを実行して REST Web サービスから取得した注文を処理する
このワークフローは、次のサンプルオブジェクトとファイルを使用します。
- ワークフロー: RestfulWebServiceWF
-
入力装置: RestfulWebServiceSample
入力装置は、GET 呼び出しを作成し、
http://localhost:15080/restapi/1.0/sample/order
のサンプル REST Web サービスから JSON 注文を取得します。 -
通知: RestfulWebServiceSampleNotify
通知は、
http://localhost:15080/restapi/1.0/sample/completeJobTicket
のサンプル Web サービスへの POST 呼び出しを作成します。 -
JSON 注文
サンプル Web サービスから、30 秒ごとに 1 件の注文が取得されます。
サンプルの注文の内容:
{"Order": {"orderId": "ORDnumber", "customername": "Ricoh"}}
各注文には、ランダムに生成された次のような number が含まれます。例: 1238875463
-
印刷ファイル:
Brochure.pdf
およびCover.pdf
これらのファイルは、
http://localhost:15080/restapi/
からローカルでダウンロードされます。 -
XSLTスタイルシートファイル:
-
orderToOverrides.xslt
-
jobticketToOverrides.xslt
これらのファイルは、次の
restsample
ディレクトリーにあります。/aiw/aiw1/testfiles/restsample
(Linux と AIX)C:\aiw\aiw1\testfiles\restsample
(Windows)
-
-
通知 PDF ファイル
完了した注文ごとに、通知 PDF ファイルが生成されます。各ファイルには、ORDER-ORDnumber という名前が付けられます。例: ORDER-ORD1238875463
-
CallRESTServiceステップは、GET 呼び出しを作成して、
http://localhost:15080/restapi/1.0/sample/jobTicket
のサンプル REST Web サービスから JSON ジョブチケットを取得します。
- 注意:
-
これらのサンプル Web サービスはローカルで使用できます。これらは、サンプルの入力装置、通知、およびCallRESTServiceステップで作成された特定の要求に対し、応答内でサンプルデータを返します。これらの Web サービスでは、その他の要求はサポートされていません。
-
RestfulWebServiceWFワークフローなどの、サンプルオブジェクトとファイルは、Web Services Enablement 機能とともにインストールされます。
サンプルワークフローを実行するには、次のようにします。
- メインタブをクリックします。
- [プリンター]ポートレットで、サンプルプリンターを右クリックして 使用可能を選択します。
- [入力装置]ポートレットで、RestfulWebServiceSampleREST Web サービスの入力装置を右クリックして 使用可能にして接続を選択します。
ジョブがジョブテーブルに表示されます。
- RestfulWebServiceSample入力装置を右クリックして、 使用不可を選択します。
- もう一度、入力装置を右クリックして、切断を選択します。注意: このサンプル入力装置は、30 秒ごとに注文をポーリングして JSON ジョブを取得します。入力装置を使用不可にして切断していない場合は、[ジョブ]テーブルに30秒ごとに新しいジョブが1つ表示されます。
RestfulWebServiceSample入力装置が JSON ジョブを取得するたびに、次の処理が実行されます。
-
ジョブがワークフローの親分岐を経由して送信されます。
-
SetJobPropsFromTextFileステップは、 カスタマー名プロパティーにRicohSampleを設定し、 Custom 1プロパティーにRicohCustomを設定します。
-
ConvertJSONToXMLステップは、ジョブを XML に変換します。
-
ApplyXSLTransformステップは、
orderToOverrides.xslt
XSLT スタイルシートを使用して、指定変更ファイル内で 2 つの XML エレメントを 2 つの RICOH ProcessDirector ジョブプロパティーに変換します。XMLエレメント ジョブプロパティー orderId Job.Info.Attr3 customername Job.CustomerName サンプル指定変更ファイルの内容:
Job.Info.Attr3=ORD1238875463Job.CustomerName=Ricoh
このステップでは、ジョブのスプールディレクトリーに指定変更ファイルが配置されます。RICOH ProcessDirectorは、指定変更ファイルの値を使用して、そのジョブのプロパティーの値を設定します。
-
AssignJobValuesステップは、 ジョブ名プロパティーの値をORDER-${Job.Info.Attr3}に設定します。例えば、次のような値になります。ORDER-ORD1238875463
-
CallRESTServiceステップは、書籍注文 Web サイトをシミュレートした、サンプル Web サービスの 1 つに対して GET 呼び出しを作成します。このステップは、 要求パラメータープロパティーの値に注文 ID を指定します。orderId:${Job.Info.Attr3}
Web サービスは、注文の JSON ジョブチケット情報を RICOH ProcessDirector に返します。
サンプルジョブチケット情報の内容:
{"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" }]}
-
ConvertJSONToXMLステップは、JSON ジョブチケット情報を XML に変換します。
-
CreateJobsFromXMLステップは、//JobTicketXPath表現を使用して、XMLジョブチケット情報を解析します。このステップは、2個のジョブチケットを検出し、2個の子ジョブを作成します。
サンプル子ジョブの内容:
<?xml version="1.0" encoding="UTF-8"?><JobTicket><copies>4</copies><file>http://localhost:15080/restapi/Brochure.pdf</file><itemnumber>2112076335</itemnumber><media>Letter Plain</media><type>Brochure</type><title>RPDBestSeller</title></JobTicket><?xml version="1.0" encoding="UTF-8"?><JobTicket><copies>4</copies><file>http://localhost:15080/restapi/Cover.pdf</file><itemnumber>1418780325</itemnumber><media>Letter Preprinted</media><type>Cover</type><title>RPDBestSeller</title></JobTicket>
このステップは、2 つの子ジョブをRestfulWebServiceWFワークフローに送信します。
[2] 子コネクターの規則でジョブ番号の小数点が確認され、ジョブが子ジョブであるかどうかが判断されます。コネクターは、ワークフローの 子分岐を経由して子ジョブを送信します。
元の JSON ジョブは、引き続き親分岐を経由して RunHotFolderApplicationステップに送信されます。このステップは、JSON ジョブをホットフォルダーに配置します。
-
/aiw/aiw1/testfiles/restsample/sending
(Linux と AIX) -
C:\aiw\aiw1\testfiles\restsample\sending
(Windows)
書籍注文 Web サイトをシミュレートしているサンプル Web サービスの 1 つが、ホットフォルダーをポーリングしてジョブを検出します。この Web サービスは、RestfulWebServiceSampleNotify通知から要求を受信すると、各 JSON ジョブを処理します。詳しくは、 RetainCompletedJobsステップのリスト項目を参照してください。
-
-
ApplyXSLTransform2ステップは、
jobticketToOverrides.xslt
XSLT スタイルシートを使用して、各子ジョブの 6 つの XML エレメントを指定変更ファイル内の RICOH ProcessDirector ジョブプロパティーに変換します。XMLエレメント ジョブプロパティー file Job.Info.Attr2 itemnumber Job.Info.Attr1 type Job.Info.Attr4 title Job.Info.Attr5 copies Job.Copies media Job.Media サンプル指定変更ファイルの内容:
Job.Info.Attr2=http://localhost:15080/restapi/Brochure.pdfJob.Info.Attr1=1182563839Job.Info.Attr4=BrochureJob.Info.Attr5=RPDBestSellerJob.Copies=4Job.Media=Letter Preprinted
-
DownloadFileステップは、 ダウンロードファイルの URLプロパティーの値に ${Job.Info.Attr2} を設定し、
Cover.pdf
およびBrochure.pdf
ファイルをhttp://localhost:15080/restapi/
からダウンロードします。 -
AssignJobValues2ステップは、次の 3 つのジョブプロパティー値を設定します。
-
要求されたプリンター: サンプル
-
入力データストリーム: PDF
-
ジョブ名: ${Job.Info.Attr5}-${Job.Info.Attr4}
Brochure.pdf
およびCover.pdf
ファイルの子ジョブの名前は、RPDBestSeller-BrochureおよびRPDBestSeller-Coverになります。 -
-
OptimizePDF、 CountPages、 CreatePageRanges、および PrintJobsステップは、RPDBestSeller-Brochure および RPDBestSeller-Cover 子ジョブを処理して、 サンプルプリンターで印刷します。
-
それぞれの子ジョブがRetainCompletedJobsステップに到達すると、 RestfulWebServiceSampleNotifyWebサービスの通知は、
http://localhost:15080/restapi/1.0/sample/completeJobTicket
にあるサンプルWebサービスの1つに対してPOST呼び出しを実行します。 要求パラメータープロパティーの値:jobTicket:${Job.Info.Attr1}jobId:${Job.ID}
元の JSON ジョブの子ジョブがすべて保存ジョブ状態になるまで、Web サービスは待機します。次に Web サービスは、注文内の各ジョブチケットのジョブ番号と品目番号を含む PDF ファイルを作成します。例:
品目番号278955095の10000001.2が処理されました品目番号913895452の10000001.1が処理されました
Web サービスは、RunHotFolderApplicationステップの取得ホットフォルダーに PDF ファイルを配置します。
-
/aiw/aiw1/testfiles/restsample/retrieval
(Linux と AIX) -
C:\aiw\aiw1\testfiles\restsample\retrieval
(Windows)
RunHotFolderApplicationステップは、ホットフォルダーをポーリングして PDF ジョブを検出し、ジョブを次のステップに送信します。
-
-
AssignJobValuesステップは、 入力データストリームプロパティーの値を PDF に設定して、PDFジョブを RetainCompletedJobsステップに送信します。
-
- ジョブテーブルでORDER-ORDnumberジョブを右クリックして、 表示を選択します。
ビューアーには PDF ファイルが表示されます。PDF ファイル内の情報で、2 つの子ジョブが処理されたことを確認できます。