Esecuzione del flusso di lavoro di esempio per elaborare ordini recuperati dai servizi Web REST

Il flusso di lavoro RestfulWebServiceWF mostra come elaborare gli ordini recuperati dai servizi Web REST che simulano un sito Web per l'ordinazione di libri. Un dispositivo di input del servizio Web REST, una procedura CallRESTService e una notifica del servizio Web REST scambiano dati utilizzando i servizi Web. Il flusso di lavoro fornisce inoltre esempi relativi a queste procedure: ConvertJSONToXML, ApplyXSLTransform, CreateJobsFromXML e DownloadFile.

Questo flusso di lavoro utilizza questi oggetti e file di esempio:

  • Flusso di lavoro: RestfulWebServiceWF
  • Dispositivo di input: RestfulWebServiceSample

    Il dispositivo di input esegue una chiamata GET per recuperare gli ordini JSON da un servizio Web REST di esempio su http://localhost:15080/restapi/1.0/sample/order

  • Notifica: RestfulWebServiceSampleNotify

    La notifica esegue una chiamata POST ad un servizio Web di esempio su http://localhost:15080/restapi/1.0/sample/completeJobTicket

  • Ordini JSON

    Un ordine viene recuperato ogni 30 secondi dal servizio Web di esempio.

    Contenuto dell'ordine di esempio:

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

    Ogni ordine contiene un numero generato a caso, ad esempio: 1238875463.

  • File di stampa: Brochure.pdf e Cover.pdf

    Questi file vengono scaricati localmente da http://localhost:15080/restapi/

  • File del foglio di stile XSLT:

    • orderToOverrides.xslt

    • jobticketToOverrides.xslt

    I file si trovano nella directory /aiw/aiw1/testfiles/restsample:

  • File PDF di notifica

    Un file PDF di notifica viene generato per ciascun ordine completato. Ogni file viene chiamato ORDER-ORDnumero, ad esempio: ORDER-ORD1238875463.

  • La proceduraCallRESTService esegue una chiamata GET per recuperare i ticket lavoro JSON da un servizio Web REST di esempio su http://localhost:15080/restapi/1.0/sample/jobTicket

    Nota:
  • I servizi Web di esempio sono disponibili localmente. Restituiscono dati di esempio in risposta a richieste specifiche trasmesse dal dispositivo di input di esempio, notifica e procedura CallRESTService. I servizi Web non supportano altre richieste.

  • Gli oggetti e i file di esempio, incluso il flusso di lavoro RestfulWebServiceWF, sono installati con la funzione Attivazione servizi Web.

