MarcomProcessOrders
Il dispositivo di input del servizio Web SOAP MarcomReceiveOrders simula una chiamata ad un servizio Web MarcomCentral. Il dispositivo di input recupera un ordine XML dall'archivio di esempio nel sito Web MarcomCentral e invia il lavoro XML al flusso di lavoro MarcomProcessOrders.
L'operazione SetJobPropsFromTextFile imposta la proprietà Nome lavoro con Marcom Sample Order.
La procedura DetectInputDataStream imposta il flusso di dati con XML.
La procedura ApplyXSLTransform utilizza il foglio di stile XSLT orderToOverrides.xslt
per convertire 8 elementi XML in 5 proprietà di lavoro RICOH ProcessDirector in un file di sovrascrittura.
La tabella elenca le proprietà di lavoro nell'ordine in cui sono specificate nel foglio di stile XSLT e in cui appaiono nel file di sovrascrittura.
Elemento XML | Nome database della proprietà di lavoro | Nome della proprietà di lavoro visualizzato nell'interfaccia utente |
---|---|---|
OrderNumber | Job.Marcom.OrderNumber | Numero Ordine MarcomCentral |
ID | Job.Marcom.OrderId | ID Ordine MarcomCentral |
ShippingAddress/Address1ShippingAddress/CityShippingAddress/StateShippingAddress/Zip | Job.Info.Attr1 | Personalizzato 1 |
User/Email | Job.CustomerName | Nome cliente |
count(OrderDetails/OrderDetail) | Job.Info.Attr2 | Personalizzato 2 |
La procedura CallSOAPService simula una chiamata a un servizio Web MarcomCentral e recupera 2 ticket di lavoro per l'ordine XML. Il valore nel campo password indica a RICOH ProcessDirector di eseguire la simulazione invece di chiamare il servizio Web.
La procedura ApplyXSLTransform2 utilizza il foglio di stile XSLT jobTicketsReceived.xslt
per calcolare il valore della proprietà Personalizzato 3 conteggiando il numero di ticket di lavoro recuperati. La procedura inserisce il
valore in un file di sovrascrittura e lo sovrascrive nella directory spool per il
lavoro con il nuovo file di sovrascrittura.
La procedura CheckTicketCount chiama un servizio Web RICOH ProcessDirector. Il servizio Web controlla che siano stati recuperati tutti i ticket di lavoro per un ordine. La procedura compara i valori di Personalizzato 2 (ticket di lavoro totali) e Personalizzato 3 (ticket di lavoro recuperati). Se i valori corrispondono, la procedura imposta il valore di Personalizzazione 4 (risultato della comparazione) con UGUALE. La procedura inserisce il valore in un file di sovrascrittura e lo sovrascrive nella directory spool con il nuovo file di sovrascrittura.
La regola sul connettore [1] Tutti i ticket trovati controlla se il valore della proprietà di lavoro Personalizzato 4 (risultato della comparazione) è UGUALE.
- In tal caso, il numero dei ticket di lavoro recuperati è uguale al numero totale di ticket di lavoro previsti. Il flusso di lavoro invia il lavoro direttamente alla procedura CreateJobsFromXML.
- In caso contrario, invece, il numero di ticket di lavori recuperati è inferiore al
numero totale di ticket di lavoro previsti. La regola sul connettore [2] Cerca ticket controlla se il valore della proprietà di lavoro Personalizza conteggio 1 è inferiore a 10. La prima volta che il lavoro arriva all'operazione CheckTicketCount, il valore della proprietà Personalizza conteggio 1 è pari a 0.
- Se il valore è da 0 a 9, il flusso di lavoro invia il lavoro alla procedura Wait, che attende per 1 minuto. Il flusso di lavoro invia quindi il lavoro alla procedura
RunExternalProgram.
La procedura RunExternalProgram attiva un'utilità Java che aumenta il valore della proprietà Calcolo personalizzazione 1 di 1. Il flusso di lavoro ritrasmette quindi il lavoro alla procedura CallSOAPService. La procedura ripete la chiamata al servizio Web MarcomCentral che restituisce i ticket di lavoro per l'ordine. Se il numero di ticket di lavoro recuperati è inferiore a quanto previsto, il flusso di lavoro può inviare il lavoro mediante la procedura CallSOAPService fino a 9 volte.
- Se il valore è pari a 10, il lavoro è stato inviato all'operazione CallSOAPService 10 volte. Dopo 10 minuti, il numero di ticket di lavoro recuperati non risulta uguale
al numero previsto. Il lavoro non soddisfa la regola sul connettore [2] Cerca ticket. Il flusso di lavoro invia il lavoro mediante il connettore [3] Timeout alla procedura FailWithMesssage e scrive un messaggio di insuccesso al log del lavoro. Il messaggio precisa: Some job tickets were not found in the time allowed.
- Nota:
- Dato che è una proprietà di lavoro, il messaggio viene visualizzato sulla scheda Informazioni del notebook della proprietà di lavoro per tutti i lavori che passano attraverso il flusso di lavoro. Il messaggio compare sul log di lavoro solo quando il flusso di lavoro invia il lavoro mediante connettore [3] Timeout alla procedura FailWithMesssage.
- Se il valore è da 0 a 9, il flusso di lavoro invia il lavoro alla procedura Wait, che attende per 1 minuto. Il flusso di lavoro invia quindi il lavoro alla procedura
RunExternalProgram.
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.
La procedura invia i 2 lavori secondari al flusso di lavoro MarcomProcessJobTicket.
Il lavoro originale viene inviato alla procedura WaitForRelatedJobs.
Quando tutti i lavori secondari dell'ordine arrivano alla procedura WaitForRelatedJobs nel flusso di lavoro MarcomProcessJobTicket, RICOH ProcessDirector invia l'ordine di lavoro alla procedura RetainCompletedJobs. Lo stato dell'ordine cambia in Retained.
Quando si verifica un evento, la notifica del servizio Web MarcomCloseoutOrder simula una chiamata al servizio Web MarcomCentral. Il servizio Web modifica lo stato dell'ordine XML nell'archivio di esempio.
Se la notifica ha chiamato il servizio Web invece di eseguire la simulazione, questa modifica avviene nell'archivio di esempio. Nella finestra di dialogo Visualizza per Elemento in Gestione Ordini, il valore nella colonna Stato ordine per ciascun elemento nell'ordine cambia da Operazione in Corso a Spedito.