Ausführen des Musters-Workflows für die Verarbeitung von Jobs, die von REST-Web-Services abgerufen werden

Der Workflow RestfulWebServiceWF zeigt, wie Aufträge von REST-Web-Services abgerufen werden, die eine Website zur Bestellung von Büchern simulieren. Eine REST-Web-Service-Eingabeeinheit, ein CallRESTService-Schritt und eine REST-Web-Service-Benachrichtigung tauschen mithilfe der Web-Services Daten aus. Der Workflow bietet auch Beispiele für diese Schritte: ConvertJSONToXML, ApplyXSLTransform, CreateJobsFromXML und DownloadFile.

Dieser Workflow verwendet diese Musterobjekte und -dateien:

  • Workflow: RestfulWebServiceWF
  • Eingabeeinheit: RestfulWebServiceSample

    Die Eingabeeinheit führt einen GET-Aufruf durch, um von einem Beispiel-REST-Web-Service bei Http://Localhost:15080/Restapi/1.0/Sample/Order JSON-Aufträge abzurufen

  • Benachrichtigung: RestfulWebServiceSampleNotify

    Die Benachrichtigung macht einen POST-Aufruf bei einem Beispiel-Web-Service bei http://localhost:15080/restapi/1.0/sample/completeJobTicket

  • JSON-Aufträge

    Alle 30 Sekunden wird ein Auftrag vom Beispiel-Web-Service abgerufen.

    Inhalt des Beispielauftrags:

    {"Auftrag": {"orderId": "ORDnumber", "customername": "Ricoh"}}

    Jeder Auftrag enthält eine zufällig erzeugte Nummer, zum Beispiel: 1238875463.

  • Drucken von Dateien: Brochure.pdf, und Cover.pdf

    Diese Dateien werden lokal heruntergeladen von http://localhost:15080/restapi/

  • XSLT-Stylesheet-Dateien:

    • orderToOverrides.xslt

    • jobticketToOverrides.xslt

    Die Dateien befinden sich im Verzeichnis restsample:

    • /aiw/aiw1/testfiles/restsample (Linux)
    • C:\aiw\aiw1\testfiles\restsample (Windows)

  • Benachrichtigungsdateien im Format PDF

    Für jeden abgeschlossenen Auftrag wird eine Benachrichtigung in Form einer PDF-Datei erzeugt. Jede Datei wird in der Form ORDER-ORDNummer benannt. Beispiel: ORDER-ORD1238875463.

  • Der Schritt CallRESTService führt einen GET-Aufruf durch, um JSON-Job-Tickets von einem Beispiel-REST-Web-Service bei http://localhost:15080/restapi/1.0/sample/jobTicket abzurufen

    Hinweis:
  • Die Beispiel-Web-Services sind lokal verfügbar. Sie liefern Musterdaten als Reaktion auf spezifische Anforderungen von der Muster-Eingabeeinheit, Benachrichtigung und dem Schritt CallRESTService zurück. Die Web-Services unterstützen keine anderen Anforderungen.

  • Die Muster-Objekte und -Dateien, die den Workflow RestfulWebServiceWF einschließen, werden mit der Web Services Enablement-Funktion installiert.

