Scénario d'utilisation pour le traitement de commandes JSON avec les services Web

Dans ce scénario, une entreprise d'imprimerie souhaite traiter des commandes récupérées d'un site Web pour la commande de livres. Chaque commande est constituée de 2 fiches de travail. Une fiche de travail fournit les informations (y compris l'emplacement du fichier d'impression) requises pour imprimer le livre. L'autre fiche de travail fournit les informations nécessaire pour imprimer la couverture du livre. Le livre et sa couverture passe par différents processus de production et l'entreprise d'imprimerie doit signaler quand toute la commande est terminée. Le site Web fournit une interface de services Web REST.

La fonctionnalité Activation des services Web comprend des exemples d'objets qui illustrent le fonctionnement de ce scénario :

  • Flot de travaux RestfulWebServiceWF
  • Unité d'entrée du service Web REST RestfulWebServiceSample
  • Commandes JSON et fiches de travail
  • Expression XPath
  • Feuilles de style XSLT
  • Fichiers de substitution RICOH ProcessDirector
  • Notification de service Web REST RestfulWebServiceSampleNotify

Pour examiner le flot de travaux RestfulWebServiceWF, consultez la rubrique tâche associée relative à l'exécution flot de travaux qui traite des commandes récupérées de services Web REST.

Découverte des exigences du site Web de commande de livres

L'entreprise d'imprimerie découvre les exigences pour communiquer avec le service Web REST du site Web de commande de livres. RICOH ProcessDirector doit appeler 3 services Web :

  • Un appel à un service Web récupère les informations JSON sur chaque commande de livre. Si des commandes sont en attente sur le site Web, le service Web renvoie une commande JSON en réponse à chaque appel GET. Si aucune commande n'est en attente, le service Web ne répond pas à l'appel.

    Contenu de l'exemple de commande JSON :

    {"Order": {"orderId": "ORD1238875463", "customername": "Ricoh"}}

  • Un appel à un autre service Web récupère les informations JSON relatives aux fiches de travail du livre et de sa couverture.

    Exemple d'informations de fiche de travail JSON :

    {"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" }]}

  • Un appel à un troisième service Web envoie le numéro d'élément de chaque fiche de travail terminée pour une commande. Lorsque les deux numéros d'élément d'une commande ont été envoyés, le service Web crée un fichier PDF qui énumère les numéros de travail et les numéros d'élément. Le service Web place le fichier PDF dans un répertoire.

    Contenu de l'exemple de fichier PDF :

    10000001.2 with item number 1182563839 has been processed10000001.1 with item number 1934194376 has been processed

    Remarque:
  • Les 3 exemples de services Web simulent des services Web pour un site Web de commande de livres, mais sont disponibles localement dans la fonctionnalité Activation des services Web. Ils renvoient des exemples de données en réponse à des requêtes spécifiques de l'unité d'entrée RestfulWebServiceSample, de l'étape CallRESTService du flot de travaux RestfulWebServiceWF et de la notification RestfulWebServiceSampleNotify.
  • Les mêmes exemples de services Web génèrent des exemples de commandes avec différents ID de commande et ensembles de fiches de travail avec différents numéros d'élément. Les autres données des exemples sont identiques.

Pour appeler les services Web, l'administrateur RICOH ProcessDirector apprend :

  • Les valeurs nécessaires pour l'authentification avec le site Web de commande de livres.
  • Les valeurs nécessaires pour demande des données à chaque service Web.
  • Le format des données fournies en réponse par chaque service Web.

L'administrateur utilise un plug-in de navigateur pour exécuter des tests manuels qui demandent des réponses de la part des services Web REST. Parmi les exemples de plug-ins, on peut citer RESTClient pour Mozilla Firefox et Boomerang pour Google Chrome.

Préparation du traitement du contenu JSON

