MarcomProcessOrders

Dieser Workflow und der Workflow MarcomProcessJobTicket zeigen, wie mithilfe von SOAP-Web-Services Daten mit der MarcomCentral-Website ausgetauscht werden. Die Demonstration umfasst eine SOAP-Web-Service-Eingabeeinheit und eine SOAP-Web-Service-Benachrichtigung.

Die SOAP-Web-Service-Eingabeeinheit MarcomReceiveOrders simuliert einen Aufruf an einen MarcomCentral-Web-Service. Die Eingabeeinheit ruft einen XML-Auftrag aus dem Beispiel-Store der MarcomCentral-Website ab und sendet den XML-Job an den Workflow MarcomProcessOrders.

Der Schritt SetJobPropsFromTextFile setzt das Merkmal Jobname auf Marcom Sample Order.

Der Schritt DetectInputDataStream setzt den Datenstrom auf XML.

Mit dem XSLT-Stylesheet orderToOverrides.xslt konvertiert der Schritt ApplyXSLTransform 8 XML-Elemente in 5 RICOH ProcessDirector-Jobmerkmale in einer Überschreibungsdatei.

In der Tabelle sind die Jobmerkmale in der Reihenfolge aufgelistet, in der sie im XSLT-Stylesheet angegeben sind und in der Überschreibungsdatei angezeigt werden.

XML-Element Datenbankname des Jobmerkmals Benutzerschnittstellenname des Jobmerkmals
OrderNumber Job.Marcom.OrderNumber MarcomCentral-Auftragsnummer
ID Job.Marcom.OrderId MarcomCentral-Auftrags-ID
ShippingAddress/Adresse1 ShippingAddress/Stadt ShippingAddress/Staat /ShippingAddress/PLZ Job.Info.Attr1 Benutzerdefiniert 1
Benutzer/E-Mail Job.CustomerName Kundenname
count(OrderDetails/OrderDetail) Job.Info.Attr2 Benutzerdefiniert 2

Der Schritt CallSOAPService simuliert einen Aufruf an einen MarcomCentral-Web-Service und ruft 2 Job-Tickets für den XML-Auftrag ab. Der Wert im Kennwortfeld weist RICOH ProcessDirector an, die Simulation auszuführen statt den Web-Service aufzurufen.

Der Schritt ApplyXSLTransform2 berechnet mit dem XSLT-Stylesheet jobTicketsReceived.xslt den Wert für das Merkmal Benutzerdefiniert 3, indem er zählt, wie viele Job-Tickets abgerufen wurden. Der Schritt legt den Wert in einer Überschreibungsdatei ab und überschreibt die Überschreibungsdatei im Spoolverzeichnis für den Job mit der neuen Überschreibungsdatei.

Der Schritt CheckTicketCount ruft einen RICOH ProcessDirector-Web-Service auf. Der Web-Service überprüft, ob alle Job-Tickets für einen Auftrag abgerufen wurden. Der Schritt vergleicht die Werte von Benutzerdefiniert 2 (Gesamtzahl Job-Tickets) und Benutzerdefiniert 3 (abgerufene Job-Tickets). Wenn die Werte übereinstimmen, setzt der Schritt den Wert Benutzerdefiniert 4 (Ergebnis des Vergleichs) auf GLEICH. Der Schritt legt den Wert in einer Überschreibungsdatei ab und überschreibt die Überschreibungsdatei im Spoolverzeichnis mit der neuen Überschreibungsdatei.

Die Regel für den Anschluss [1] Alle Tickets gefunden überprüft, ob der Wert des Jobmerkmals Benutzerdefiniert 4 (Ergebnis des Vergleichs) GLEICH lautet.

  • Ist dies der Fall, entspricht die Anzahl der abgerufenen Job-Tickets der Gesamtzahl der erwarteten Job-Tickets. Der Workflow sendet den Job direkt an den Schritt CreateJobsFromXML.
  • Geschieht dies nicht, ist die Anzahl der abgerufenen Job-Tickets geringer als die Gesamtzahl der erwarteten Job-Tickets. Die Regel für den Anschluss [2] Auf Tickets prüfen überprüft, ob der Wert des Jobmerkmals Benutzerdefinierte Anzahl 1 kleiner als 10 ist. Wenn der Job zum ersten Mal bei Schritt CheckTicketCount ankommt, lautet der Wert des Merkmals Benutzerdefinierte Anzahl 10.
    • Ist der Wert ein Wert von 0 bis 9, sendet der Workflow den Job an den Schritt Warten, wo er dann 1 Minute wartet. Der Workflow sendet den Job dann an den Schritt RunExternalProgram.

      Der Schritt RunExternalProgram führt ein Java-Dienstprogramm aus, welches den Wert des Merkmals Benutzerdefinierte Anzahl 1 um 1 erhöht. Der Workflow sendet den Job dann zurück an den Schritt CallSOAPService. Der Schritt wiederholt den Aufruf an den MarcomCentral-Web-Service, der die Job-Tickets für den Auftrag zurückgibt. Wenn die Anzahl der abgerufenen Job-Tickets geringer ist als erwartet, kann der Workflow den Job bis zu 9-mal durch den Schritt CallSOAPService senden.

    • Lautet der Wert 10, wurde der Job 10 Mal an den Schritt CallSOAPService gesendet. Nach 10 Minuten entspricht die Anzahl der abgerufenen Job-Tickets nicht der erwarteten Anzahl. Der Job erfüllt die Regel im Anschluss [2] Auf Tickets prüfen nicht. Der Workflow sendet den Job durch den Anschluss [3] Zeitlimit an den Schritt FailWithMesssage und schreibt eine Fehlermeldung in das Jobprotokoll. Die Meldung besagt: Einige Job-Tickets wurden in der zulässigen Zeitspanne nicht gefunden.

        Hinweis:
      • Da die Meldung ein Jobmerkmal ist, wird sie im Jobmerkmalnotizbuch auf der Registerkarte "Informationen" für alle Jobs angezeigt, die den Workflow durchlaufen. Die Meldung wird nur dann im Jobprotokoll angezeigt, wenn der Workflow den Job über den Anschluss [3] Zeitlimit an den Schritt FailWithMesssage sendet.

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.

Der Schritt übermittelt die beiden untergeordneten Jobs an den Schritt MarcomProcessJobTicket.

Der original Auftragsjob wird an den Schritt WaitForRelatedJobs gesendet.

Wenn alle untergeordneten Jobs für den Auftrag beim Schritt WaitForRelatedJobs im Workflow MarcomProcessJobTicket ankommen, sendet RICOH ProcessDirector den Auftragsjob an den Schritt RetainCompletedJobs. Der Status des Auftragsjobs ändert sich in Aufbewahrt.

Wenn dieses Ereignis eintritt, simuliert die Web-Service-Benachrichtigung MarcomCloseoutOrder einen Aufruf an einen MarcomCentral-Web-Service. Der Web-Service ändert den Status des XML-Auftrags im Beispiel-Store.

Wenn die Benachrichtigung den Web-Service aufgerufen hat statt die Simulation auszuführen, findet diese Änderung im Beispiel-Store statt. Im Auftragsmanager im Dialogfeld Nach Element anzeigen ändern sich der Wert in der Spalte Auftragsstatus für jedes Element im Auftrag von In Bearbeitung in Versandt.

Phasen und Schritte

Die Abbildung zeigt die Schritte in allen Phasen im Beispiel-Workflow.