So führen Sie den Beispiel-Workflow aus:

  1. Klicken Sie auf die Registerkarte Hauptseite.
  2. Wählen Sie im Portlet "Drucker" den Drucker Muster aus, und klicken Sie auf Aktivieren.
  3. Klicken Sie im Portlet "Eingabeeinheit" mit der rechten Maustaste auf die REST-Web-Service-Eingabeeinheit RestfulWebServiceSample, und wählen Sie Aktivieren und verbinden.

    Der Job wird in der Tabelle "Jobs" angezeigt.

  4. Klicken Sie mit der rechten Maustaste auf die Eingabeeinheit RestfulWebServiceSample, und wählen Sie Deaktivieren.
  5. Klicken Sie erneut mit der rechten Maustaste auf die Eingabeeinheit, und wählen Sie Trennen aus.

    Hinweis: Die Muster-Eingabeeinheit fragt alle 30 Sekunden Aufträge ab und ruft einen JSON-Job ab. Wenn Sie die Eingabeeinheit nicht deaktivieren und trennen, wird alle 30 Sekunden ein neuer Job in der Jobtabelle angezeigt.

    Folgendes geschieht jedes Mal, wenn die Eingabeeinheit RestfulWebServiceSample einen JSON-Job abruft:

    • Der Auftrag wird durch die Übergeordnete Workflow-Verzweigung gesendet.

    • Der Schritt SetJobPropsFromTextFile setzt das Merkmal Customer name auf RicohSample und das Merkmal Custom 1 auf RicohCustom.

    • Der Schritt ConvertJSONToXML konvertiert den Job in XML.

    • Der Schritt ApplyXSLTransform verwendet das XSLT-Stylesheet orderToOverrides.xslt, um 2 XML-Elemente in 2 RICOH ProcessDirector-Jobmerkmale in einer Overrides-Datei zu überschreiben:

      XML-Element Jobmerkmal
      orderId Job.Info.Attr3
      customername Job.CustomerName

      Inhalt der Muster-Overrides-Datei:

      Job.Info.attr3=ORD1238875463 Job.CustomerName=Ricoh

      Der Schritt legt die Überschreibungsdatei im Spoolverzeichnis für den Job ab. Mit den Werten in der Überschreibungsdatei legt RICOH ProcessDirector die Werte der Merkmale für den Job fest.

    • Der Schritt AssignJobValues setzt den Wert des Merkmals Jobname auf ORDER-${Job.Info.Attr3}. Beispiel: ORDER-ORD1238875463.

    • Der Schritt CallRESTService macht einen GET-Aufruf zu einem der Web-Services, welche die Website zur Bestellung von Büchern simulieren. Der Schritt definiert die Auftrags-ID als Wert des Merkmals Anforderungsparameter: orderID:${Job.Info.Attr3}.

      Der Web-Service gibt JSON-Informationen im Job Ticket für den Auftrag an RICOH ProcessDirector zurück.

      Inhalt der Musterinformationen im Job Ticket:

      {"JobTicket": [{ "Artikelnummer": "1182563839", "Kopien":"4","Medium" : "Brief Text","Datei" : "http://localhost:15080/restapi/Brochure.pdf","type" : "Broschüre","Titel" : "RPDBestSeller"}, { "Artikelnummer": "1934194376", "Kopien":"4","Medium" : "Brief Vorgedruckt","Datei" : "http://localhost:15080/restapi/Cover.pdf","type" : "Einband" ,"Titel" : "RPDBestSeller" }]}

    • Der Schritt ConvertJSONToXML konvertiert die JSON-Informationen im Job Ticket in XML.

    • Mit dem XPath-Ausdruck //JobTicket analysiert der Schritt CreateJobsFromXML die Daten des XML-Job-Tickets. Der Schritt findet 2 Job-Tickets und erstellt 2 untergeordnete Jobs.

      Inhalt von untergeordneten Muster-Jobs:

      <?xml version="1.0" encoding="UTF-8"?><JobTicket><copies>4</copies><file>http://localhost:15080/restapi/Brochure.pdf</file><itemnumber>2112076335</itemnumber><media>Letter, einfach</media><type>Broschüre</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, vorgedruckt</media><type>Deckblatt</type><title>RPDBestSeller</title></JobTicket>

      Der Schritt übermittelt die 2 untergeordneten Jobs an den Workflow RestfulWebServiceWF.

      Die Regel am Anschluss [2] Untergeordnet bestimmt, ob die Jobs untergeordnete Jobs sind, indem sie auf ein Dezimalkomma in der Jobnummer geprüft werden. Der Anschluss sendet untergeordnete Jobs über die Verzweigung Untergeordnet des Workflows.

      Der ursprüngliche JSON-Job läuft weiter durch die Verzweigung Übergeordnet zum Schritt RunHotFolderApplication. Dieser Schritt legt den JSON-Job in einem Hot Folder ab:

      • /aiw/aiw1/testfiles/restsample/sending (Linux)

      • C:\aiw\aiw1\testfiles\restsample\sending (Windows)

      Einer der Muster-Web-Services, der die Website zur Bestellung von Büchern simuliert, fragt den Hot Folder für Jobs ab. Der Web-Service verarbeitet jeden JSON-Job, wenn es eine Anforderung von den Benachrichtigung RestfulWebServiceSampleNotify erhält. Weitere Informationen finden Sie in der Liste Artikel für den Schritt RetainCompletedJobs.

    • Der Schritt ApplyXSLTransform2 verwendet das XSLT-Stylesheet jobticketToOverrides.xslt zum Konvertieren von 6 XML-Elementen für jeden untergeordneten Job in RICOH ProcessDirector-Jobmerkmale in einer Überschreibungsdatei:

      XML-Element Jobmerkmal
      file Job.Info.Attr2
      itemnumber Job.Info.Attr1
      type Job.Info.Attr4
      title Job.Info.Attr5
      copies Job.Copies
      media Job.Media

      Inhalt der Muster-Overrides-Datei:

      Job.Info.Attr2=http://localhost:15080/restapi/Brochure.pdf Job.Info.Attr1=1182563839 Job.Info.Attr4=Broschüre Job.Info.Attr5=RPDBestSeller Job.Kopien=4 Job.Media=Brief vorgedruckt

    • Der Schritt DownloadFile lädt die Dateien Cover.pdf und Brochure.pdf von Http://localhost:15080/restapi/ herunter, indem der Wert des Merkmals URL zum Herunterladen der Datei auf ${Job.Info.Attr2} gesetzt wird.

    • Der Schritt AssignJobValues2 legt die Werte von 3 Jobmerkmalen fest:

      • Angeforderter Drucker: Beispiel

      • Eingabedatenstrom: PDF

      • Jobname: ${Job.Info.Attr5}-${Job.Info.Attr4}

      Die Namen der untergeordneten Jobs für die Dateien Brochure.pdf und Cover.pdf lauten jetzt RPDBestSeller-Brochure und RPDBestSeller-Cover.

    • Die Schritte OptimizePDF, CountPages, CreatePageRanges und PrintJobs verarbeiten und drucken die untergeordneten Jobs RPDBestSeller-Brochure und RPDBestSeller-Cover auf dem Drucker Muster.

    • Wenn jeder untergeordnete Druckauftrag bei Schritt RetainCompletedJobs eintrifft, führt die Web-Service-Benachrichtigung RestfulWebServiceSampleNotify einen POST-Aufruf zu einem der Muster-Web-Services unter http://localhost:15080/restapi/1.0/sample/completeJobTicket durch. Der Wert des Merkmals Anforderungsparameter lautet:

      JobTicket:${Job.Info.Attr1} jobId:${Job.ID}

      Der Web-Service wartet, bis alle untergeordneten Jobs für den ursprünglichen JSON-Job im Jobstatus Aufbewahrt sind. Die Web Service erstellt dann eine PDF-Datei mit der Jobnummer und Artikelnummer jedes Job Tickets in dem Auftrag. Beispiel:

      10000001.2 with item number 278955095 has been processed10000001.1 with item number 913895452 has been processed

      Der Web-Service legt die PDF-Datei in den Abruf-Hot Folder für den Schritt RunHotFolderApplication:

      • /aiw/aiw1/testfiles/restsample/retrieval (Linux)

      • C:\aiw\aiw1\testfiles\restsample\retrieval (Windows)

      Der Schritt RunHotFolderApplication ruft den Hot Folder ab, findet den PDF-Job und sendet den Job zum nächsten Schritt.

    • Der Schritt AssignJobValues setzt den Wert des Merkmals Eingabedatenstrom auf PDF und sendet die PDF-Job an den Schritt RetainCompletedJobs.

  6. Klicken Sie in der Tabelle Jobs mit der rechten Maustaste auf einen Job ORDER-ORDNummer und wählen Sie Anzeigen.

    Der Viewer zeigt die PDF-Datei. Die Informationen in der PDF-Datei bestätigen, dass die 2 untergeordneten Jobs verarbeitet wurden.