Per eseguire il flusso di lavoro di esempio:

  1. Fare clic sulla scheda Principale.
  2. Nel portlet Stampanti, fare clic con il tasto destro del mouse sulla stampante Esempio e selezionare Abilita.
  3. Nel portlet del Dispositivo di input, fare clic con il tasto destro del mouse sul dispositivo di input del servizio Web REST RestfulWebServiceSample e selezionare Abilita e Connetti.

    Nella tabella lavori viene visualizzato un lavoro.

  4. Fare clic con il tasto destro del mouse sul dispositivo di input RestfulWebServiceSample e selezionare Disabilita.
  5. Fare clic nuovamente con il tasto destro del mouse sul dispositivo di input e selezionare Disconnetti.

    Nota: Il dispositivo di input di esempio esegue un polling per gli ordini ogni 30 secondi e recupera un lavoro JSON. Se il dispositivo di input non viene disabilitato e disconnesso, nella tabella lavori compare un nuovo lavoro ogni 30 secondi.

    Ogni volta che il dispositivo di input RestfulWebServiceSample recupera un lavoro JSON:

    • Il lavoro viene inviato mediante la sezione Principale del flusso di lavoro.

    • La procedura SetJobPropsFromTextFile imposta la proprietà Nome Cliente su RicohSample e la proprietà Cliente 1 su RicohCustom.

    • La procedura ConvertJSONToXML converte il lavoro in XML.

    • La funzione ApplyXSLTransform usa il foglio di stile XSLT orderToOverrides.xslt per convertire 2 elementi XML in 2 RICOH ProcessDirector proprietà di lavoro in un file di sovrascrittura:

      Elemento XML Proprietà di lavoro
      orderId Job.Info.Attr3
      customername Job.CustomerName

      Contenuti di un esempio di file di sovrascrittura:

      Job.Info.Attr3=ORD1238875463 Job.CustomerName=Ricoh

      La procedura posiziona il file di sovrascrittura nella directory di spool per il lavoro. RICOH ProcessDirector utilizza i valori nel file di sovrascrittura per impostare i valori delle proprietà per il lavoro.

    • La funzione AssignJobValues imposta la proprietà relativa al valore del Nome lavoro su ORDER-${Job.Info.Attr3}, ad esempio: ORDER-ORD1238875463.

    • L'operazione CallRESTService esegue una chiamata GET ad uno dei servizi Web di esempio che simulano il sito Web per ordinare libri. La procedura specifica l'ID ordine in quanto valore della proprietà dei Parametri di richiesta: orderId:${Job.Info.Attr3}.

      Il servizio Web restituisce le informazioni di ticket di lavoro JSON per l'ordine a RICOH ProcessDirector.

      Contenuti di informazioni di ticket di lavoro di esempio:

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

    • La procedura ConvertJSONToXML converte le informazioni del ticket di lavoro JSON in XML.

    • L'operazione CreateJobsFromXML utilizza l'espressione XPath //JobTicket per analizzare le informazioni del ticket di lavoro XML. La procedura rileva 2 ticket di lavoro e crea 2 lavori secondari.

      Contenuti di lavori secondari di esempio:

      <?xml version="1.0" encoding="UTF-8"?><JobTicket><copies>4</copies><file>http://localhost:15080/restapi/Brochure.pdf</file><itemnumber>2112076335</itemnumber><media>Letter Plain</media><type>Brochure</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 Preprinted</media><type>Cover</type><title>RPDBestSeller</title></JobTicket>

      La procedura invia i 2 lavori secondari al flusso di lavoro RestfulWebServiceWF.

      La regola sul connettore [2] Secondario determina se i lavori sono secondari controllando la presenza o meno di un punto decimale nel numero di lavoro. Il connettore invia i lavori secondari mediante la sezione Secondario del flusso di lavoro.

      Il lavoro JSON originario continua attraverso la sezione Principale fino alla procedura RunHotFolderApplication. Questa operazione mette il lavoro JSON in una hot folder: /aiw/aiw1/testfiles/restsample/sending

      Uno dei servizi Web di esempio che simula il sito Web per l'ordinazione di libri esegue il pooling delle hot folder per i lavori. Il servizio Web elabora ciascun lavoro JSON quando riceve una richiesta dalla notifica RestfulWebServiceSampleNotify. Per ulteriori informazioni, fare riferimento agli elementi contenuti nell'elenco relativo alla procedura RetainCompletedJobs.

    • La procedura ApplyXSLTransform2 utilizza il foglio di stile XSLT ticketlavorePerSovrascrittura.xslt per convertire 6 elementi XML per ciascun lavoro secondario in proprietà di lavoro RICOH ProcessDirector in un file di sovrascrittura:

      Elemento XML Proprietà di lavoro
      file Job.Info.Attr2
      itemnumber Job.Info.Attr1
      type Job.Info.Attr4
      title Job.Info.Attr5
      copies Job.Copies
      media Job.Media

      Contenuti di un esempio di file di sovrascrittura:

      Job.Info.Attr2=http://localhost:15080/restapi/Brochure.pdf Job.Info.Attr1=1182563839 Job.Info.Attr4=Brochure Job.Info.Attr5=RPDBestSeller Job.Copies=4 Job.Media=Letter Preprinted

    • La procedura DownloadFile scarica sia il Cover.pdf sia il Brochure.pdf file da http://localhost:15080/restapi/ impostando il valore della proprietà URL for download file su ${Job.Info.Attr2}.

    • La procedura AssignJobValues2 stabilisce il valore di 3 proprietà di lavoro:

      • Stampante richiesta: Esempio

      • Flusso di dati input: PDF

      • Nome lavoro: ${Job.Info.Attr5}-${Job.Info.Attr4}

      TI nomi dei lavori secondari per il file Brochure.pdf e per il file Cover.pdf sono ora RPDBestSeller-Brochure e RPDBestSeller-Cover.

    • Le procedure OptimizePDF, CountPages, CreatePageRanges, e PrintJobs elaborano e stampano i lavori secondari RPDBestSeller-Brochure e RPDBestSeller-Cover sulla stampante Esempio.

    • Quando ciascun lavoro secondario di stampa arriva alla procedura RetainCompletedJobs la notifica del servizio web RestfulWebServiceSampleNotify esegue una chiamata POST a uno dei servizi web di esempiohttp://localhost:15080/restapi/1.0/sample/completeJobTicket. Il valore della proprietà Richiesta parametri è:

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

      Il servizio Web attende fino a quando tutti i lavori secondari del lavoro JSON originario sono nello stato lavoro Conservato. Il servizio Web crea quindi un file PDF con il numero di lavoro e il numero di elemento per ciascun ticket di lavoro nell'ordine. Ad esempio:

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

      Il servizio web inserisce il file PDF nella hot folder di recupero per l'operazione RunHotFolderApplication: /aiw/aiw1/testfiles/restsample/retrieval

      La procedura RunHotFolderApplication esegue un polling della hot folder, identifica il file PDF e invia il lavoro alla procedura successiva.

    • L'operazione AssignJobValues imposta il valore della proprietà Flusso di dati di input su PDF e invia il lavoro PDF all'operazione RetainCompletedJobs.

  6. Nella tabella lavori, fare di nuovo clic con il tasto destro su ORDER-ORDnumero lavoro e selezionare Visualizza.

    Nel visualizzatore viene visualizzato il file PDF. L'informazione contenuta nel file PDF conferma che 2 lavori secondari sono stati elaborati.