L'administrateur passe en revue le contenu des commandes JSON et des fiches de travail renvoyées par les services Web REST et identifie les informations requises par RICOH ProcessDirector. Ensuite, l'administrateur évalue les fonctions RICOH ProcessDirector qui appellent les services Web et traitent le contenu XML et JSON. L'administrateur décide ensembles d'étapes et des objets RICOH ProcessDirector qui traitent les commandes et les fiches de travail et extrait les informations requises. L'administrateur définit ensuite les expressions XPath et les feuilles de style XSLT requises par les objets et les étapes.

  1. Pour traiter les commandes et les fiches de travail dans RICOH ProcessDirector, l'administrateur identifie les objets JSON qui fournissent les informations requises. L'administrateur attribue les valeurs de ces objets à des propriétés de travail RICOH ProcessDirector.
    • Pour appeler le service Web qui récupère les information JSON concernant les fiches de travail, l'administrateur doit fournir l'ID de commande. L'administrateur souhaite également suivre le nom du client dans RICOH ProcessDirector.

      Deux membres de l'objet commande JSON fournissent ces valeurs : orderId et customername.

      Ce tableau présente les 2 membres JSON et les noms des propriétés de travail RICOH ProcessDirector que l'administrateur utilise pour extraire les informations.

      Membre JSON Nom de base de données de la propriété de travail Nom d'interface utilisateur de la propriété de travail
      orderId Job.Info.Attr3 Personnalisé3
      customername Job.CustomerName Nom du client

    • Pour créer des travaux séparés pour chaque fiche de travail, l'administrateur doit utiliser le numéro d'élément. Pour télécharger et imprimer les fichiers PDF des livres et des couvertures, l'administrateur doit utiliser les informations sur les supports, les fichiers et les copies de la fiche de travail. L'administrateur souhaite également suivre le type de livre et le titre dans RICOH ProcessDirector.

      Six membres de la fiche de travail JSON fournissent ces valeurs : file, itemnumber, type, title, copies et media.

      Ce tableau affiche ces 6 membres JSON et les noms des propriétés de travail RICOH ProcessDirector correspondantes.

      Membre JSON Nom de base de données de la propriété de travail Nom d'interface utilisateur de la propriété de travail
      itemnumber Job.Info.Attr1 Personnalisé1
      file Job.Info.Attr2 Personnalisé2
      type Job.Info.Attr4 Personnalisé4
      title Job.Info.Attr5 Personnalisé5
      copies Job.Copies Nombre de copies du travail requises
      media Job.Media Supports

  2. Avant de concevoir le processus RICOH ProcessDirector, l'administrateur examine le modèle d'étape et les objets RICOH ProcessDirector qui appellent les services Web REST :
    • Unité d'entrée du service Web REST
    • Notification de service Web REST
    • Modèle d'étape CallRESTService

    Chacun d'entre eux peut effectuer des appels DELETE, GET, PATCH, POST ou PUT, et chacun peut traiter JSON ou XML.

    L'unité d'entrée peut créer un travail à partir de chaque réponse ou évaluer la réponse à la recherche d'une expression JSONPath ou XPath. Si l'unité d'entrée effectue une évaluation, elle peut créer un travail chaque fois qu'elle trouve l'expression.

  3. L'administrateur examine également les modèles d'étape RICOH ProcessDirector qui traitent le contenu XML :
    • Une étape basée sur le modèle d'étape ApplyXSLTransform peut convertir une entrée dans un format en une sortie dans un autre format. Par exemple, l'étape peut convertir le XML en cette sortie :
      • Un fichier texte contenant des propriétés de document ou un travail RICOH ProcessDirector.
      • Un fichier contenant du XML dans un autre format pour entrée dans l'étape CreateJobsFromXML.
    • Grâce à une étape basée sur le modèle d'étape CreateJobsFromXML, vous pouvez créer un ou plusieurs travaux XML en évaluant le contenu d'un fichier XML en entrée. L'étape étape peut soumettre les travaux en tant que travaux indépendants ou enfants à un flot de travaux spécifique.

    Étant donné que ApplyXSLTransform et CreateJobsFromXML ne traitent pas le contenu JSON, une étape basée sur le modèle d'étape ConvertJSONToXML peut effectuer la conversion de JSON en XML pour l'entrée dans ces étapes.

  4. L'administrateur décide des composants de base du processus RICOH ProcessDirector.
    • Pour récupérer des commandes JSON du site Web de commande de livre, l'administrateur choisit une unité d'entrée de service Web REST.

      Dans la mesure où chaque réponse ne contient qu'une seule commande, l'administrateur configure l'unité d'entrée pour créer un travail à partir de chaque réponse.

    • Pour récupérer des fiches de travail JSON pour chaque commande, l'administrateur choisit 3 étapes :
      • Une étape ConvertJSONToXML convertit les commandes JSON en XML pour entrée dans une étape ApplyXSLTransform.
      • L'étape ApplyXSLTransform convertit les valeurs de l'ID de commande et du nom du client dans les commandes XML en propriétés de travail RICOH ProcessDirector Personnalisé 3 et Nom du client.
      • En utilisant la valeur de la propriété Personnalisé 3, une étape CallRESTService récupère les fiches de travail JSON.
    • Pour créer un travail pour chaque fiche de travail, l'administrateur choisit 2 étapes :
      • Une étape ConvertJSONToXML convertit les fiches de travail JSON en XML pour entrée dans une étape CreateJobsFromXML.
      • L'étape CreateJobsFromXML crée un travail séparé pour chaque fiche de travail en évaluant la réponse à l'aide d'une expression XPath.
    • Pour extraire les informations des fiches de travail et les utiliser pour télécharger les fichiers d'impression PDF, l'administrateur choisit 3 étapes :
      • Une étape ApplyXSLTransform convertit les valeurs de la fiche de travail XML en propriétés de travail RICOH ProcessDirector. Par exemple, l'URL du fichier à télécharger est convertie en la valeur de la propriété de travail Personnalisé 2.
      • En utilisant la valeur de la propriété Personnalisé 2, une étape DownloadFile télécharge les fichiers d'impression.
      • Une étape AssignJobValues définit le flot de données en entrée sur PDF pour indiquer aux autres étapes du flot de travaux le type de fichier qu'elles traitent.
    • Lorsque les deux travaux PDF d'une commande sont imprimés, l'administrateur souhaite informer le site Web ce commande de livre que la commande est prête à être expédiée. Étant donné que le site Web utilise REST, l'administrateur choisit une notification de service Web REST.
  5. Pour l'étape CreateJobsFromXML, l'administrateur a besoin d'une expression XPath (XML Path Language) qui identifie les fiches de travail. Pour définir l'expression, l'administrateur examines le XML des fiches de travail.
  6. Pour chaque étape ApplyXSLTransform, l'administrateur a besoin d'une feuille de style XSLT pour convertir les éléments XML en propriétés de travail. L'administrateur utilise un outil XSLT (comme Altova MapForce) pour créer 2 feuilles de style XSLT :
    • Une feuille de style XSLT commande-vers-fichier-substitution convertit les éléments ID de commande et nom de client de la commande en propriétés de travail.
    • Une feuille de style XSLT fiche-travail-vers-fichier-substitution convertit le fichier, le numéro d'élément, le type, le titre, les copies et les éléments média de la fiche de travail en propriétés de travail.

    Chaque étape ApplyXSLTransform sort les propriétés de travail dans un fichier texte. La valeur de chaque propriété Output file spécifie un fichier de substitution dans le répertoire spoule du travail.

    RICOH ProcessDirector utilise les valeurs du fichier de substitutions pour définir les valeurs des propriétés du travail. Les valeurs des commandes sont utilisées pour récupérer les fiches de travail. Les valeurs des fiches de travail sont utilisées pour télécharger et traiter les fichiers d'impression.

