MarcomProcessOrders
L'unité d'entrée du service Web SOAP MarcomReceiveOrders simule un appel à un service Web MarcomCentral. Cette unité extrait une commande XML du magasin proposé en exemple sur le site Web MarcomCentral et envoie le travail XML au flot de travaux MarcomProcessOrders.
L'étape SetJobPropsFromTextFile définit la propriété Nom de travail sur Marcom Sample Order.
L'étape DetectInputDataStream définit le flot de données sur XML.
L'étape ApplyXSLTransform utilise la feuille de style XSLT orderToOverrides.xslt
pour convertir 8 éléments XML en 5 propriétés de travail RICOH ProcessDirector dans un fichier de substitutions.
Le tableau répertorie les propriétés de travail dans l'ordre dans lequel elles apparaissent dans la feuille de style XSLT et dans le fichier de substitutions.
Élément XML | Nom de base de données de la propriété de travail | Nom d'interface utilisateur de la propriété de travail |
---|---|---|
OrderNumber | Job.Marcom.OrderNumber | Numéro de commande MarcomCentral |
ID | Job.Marcom.OrderId | ID de commande MarcomCentral |
ShippingAddress/Address1 ShippingAddress/City ShippingAddress/State ShippingAddress/Zip | Job.Info.Attr1 | Personnalisé1 |
User/Email | Job.CustomerName | Nom du client |
count(OrderDetails/OrderDetail) | Job.Info.Attr2 | Personnalisé2 |
L'étape CallSOAPService simule un appel à un service Web MarcomCentral et extrait 2 fiches de travail pour la commande XML. La valeur du champ de mot de passe indique à RICOH ProcessDirector de lancer la simulation au lieu d'appeler le service Web.
L'étape ApplyXSLTransform2 utilise la feuille de styles XSLT jobTicketsReceived.xslt
pour calculer la valeur de la propriété Personnalisé3 en comptant les fiches de travail extraites. L'étape place la valeur dans un fichier
de substitutions et remplace le fichier de substitutions du répertoire spoule du travail
par le nouveau fichier de substitutions.
L'étape CheckTicketCount appelle un service Web RICOH ProcessDirector. Ce dernier vérifie si toutes les fiches de travail d'une commande ont été extraites. L'étape compare les valeurs de Personnalisé2 (nombre total de fiches de travail) et Personnalisé3 (fiches de travail extraites). Si les valeurs correspondent, l'étape définit la valeur de Personnalisé4 (résultat de la comparaison) sur ÉGAL. L'étape place la valeur dans un fichier de substitutions et remplace le fichier de substitutions du répertoire spoule par le nouveau fichier de substitutions.
La règle associée au connecteur [1] Toutes les fiches trouvées vérifie si la valeur de la propriété du travail Personnalisé4 (résultat de la comparaison) est ÉGAL.
- Dans l'affirmative, le nombre de fiches de travail extraites équivaut au nombre de fiches de travail attendu. Le flot de travaux envoie le travail directement à l'étape CreateJobsFromXML.
- Dans la négative, le nombre de fiches de travail extraites est inférieur au nombre
total de fiches de travail attendu. La règle associée au connecteur [2] Rechercher des fiches vérifie si la valeur de la propriété de travail Nombre personnalisé 1 est inférieure à 10. La première fois que le travail arrive à l'étape CheckTicketCount, la valeur de la propriété Nombre personnalisé 1 est 0.
- Si la valeur est comprise entre 0 et 9, le flot de travaux envoie le travail à l'étape Wait, qui impose une attente de 1 minute. Le flot de travaux envoie ensuite le travail
à l'étape RunExternalProgram.
L'étape RunExternalProgram lance un utilitaire Java qui incrémente la valeur de la propriété Nombre personnalisé 1 d'un pas égal à 1. Le flot de travaux renvoie ensuite le travail à l'étape CallSOAPService. Cette dernière renouvelle l'appel au service Web MarcomCentral qui renvoie les fiches de travail de la commande. Si le nombre de fiches de travail est inférieur au nombre attendu, le flot de travaux peut envoyer le travail à l'étape CallSOAPService jusqu'à 9 fois.
- Si la valeur est 10, cela signifie que le travail a été envoyé 10 fois à l'étape CallSOAPService. Après 10 minutes, le nombre de fiches de travail extraites ne correspond pas au
nombre attendu. Le travail n'est pas conforme à la règle associée au connecteur [2] Rechercher des fiches. Le flot de travaux envoie le travail par le biais du connecteur [3] Délai expiré à l'étape FailWithMesssage et écrit un message d'échec dans le journal du travail. Ce message est le suivant
: Some job tickets were not found in the time allowed (Certaines fiches de travail restent introuvables après expiration du délai imparti).
- Remarque:
- Comme ce message est une propriété de travail, il apparaît sur l'onglet d'information du bloc-notes des propriétés de tous les travaux qui transitent dans le flot de travaux. Ce message apparaît dans le journal du travail uniquement lorsque le flot de travaux envoie le travail à l'étape FailWithMesssage via le connecteur [3] Délai expiré.
- Si la valeur est comprise entre 0 et 9, le flot de travaux envoie le travail à l'étape Wait, qui impose une attente de 1 minute. Le flot de travaux envoie ensuite le travail
à l'étape RunExternalProgram.
L'étape CreateJobsFromXML utilise l'expression XPath //JobTicket pour analyser les informations de la fiche de travail XML. L'étape identifie 2 fiches de travail et crée 2 travaux enfants.
L'étape soumet les 2 travaux enfants au flot de travaux MarcomProcessJobTicket.
Le travail de la commande d'origine est envoyé à l'étape WaitForRelatedJobs.
Lorsque tous les travaux enfants de la commande arrivent à l'étape WaitForRelatedJobs dans le flot de travaux MarcomProcessJobTicket, RICOH ProcessDirector envoie le travail de la commande à l'étape RetainCompletedJobs. Ce travail prend alors l'état Conservé.
Lorsque cet événement se produit, la notification du service Web MarcomCloseoutOrder simule un appel à un service Web MarcomCentral. Ce service Web change l'état de la commande XML dans le magasin proposé en exemple.
Si la notification appelait le service Web au lieu de lancer la simulation, cette modification interviendrait dans le magasin proposé en exemple. Dans la boîte de dialogue Afficher par article du Gestionnaire de commandes, la valeur indiquée dans la colonne État de la commande de chaque article de la commande passe alors de Travail en cours à Livré.