サンプルワークフローを実行してMarcomCentralから取得した注文を処理する
サンプルの入力装置、CallSOAPServiceのステップ、通知はシミュレーションを実行します。指定されたMarcomCentral Webサービスを呼び出すことはありません。このシミュレーションでサンプルを実行しますが、MarcomCentral資格情報の取得も、サンプルストアに似たサンプルMarcomCentralストアのセットアップも必要ありません。このサンプルでは、SOAP 1.1要求ペイロードを使用して、シミュレートされたMarcomCentral注文と2個のジョブチケットを取得します。静的な資格情報とパスワードフィールドの値は、RICOH ProcessDirectorにシミュレーションの実行を命じます。
実行後のサンプルはコピーできます。コピーしたサンプルの値を調整して、MarcomCentral Webサイトにある自分のストアとデータを交換できます。
- 注意:
- サンプルオブジェクトとファイルは、MarcomCentral Connect機能とともにインストールされます。
このシミュレーションには、MarcomCentralからインポートされたWeb Services Description Language(WSDL) SOAP要求オブジェクトが含まれます。サンプルの入力装置、CallSOAPServiceのステップ、通知それぞれで、SOAP要求が指定されます。
このシミュレーションで使用されるオブジェクトとファイルは次のとおりです。
- ワークフロー:
- MarcomProcessOrders
- MarcomProcessJobTicket
- 入力装置:MarcomReceiveOrders
この入力装置は、
https://services.printable.com/Trans/1.0/Order.asmx
でWebサービスの呼び出しをシミュレートして、MarcomCentral WebサイトからXML注文を取得します。SOAP要求はMarcom-GetOrdersByDateです。
- 通知:MarcomCloseoutOrder
この通知は、
https://services.printable.com/Trans/1.0/Closeout.asmx
でWebサービスの呼び出しをシミュレートして、MarcomCentral Webサイトに注文完了情報を送信します。SOAP要求はMarcomSample-CloseoutByOrderです。
- XML注文
このシミュレーションでは、Webサービスから30秒ごとに注文が1件取得されます。
サンプルワークフローの実行後に、サンプル注文の内容を確認できます。次のURLにアクセスしてください。
/aiw/aiw1/spool/default/job_number
(LinuxとAIX)C:\aiw\aiw1\spool\default\job_number
(Windows)
job_numberは実際のジョブ番号で置き換えてください(例: 10000001)。
job_number.print.xmlファイルの内容を表示します(例: 10000001.print.xml)。
- XMLジョブチケット
このシミュレーションでは、注文ごとに2つのジョブチケットが取得されます。
サンプルワークフローの実行後に、これら2つのサンプルジョブチケットの内容を確認できます。次のURLにアクセスしてください。
/aiw/aiw1/spool/default/child_job_number
(LinuxとAIX)C:\aiw\aiw1\spool\default\child_job_number
(Windows)
child_job_numberは実際の子ジョブ番号で置き換えてください(例: 10000001.1、10000001.2など)。
child_job_number.print.xmlファイルの内容を表示します(例: 10000001.1.print.xml、10000001.2.print.xmlなど)。
- ファイルの印刷:
Savings.pdf
このファイルは、ローカルで
http://localhost:15080/restapi/
からダウンロードされます。 - XSLTスタイルシートファイル:
orderToOverrides.xslt
jobticketsReceived.xslt
jobticketToOverrides.xslt
skuToOverrides.xslt
downloadOverrides.xslt
これらのファイルは、
Marcom
ディレクトリーに保存されます。/aiw/aiw1/testfiles/Marcom
(LinuxとAIX)C:\aiw\aiw1\testfiles\Marcom
(Windows)
- ストックキーピングユニット(SKU)ファイル:
SKU13933967.xml
SKU15302443.xml
これらのファイルは、
Marcom
ディレクトリーに保存されます。/aiw/aiw1/testfiles/Marcom
(LinuxとAIX)C:\aiw\aiw1\testfiles\Marcom
(Windows)
- CallSOAPServiceのステップ:
- 最初のCallSOAPServiceステップは、
https://services.printable.com/Trans/1.0/JobTicket.asmx
でWebサービスの呼び出しをシミュレートして、MarcomCentral WebサイトからXMLジョブチケットを取得します。SOAP要求はMarcom-GetJobTicketsByOrderNumberです。
- 2つめのCallSOAPServiceステップは、
https://services.printable.com/Trans/1.0/JobTicket.asmx
でWebサービスの呼び出しをシミュレートして、MarcomCentral Webサイトからジョブチケットを取得します。SOAP要求はMarcom-GetJobTicketByLineItemです。
- 最初のCallSOAPServiceステップは、
- CallRESTServiceステップテンプレートをベースにした CheckTicketCountステップは、
http://localhost:15080/restapi/1.0/util/compareProperties
でWebサービスを呼び出します。
サンプルワークフローを実行するには、次のようにします。
- メインタブをクリックします。
- [プリンター]ポートレットで、サンプルプリンターを右クリックして 使用可能を選択します。
- [入力装置]ポートレットで、MarcomReceiveOrdersSOAP Webサービスの入力装置を右クリックし、 使用可能にして接続を選択します。
Marcom Sample Orderという名前のジョブが、[ジョブ]テーブルに表示されます。
- MarcomReceiveOrders入力装置を右クリックして、 使用不可を選択します。
- もう一度、入力装置を右クリックして、切断を選択します。
- 注意:
- サンプルの入力装置は、30秒ごとに注文をポーリングして、XMLジョブを取得します。入力装置を使用不可にして切断していない場合は、[ジョブ]テーブルに30秒ごとに新しいジョブが1つ表示されます。
入力装置の要求ペイロードには、次のような RICOH ProcessDirectorシンボルが含まれます。
<PartnerCredentials> <Token>${WebService.StaticCredential}</Token></PartnerCredentials><DateRange> <Start>${WebService.LastSuccessRequestTime}</Start> <End>${WebService.CurrentRequestTime}</End></DateRange>
${WebService.StaticCredential}シンボルは、静的な資格情報を表します。${WebService.LastSuccessRequestTime}シンボルは、入力装置が最後にWebサービスからの応答の要求に成功した日付と時刻を表します。${WebService.CurrentRequestTime}シンボルは、現在の要求の日付と時刻を表します。
MarcomReceiveOrders入力装置はXMLジョブを取得するたびに、このジョブを MarcomProcessOrdersワークフローに送信します。
ジョブは、これらのステップや、MarcomProcessOrdersワークフローにあるその他のステップを通過します。
- SetJobPropsFromTextFileステップは、 ジョブ名プロパティーにMarcom Sample Orderを設定します。
- ApplyXSLTransformステップは、
orderToOverrides.xslt
XSLTスタイルシートを使用して、8個のXMLエレメントを指定変更ファイル内の5個の RICOH ProcessDirectorジョブプロパティーに変換します。次の表に、この注文のジョブプロパティーをまとめます。これらは、XSLTスタイルシートで指定され、指定変更ファイルに表示されます。
XMLエレメント ジョブプロパティーのデータベース名 ジョブプロパティーのユーザーインターフェース名 OrderNumber Job.Marcom.OrderNumber MarcomCentral 注文番号 ID Job.Marcom.OrderId MarcomCentral 注文 ID ShippingAddress/Address1ShippingAddress/CityShippingAddress/StateShippingAddress/Zip Job.Info.Attr1 Custom 1 ユーザー/メール Job.CustomerName カスタマー名 count(OrderDetails/OrderDetail) Job.Info.Attr2 Custom 2 サンプル指定変更ファイルの内容を次の例に示します。
Job.Marcom.OrderNumber=WS113Job.Marcom.OrderId=8487184Job.Info.Attr1=400 Main Street Anywhere CO 11111Job.CustomerName=Myrna.Jensen@company.comJob.Info.Attr2=2
このステップでは、ジョブのスプールディレクトリーに指定変更ファイルが配置されます。RICOH ProcessDirectorは、指定変更ファイルの値を使用して、そのジョブのプロパティーの値を設定します。
- CallSOAPServiceステップは、指定された注文のジョブチケットを返すMarcomCentral Webサービスを呼び出します。このステップは、 要求ペイロードプロパティーの値の一部として、2つの RICOH ProcessDirectorシンボルを指定します。
<Token>${Job.WebService.Password}</Token><PONumber>${Job.Marcom.OrderId}</PONumber>
${Job.WebService.Password}シンボルは、静的な資格情報を表します。${Job.Marcom.OrderId}シンボルは、注文IDを表します。
- ApplyXSLTransform2ステップは、
jobTicketsReceived.xslt
XSLTスタイルシートを使用して、取得済みジョブチケットの数を数え、 Job.Info.Attr3プロパティーの値を計算します。XMLエレメント ジョブプロパティーのデータベース名 ジョブプロパティーのユーザーインターフェース名 count(ns0:Envelope/ns0:Body/ns2:GetJobTicketsByOrderNumberResponse/ns1:GetJobTicketResponse/JobTicket) Job.Info.Attr3 Custom 3 このステップは、値を指定変更ファイルに入力して変更し、ジョブのスプールディレクトリーにある指定変更ファイルを、変更した新しい指定変更ファイルで上書きします。
この例は、ジョブチケットをすべて取得した後の指定変更ファイルの内容を示しています。
Job.Info.Attr3=2
- CheckTicketCountステップは、RICOH ProcessDirector Webサービスに対してPOST呼び出しを行います。このWebサービスは、注文のジョブチケットがすべて取得されたかどうかを確認します。このステップは、 Custom 2の値(ジョブチケットの総数)と Custom 3の値(取得済みジョブチケット)を比較します。これらの値が一致した場合は、 Custom 4の値(比較の結果)に EQUALを設定します。
このステップは、値を指定変更ファイルに入力して変更し、スプールディレクトリーにある指定変更ファイルを、変更した新しい指定変更ファイルで上書きします。
この例は、ジョブチケットをすべて取得した後の指定変更ファイルの内容を示しています。
Job.Info.Attr4=EQUAL
- [1]すべてのチケットを発見コネクターの規則は、 Custom 4ジョブプロパティー(比較結果)の値が EQUALになっているかどうかを確認します。
- [EQUAL]の場合は、取得済みジョブチケットの数が、予定されたジョブチケットの総数と等しくなっています。ワークフローは、このジョブを直接、CreateJobsFromXMLステップに送信します。
- [EQUAL]でない場合は、取得済みジョブチケットの数が、予定されたジョブチケットの総数よりも少なくなっています。[2]チケットの確認コネクターの規則は、 Custom count 1ジョブプロパティーの値が10未満かどうかを確認します。 CheckTicketCountステップに初めてジョブが到達したときの Custom count 1プロパティーの値は0です。
- この値が0から9までの場合、ワークフローはこのジョブを Waitステップに送り、そこで1分間待機させます。その後、ワークフローはこのジョブを RunExternalProgramステップに送信します。
RunExternalProgramステップは、 Custom count 1プロパティーの値を1増やすJavaユーティリティーを実行します。その後、ワークフローはこのジョブを CallSOAPServiceステップに送り返します。このステップは、注文のジョブチケットを返すMarcomCentral Webサービスの呼び出しを繰り返します。取得済みジョブチケットの数が予定よりも少ない場合、ワークフローは CallSOAPServiceステップを通じて、このジョブを最大9回送信できます。
- 値が10の場合、ジョブは CallSOAPServiceステップに既に10回送信されています。10分後に、取得済みジョブチケットの数が、予定数と等しくなっていません。このジョブは、 [2]チケットの確認コネクターの規則を満たしません。ワークフローは [3]タイムアウトコネクターを経由して、このジョブを FailWithMesssageステップに送信し、ジョブのログにエラーメッセージを書き込みます。メッセージ内容:一部のジョブが、制限時間内に見つかりませんでした。
- 注意:
- このメッセージはジョブプロパティーの1つなので、このワークフローを通過するすべてのジョブの[ジョブプロパティー]ノートブックの[情報]タブに表示されます。このメッセージは、ワークフローがこのジョブを、[3]タイムアウトコネクター経由で FailWithMesssageステップへ送信した場合にのみ、ジョブのログに記録されます。
- この値が0から9までの場合、ワークフローはこのジョブを Waitステップに送り、そこで1分間待機させます。その後、ワークフローはこのジョブを RunExternalProgramステップに送信します。
- CreateJobsFromXMLステップは、//JobTicketXPath表現を使用して、XMLジョブチケット情報を解析します。このステップは、2個のジョブチケットを検出し、2個の子ジョブを作成します。
子ジョブJensen Bank Baseball Capと Brochureが[ジョブ]テーブルに表示されます。
このステップは、MarcomProcessJobTicketワークフローに、これら2個の子ジョブを送信します。
元の注文ジョブは、WaitForRelatedJobsステップに送信されます。
子ジョブは、これらのステップや、MarcomProcessJobTicketワークフローにあるその他のステップを通過します。
- ApplyXSLTransformステップは、
jobticketToOverrides.xslt
XSLTスタイルシートを使用して、10個のXMLエレメントを指定変更ファイル内の10個の RICOH ProcessDirectorジョブプロパティーに変換します。次の表に、この注文のジョブプロパティーをまとめます。これらは、XSLTスタイルシートで指定され、指定変更ファイルに表示されます。
XMLエレメント ジョブプロパティーのデータベース名 ジョブプロパティーのユーザーインターフェース名 OrderDetails/OrderDetail/OrderID Job.Marcom.OrderId MarcomCentral 注文 ID OrderDetails/OrderDetail/SKUDescription Job.Info.Attr1 Custom 1 OrderDetails/OrderDetail/SKU/ID Job.Info.Attr4 Custom 4 OrderDetails/OrderDetail/ProductType Job.Marcom.ProductType MarcomCentral 製品タイプ FinalOutputFileURL/URL Job.Info.Attr3 Custom 3 floor(OrderDetails/OrderDetail/Quantity) Job.Copies 要求されたジョブコピー floor($var2_current/OrderDetails/OrderDetail/ID) Job.Marcom.JobTicketId MarcomCentralジョブチケットID OrderDetails/OrderDetail/ProductName Job.Name ジョブ名 OrderDetails/OrderDetail/ProductDescription Job.Description ジョブ概要 OrderDetails/OrderDetail/Shipping/Method Job.Info.Attr2 Custom 2 このステップは、個々の指定変更ファイルを、対応するジョブのスプールディレクトリーに入れます。これらのジョブは新しいワークフローに入っているので、これらの指定変更ファイルが既存の指定変更ファイルを上書きすることはありません。
この例は、Jensen Bank Baseball Capジョブで使用されるサンプル指定変更ファイルの内容を示しています。
Job.Marcom.OrderId=8487184Job.Info.Attr1=RedJob.Info.Attr4=13933967Job.Marcom.ProductType=StaticJob.Info.Attr3=Job.Copies=20Job.Marcom.JobTicketId=22722188Job.Name=Jensen Bank Baseball CapJob.Description=Jensen Bank branded baseball cap features an embroidered patch logo on the front. このフィットキャップは綿でできています。フィット感は、構造、材料、メーカーによって異なる場合があります。Job.Info.Attr2=Rush Shipping
この例は、Brochureジョブで使用されるサンプル指定変更ファイルの内容を示しています。
Job.Marcom.OrderId=8487184Job.Info.Attr1=Brochure - Investing_Boulder_6300 Diagonal Highway_Boulder_CO_80301Job.Info.Attr4=15302443Job.Marcom.ProductType=VersionedJob.Info.Attr3=http://localhost:15080/restapi/Savings.pdfJob.Copies=250Job.Marcom.JobTicketId=22722189Job.Name=BrochureJob.Description=Job.Info.Attr2=Rush Shipping
- [1] SKU詳細なしコネクターの規則は、ジョブにストックキーピングユニット(SKU)があるかどうかをチェックします。
- 注意:
- このサンプルでは、SKUは、注文に品目を作成するための情報を提供します。例えば、印刷物のSKU情報には、使用するメディアが含まれます。非印刷物のSKU情報には、使用する梱包材が含まれます。MarcomCentral品目には、MarcomCentral以外に格納された情報を識別するSKU番号があります。ワークフローのこの部分は、その情報にアクセスし、RICOH ProcessDirectorジョブプロパティーに変換します。
- Custom 4(SKU ID)プロパティーの値がSKU13933967またはSKU15302443でない場合、ワークフローはジョブを直接、 ContinueToNextStepステップに送信します。
- 注意:
- これら2つのSKU IDは、
Marcom
ディレクトリーにあるサンプルSKUファイルと一致します。MarcomCentralと通信するように RICOH ProcessDirectorをセットアップするときに、注文品目に関する情報の格納方法を決定します。
- これら2つのSKU IDは、
- この値がSKU13933967またはSKU15302443の場合、ワークフローはこのジョブを ApplyXSLTransform2ステップに送信して、SKU情報を処理します。
ApplyXSLTransform2ステップは、
skuToOverrides.xslt
XSLTスタイルシートを使用して、3個のXMLエレメントを3個の RICOH ProcessDirectorジョブプロパティーに変換します。次の表に、この注文のジョブプロパティーをまとめます。これらは、XSLTスタイルシートで指定され、指定変更ファイルに表示されます。
XMLエレメント ジョブプロパティーのデータベース名 ジョブプロパティーのユーザーインターフェース名 メディア Job.Media メディア 両面 Job.Duplex 両面 パッケージ Job.Info.Attr5 Custom 5 このステップは、値を指定変更ファイルに入力して変更し、ジョブのスプールディレクトリーにある指定変更ファイルを、変更した新しい指定変更ファイルで上書きします。
この例は、Jensen Bank Baseball Capジョブで使用されるサンプル指定変更ファイルの内容を示しています。
Job.Media=Job.Duplex=NoJob.Info.Attr5=Gift wrap
この例は、Brochureジョブで使用されるサンプル指定変更ファイルの内容を示しています。
Job.Media=Letter PlainJob.Duplex=YesJob.Info.Attr5=
ワークフローは、このジョブをContinueToNextStepステップに送信します。
- ジョブがContinueToNextStepステップに到達すると、 [1]ウェアハウスコネクターの規則が MarcomCentral製品タイププロパティーの値をチェックします。 Versioned、 Variableおよび JobDirectは、印刷物の製品タイプです。
- 品目の製品タイプが印刷物ではない場合、ワークフローはウェアハウス分岐を通じて、ジョブを送信します。
- 品目の製品タイプが印刷物の場合、ワークフローは印刷所分岐を通じて、ジョブを送信します。
印刷物の子ジョブは、ワークフローの印刷所分岐で、次のステップとコネクターを通過します。
- ジョブが2つめのContinueToNextStepステップに到達すると、 [1]ファイル準備完了コネクターの規則は、 Custom 3(ダウンロードファイルのURL)プロパティーに値が設定されているかどうかを確認します。
- 設定されていれば、印刷ファイルをダウンロードできます。ワークフローは、このジョブを直接、DownloadFileステップに送信します。
- 設定されていない場合、[2]ファイルの確認コネクターの規則は、 Custom count 1ジョブプロパティーの値が10未満かどうかを確認します。2つめの CheckTicketCountステップに初めてジョブが到達したときの Custom count 1プロパティーの値は0です。
- この値が0から9までの場合、ワークフローはこのジョブを Waitステップに送り、そこで30秒間待機させます。その後、ワークフローはこのジョブを CallSOAPServiceステップに送信します。
CallSOAPServiceステップは、印刷物のジョブチケットを取得するMarcomCentral Webサービスを呼び出します。このステップは、 Webサービスペイロードプロパティーの値の一部として、2つの RICOH ProcessDirectorシンボルを指定します。
<Token>${Job.WebService.Password}</Token><LineItemID type=”Printable”>${Job.Marcom.JobTicketId}</LineItemID>
${Job.WebService.Password}シンボルは、静的な資格情報を表します。${Job.Marcom.JobTicketId}シンボルは、ジョブチケットIDを表します。
ApplyXSLTransform2ステップは、
downloadOverrides.xslt
XSLTスタイルシートを使用して、1個のXMLエレメントを1個の RICOH ProcessDirectorジョブプロパティーに変換します。XMLエレメント ジョブプロパティーのデータベース名 ジョブプロパティーのユーザーインターフェース名 JobTicket/FinalOutputFileURL/URL Job.Info.Attr3 Custom 3 このステップは、値を指定変更ファイルに入力して変更し、ジョブのスプールディレクトリーにある指定変更ファイルを、変更した新しい指定変更ファイルで上書きします。
サンプル指定変更ファイルの内容を次の例に示します。
Job.Info.Attr3=http://localhost:15080/restapi/Savings.pdf
RunExternalProgramステップは、 Custom count 1プロパティーの値を1増やすJavaユーティリティーを実行します。その後、このワークフローは、ジョブを2つめの ContinueToNextStepステップに送り返します。このステップは、 Waitステップを経由して、 CallSOAPServiceステップにジョブを送信します。 CallSOAPServiceステップは、印刷物のジョブチケットを取得するMarcomCentral Webサービスの呼び出しを繰り返します。 Custom 3プロパティーにまだURLの値が入っていない場合、ワークフローは CallSOAPServiceステップを経由して、最大9回、このジョブを送信します。
- 値が10の場合、ジョブは CallSOAPServiceステップに既に10回送信されています。5分経っても、 Custom 3プロパティーには、ダウンロードするファイルの値が入っていません。ジョブは、 [2]ファイルの確認コネクターの規則を満たしていません。ワークフローは [3]タイムアウトコネクターを経由して、このジョブを FailWithMesssageステップに送信し、ジョブのログにエラーメッセージを書き込みます。メッセージ内容:制限時間内にダウンロードするファイルが見つかりませんでした。
- 注意:
- このメッセージはジョブプロパティーの1つなので、このワークフローを通過するすべてのジョブの[ジョブプロパティー]ノートブックの[情報]タブに表示されます。このメッセージは、ワークフローがこのジョブを、[3]タイムアウトコネクター経由で FailWithMesssageステップへ送信した場合にのみ、ジョブのログに記録されます。
- この値が0から9までの場合、ワークフローはこのジョブを Waitステップに送り、そこで30秒間待機させます。その後、ワークフローはこのジョブを CallSOAPServiceステップに送信します。
- DownloadFileステップは、 ダウンロードファイルのURLプロパティーの値に${Job.Info.Attr3}シンボルを設定して、
http://localhost:15080/restapi/
からSavings.pdf
印刷ファイルをダウンロードします。 - OptimizePDF、 CountPages、 CreatePageRangesおよび PrintJobsステップは、 サンプルプリンターでジョブを処理して印刷します。
非印刷物の子ジョブは、ワークフローのウェアハウス分岐で、次のステップを通過します。
- ManualStepWithAutoStartステップは、ウェアハウススタッフからのジョブの出荷準備完了の知らせを待機します。
WaitForRelatedJobsステップは、すべての子ジョブがこのステップに到達するまで、親ジョブと子ジョブを保留します。
- [ジョブ]テーブルで、Jensen Bank Baseball Capジョブを右クリックし、 手動完了を選択します。
- 次のステップに進むを選択し、 OKをクリックします。
ジョブはWaitForRelatedJobsステップに進みます。
両方の子ジョブがWaitForRelatedJobsステップに到達すると、ワークフローは親ジョブと子ジョブを RetainCompletedJobsステップに送信します。各ジョブの状態が、 保存に変わります。
MarcomCloseoutOrderWebサービスの通知は、
https://services.printable.com/Trans/1.0/Closeout.asmx
にあるWebサービスを呼び出します。要求ペイロードには、以下の RICOH ProcessDirectorシンボルが含まれます。
<PartnerCredentials> <Token>${WSNotification.WebService.Credential}</Token></PartnerCredentials><OrderID> <ID type="Printable">{${Job.Marcom.OrderId}}</Start></OrderID>
${WSNotification.WebService.Credential}シンボルは、静的な資格情報を表します。${Job.Marcom.OrderId}シンボルは、注文IDを表します。
通知がシミュレーションを実行する代わりに、Webサービスを呼び出した場合、この変更は、MarcomCentral Webサイトにあるサンプルストアで行われます。注文マネージャーの 品目別に表示ダイアログでは、注文番号WS113の各品目にある 注文のステータス列の値が、 処理中から 出荷済みに変わります。
- [ジョブ]テーブルで、Brochureジョブを右クリックし、 表示を選択します。ビューアーに、注文の一部として印刷されたPDFファイルが表示されます。
サンプルを実行したので、サンプルをコピーできます。コピーしたサンプルの値を調整して、MarcomCentral Webサイトにある自分のストアとデータを交換します。詳しくは、関連タスクのトピックを参照してください。