Configuration du flot de travaux

L'administrateur configure un flot de travaux à 2 branches.

  1. L'administrateur crée un flot de travaux nommé ProcessBookOrders et définit les propriétés de l'étape SetJobPropsFromTextFile.
  2. L'administrateur ajoute 10 étapes au flot de travaux dans l'ordre suivant :
    • DetectInputDataStream

      Cette étape définit la propriété Flot de données en entrée sur JSON.

    • ConvertJSONToXML

      Cette étape utilise les valeurs par défaut pour le fichier d'entrée JSON et le fichier de sortie XML.

    • ApplyXSLTransform

      Cette étape utilise la feuille de style XSLT commande-vers-fichier-substitution pour créer un fichier texte qui définit des valeurs pour les propriétés Personnalisé 3 et Nom du client. L'étape sort le fichier texte sous la forme d'un fichier de substitution dans le répertoire spoule du travail. RICOH ProcessDirector utilise le fichier de substitution pour définir les valeurs des propriétés Personnalisé 3 et Nom du client du travail.

    • AssignJobValues

      Cette étape définit la valeur de la propriété Nom du travail sur ORDER-order ID.

    • CallRESTService

      Cette étape effectue un appel GET à un autre service Web pour le site Web de commande de livres. L'étape spécifie l'ID de commande comme valeur de la propriété Paramètres de la requête :

      orderId:${Job.Info.Attr3}

      Le service Web renvoie les informations de la fiche de travail JSON.

    • ConvertJSONToXML

      Cette étape utilise les valeurs par défaut pour le fichier d'entrée JSON et le fichier de sortie XML.

    • CreateJobsFromXML

      L'administrateur définit la valeur de l'expression XPath sur //JobTicket et la valeur du flot de travaux des nouveaux travaux sur ProcessBookOrders. Pour garder les nouveaux travaux connectés au travail original de la commande, l'administrateur définit la valeur de la propriété Créer des travaux enfants sur Oui. Pour spécifier l'ID de commande comme nom de travail, l'administrateur définit la valeur de la propriété Nom d'un nouveau travail sur ${Job.Info.Attr3}.

      Les travaux XML qui arrivent à l'étape passent à la suivante, tandis que le nouveaux travaux enfants sont envoyés dans une branche séparée du flot de travaux.

    • RunHotFolderApplication

      L'administrateur ajoute cette étape pour communiquer avec le service Web qui crée des fichiers PDF et les place dans un dossier prioritaire. Pour commencer, le service Web interroge un dossier prioritaire pour rechercher des travaux de commande. Lorsque le service Web a reçu 2 requêtes par commande de la notification RestfulWebServiceSampleNotify, le service Web place un fichier PDF dans un autre dossier prioritaire. L'étape RunHotFolderApplication spécifie le dossier prioritaire des travaux de commande comme valeur de la propriété Dossier d'envoi. L'étape spécifie le dossier prioritaire contenant les fichiers PDF comme valeur de propriété Dossier d'extraction.

        Remarque:
      • Ce scénario comprend une étape RunHotFolderApplication parce que l'exemple de flot de travaux RestfulWebServiceWF utilise cette étape pour échanger des données avec l'exemple de service Web. Plutôt que de renvoyer un fichier PDF lorsqu'une commande est terminée, le service Web pourrait assurer une autre fonction. Par exemple, le service Web pourrait envoyer un message électronique pour informer le service d'emballage que la commande est prête à enlever.

    • AssignJobValues

      Cette étape définit la valeur de la propriété Flot de données en entrée sur PDF pour que les fichiers PDF créés par le service Web soient visibles dans le flot de travaux.

    • RetainCompletedJobs
  3. L'administrateur connecte l'étape RetainCompletedJobs à l'étape RemoveJobs.
  4. L'administrateur crée une deuxième branche pour traiter les travaux enfants des livres et de leurs couvertures.
    • L'administrateur définit une règle sur le connecteur entre les étapes SetJobPropsFromTextFile et DetectInputDataStream :
      • Nom de la règle : Parent
      • Ordre d'exécution : 1
      • Propriété : Numéro du travail
      • Comparaison : Différent
      • Valeur : *.*

      La règle envoie des travaux JSON que l'unité d'entrée récupère dans l'étape DetectInputDataStream.

    • L'administrateur ajoute une étape ApplyXSLTransform2 dans la phase Receive et la connecte à l'étape SetJobPropsFromTextFile.

      L'étape utilise la feuille de style XSLT fiche-travail-vers-fichier-substitution pour créer un fichier de substitution qui définit des valeurs pour les propriétés Personnalisé 2, Personnalisé 1, Personnalisé 4, Personnalisé 5, Nombre de copies du travail requises, e Média. Personnalisé 2, Personnalisé 1, Personnalisé 4 et Personnalisé 5 sont, respectivement, fichier, numéro d'élément, type et titre.

    • L'administrateur définit une règle sur le connecteur entre les étapes SetJobPropsFromTextFile et ApplyXSLTransform2 :
      • Nom de la règle : Child
      • Ordre d'exécution : 2
      • Propriété : Numéro du travail
      • Comparaison : Identique
      • Valeur : *.*

      La règle envoie les travaux enfants que l'étape CreateJobsFromXML crée à l'étape ApplyXSLTransform2.

    • La partie impression de ce scénario est simple, car il se concentre sur les services Web. Un processus de production pourrait envoyer les livres et leurs couvertures par différentes étapes de flots de travaux ou branches différents à différentes imprimantes.
  5. L'administrateur ajoute 6 étapes au flot de travaux dans l'ordre suivant :
    • DownloadFile

      Cette étape télécharge des fichiers PDF du livre et de sa couverture à partir d'un site Web. L'étape définit la valeur de la propriété URL du fichier à télécharger sur Personnalisé 2, qui contient les informations de téléchargement de fichiers de la fiche de travail.

    • AssignJobValues

      Cette étape définit la valeur de 3 propriétés de travail :

      • Imprimante requise
      • Flot de données en entrée
      • Nom du travail

      La valeur de Nom du travail est ${Job.Info.Attr5}-${Job.Info.Attr4} : le titre du livre, un tiret et le type de travail d'impression (livre ou couverture).

    • OptimizePDF
    • CountPages
    • CreatePageRanges
    • PrintJobs
        Remarque:
      • La partie impression de ce scénario ne comprend que 4 étapes, car il se concentre sur les services Web. Un processus de production pourrait envoyer les livres et leurs couvertures par de nombreuses étapes supplémentaires de branches séparées (ou de flots de travaux séparés) à différentes imprimantes.
  6. L'administrateur termine le flot de travaux en connectant l'étape PrintJobs à l'étape RetainCompletedJobs.

Cette figure illustre l'unité d'entrée, le flot de travaux et la notification. La ligne noire indique que l'étape CreateJobsFromXML soumet les travaux enfants au flot de travaux ProcessBookOrders.

Définition de l'unité d'entrée

Dans l'onglet Général de l'unité d'entrée du service Web REST, l'administrateur définit la valeur de la propriété Flot de travaux enfant sur ProcessBookOrders. L'unité d'entrée soumet les commandes JSON récupérées du service Web du site Web de commande de livres à ce flot de travaux. L'administrateur définit l'intervalle d'interrogation sur 30 secondes afin de récupérer rapidement les commandes lorsque plusieurs d'entre elles sont en attente sur le site Web. D'autres propriétés sont définies pour correspondre à l'environnement de l'entreprise d'imprimerie.

Dans l'onglet Requête, l'administrateur spécifie les valeurs requises pour la récupération des commandes JSON du service Web REST. Étant donné que chaque réponse contient une commande JSON, l'administrateur définit la valeur de la propriété Créer des travaux à partir de la réponse sur Toujours. Le réseau de l'entreprise d'imprimerie ne nécessite pas de serveur proxy.

    Remarque:
  • Pour utiliser un serveur proxy, définissez la propriété Utiliser un serveur proxy sur Oui. Les propriétés du serveur proxy sont définies dans l'onglet Serveur proxy de la page Paramètres système.

Dans l'onglet Authentification, l'administrateur spécifie les valeurs requises pour l'authentification avec le service Web REST.

    Remarque:
  • L'unité d'entrée RestfulWebServiceSample fournie indique comment définir une unité d'entrée du service Web REST pour ce scénario. L'unité d'entrée appelle un service Web qui ne nécessite pas d'authentification. Pour plus d'informations sur l'authentification avec un service Web REST, consultez la rubrique des tâches associées.

Définition de la notification

Dans l'onglet Requête de la notification de service Web REST, l'administrateur spécifie les valeurs requises par le service Web REST qui reçoit la notification. Le réseau de l'entreprise d'imprimerie ne nécessite pas de serveur proxy.

    Remarque:
  • Pour utiliser un serveur proxy, définissez la propriété Utiliser un serveur proxy sur Oui.

Dans l'onglet Authentification, l'administrateur spécifie les valeurs requises pour l'authentification avec le service Web REST.

    Remarque:
  • La notification RestfulWebServiceSampleNotify fournie indique comment définir une notification de service Web REST pour ce scénario. La notification appelle un service Web qui ne nécessite pas d'authentification. Pour plus d'informations sur l'authentification avec un service Web REST, consultez la rubrique des tâches associées.

Dans l'onglet Événement, l'administrateur spécifie les informations relatives à l'événement de notification :

  • Type d'événement : Travail
  • Propriété : État du travail en cours
  • Action : Passe à
  • Valeur : Conservé

Dans l'onglet Conditions, l'administrateur spécifie les informations relatives aux conditions de notification :

  • Appliquer tout ou partie des conditions suivantes = Tout
  • Propriété 1 : Flot de travaux
  • Comparaison 1 : =
  • Valeur 1 : ProcessBookOrders
  • Propriété 2 : Numéro du travail
  • Comparaison 2 : Identique
  • Valeur 2 : *.*

Voici le récapitulatif de l'instruction des conditions :

Job.JobType = 'RestfulWebServiceWF' AND Job.ID like '*.*'

Lorsque tous les travaux enfants d'une commande atteignent l'étape RetainCompletedJobs, la notification appelle le service Web. Le service Web crée un fichier PDF contenant le numéro d'élément de chaque fiche de travail de la commande. Le service Web place le fichier dans un dossier prioritaire contrôlé à l'étape RunHotFolderApplication. Le fichier PDF s'affiche dans le tableau des travaux. Les employés de l'entreprise d'imprimerie peuvent consulter le fichier PDF afin de vérifier que le livre et la couverture de la commande ont bien été imprimés.

Traitement des travaux via le flot de travaux

Le flot de travaux RestfulWebServiceWF fourni avec la fonction Activation des services Web est identique au flot de travaux ProcessBookOrders. Pour voir comment les travaux sont traités via le flot de travaux ProcessBookOrders, exécutez le flot de travaux RestfulWebServiceWF. Pour plus d'informations, consultez la rubrique des tâches associées relative à l'exécution d'un flot de travaux qui traite des commandes récupérées de services Web REST.