Scenari di utilizzo per l'elaborazione di ordini in un file XML
In questo scenario, l'amministratore di RICOH ProcessDirector utilizza uno strumento di terze parti (ad esempio Altova MapForce) per creare fogli di stile XSLT (Extensible Stylesheet Language Transformations). Per esempi di file di input XML, espressioni XPath, fogli di stile XSLT e file di sovrascrittura di RICOH ProcessDirector che funzionano in questi casi, consultare il riferimento correlato.
Riesame e preparazione all'elaborazione dei file XML
L'amministratore di RICOH ProcessDirector rivede i contenuti dei file XML e decide come elaborarli.
- Innanzitutto, l'amministratore identifica gli elementi XML che forniscono i valori
per le proprietà di lavoro RICOH ProcessDirector.
Nell'esempio del file di input XML, due elementi XML forniscono le informazioni richieste per tracciare ogni elemento di un ordine. L'attributo number dell'elemento order e l'elemento customername forniscono il numero dell'ordine e il nome del cliente.
Per gli elementi di stampa, l'elemento printfile fornisce l'URL del file PDF da scaricare e stampare.
Per gli elementi di promozione, l'attributo number dell'elemento stock fornisce la posizione dell'elemento nel magazzino.
Per tutti gli elementi, l'elemento quantity fornisce la quantità ordinata.
Questa tabella mostra questi cinque elementi XML e il nome delle corrispondenti proprietà di lavoro RICOH ProcessDirector.
Elemento XML Nome database della proprietà di lavoro Nome della proprietà di lavoro visualizzato nell'interfaccia utente <order number> Job.Info.Attr1 Personalizzato 1 <customername> Job.CustomerName Nome cliente <printfile> Job.DownloadFile URL per il file di download <stock number> Job.Info.Attr2 Personalizzato 2 <quantity> Job.Copies Copie di lavoro richieste - L'amministratore suddivide il processo in cinque parti:
- Creare un lavoro XML separato per ogni ordine.
- Assegnare i valori dell'ordine (order number e customername) alle proprietà del lavoro.
- Per ciascun ordine, creare un lavoro XML separato per ogni elemento.
- Assegnare i valori degli elementi (printfile, stock number e quantity) alle proprietà del lavoro.
- Elaborare gli elementi di stampa e gli elementi di stock in flussi di lavoro separati.
- L'amministratore decide di definire quattro flussi di lavoro:
- Il flusso di lavoro ExtractOrdersFromXML riceve gli ordini ed effettua lavori separati per ciascun ordine.
- Il flusso di lavoro SplitOrderIntoPrintAndStockJobs separa gli elementi di ogni ordine in lavori di stampa e lavori di stock.
- Il flusso di lavoro ProcessPrintJobs elabora i lavori di stampa.
- Il flusso di lavoro ProcessStockJobs elabora i lavori di stock.
Un'operazione basata sul modello di operazione CreateJobsFromXML crea lavori dagli elementi in un file XML che corrispondono a un'espressione XPath. L'operazione inoltra i lavori a un flusso di lavoro.
- L'amministratore decide di usare tre operazioni CreateJobsFromXML, ognuna con una diversa espressione XML Path Language (XPath):
- La prima operazione crea un lavoro XML separato per ogni ordine.
L'espressione relativa ai lavori di ordinazione identifica gli elementi XML che corrispondono agli ordini: /seller/order
- La seconda operazione crea un lavoro XML separato per ogni elemento di stampa.
L'espressione relativa ai lavori di stampa identifica gli elementi XML che corrispondono agli elementi di stampa: /order/item/printfile/ancestor::item
- La terza operazione crea un lavoro XML separato per ogni elemento promozionale.
L'espressione relativa ai lavori di stock identifica gli elementi XML che corrispondono agli elementi promozionali: /order/item/stock/ancestor::item
L'amministratore assegna le operazioni CreateJobsFromXML ai flussi di lavoro:
- La prima operazione procede nel flusso di lavoro ExtractOrdersFromXML. L'operazione inoltra i lavori XML per ciascun ordine al flusso di lavoro SplitOrderIntoPrintAndStockJobs.
- La seconda e la terza operazione procedono nel flusso di lavoro SplitOrderIntoPrintAndStockJobs. La seconda operazione inoltra i lavori XML per gli elementi di stampa al flusso di lavoro ProcessPrintJobs. La terza operazione inoltra i lavori XML per gli elementi promozionali al flusso di lavoro ProcessStockJobs.
Un'operazione basata sul modello di procedura ApplyXSLTransform converte il file XML in un file di sovrascrittura di RICOH ProcessDirector che specifica i valori delle proprietà del lavoro.
- La prima operazione crea un lavoro XML separato per ogni ordine.
- L'amministratore decide di utilizzare tre operazioni ApplyXSLTransform. Ogni operazione utilizza un foglio di stile XSLT. L'amministratore utilizza uno
strumento XSLT di terze parti per creare fogli di stile XSLT.
- La prima operazione utilizza il foglio di stile XSLT relativo ai lavori di ordinazione.
Converte l'attributo name dell'elemento order e dell'elemento customername nelle proprietà del lavoro Job.Info.Attr1 e Job.CustomerName.
L'operazione procede nel flusso di lavoro SplitOrderIntoPrintAndStockJobs prima delle due operazioni CreateJobsFromXML.
- La seconda operazione utilizza il foglio di stile XSLT relativo ai lavori di stampa.
Converte l'elemento printfile e l'elemento quantity nelle proprietà del lavoro Job.DownloadFile e Job.Copies.
L'operazione procede nel flusso di lavoro ProcessPrintJobs.
- La terza operazione utilizza il foglio di stile XSLT relativo ai lavori di stock.
Converte l'attributo number dell'elemento stock e dell'elemento quantity nelle proprietà del lavoro Job.Info.Attr2 e Job.Copies.
L'operazione procede nel flusso di lavoro ProcessStockJobs.
- La prima operazione utilizza il foglio di stile XSLT relativo ai lavori di ordinazione.
Converte l'attributo name dell'elemento order e dell'elemento customername nelle proprietà del lavoro Job.Info.Attr1 e Job.CustomerName.
- L'amministratore decide di utilizzare un'operazione DownloadFile per scaricare i file PDF da uno specifico URL.
Poiché il laboratorio di stampa utilizza un server proxy per comunicare con siti Web esterni, l'amministratore configura RICOH ProcessDirector per usare il server proxy.
Configurazione del dispositivo di input e dei flussi di lavoro
L'amministratore configura un dispositivo di input hot folder per ricevere file XML e quattro flussi di lavoro per elaborarli.
- Il flusso di lavoro ExtractOrdersFromXML crea un lavoro per ogni ordine del file di input XML.
Dopo le operazioni SetJobPropsFromTextFile e DetectInputDataStream, l'amministratore aggiunge l'operazione CreateJobsFromXML. L'amministratore imposta il valore dell'espressione XPath su /seller/order e il valore del flusso di lavoro per i nuovi lavori su SplitOrderIntoPrintAndStockJobs. L'amministratore specifica che i nuovi lavori non vengano creati come lavori secondari. Ogni ordine è un lavoro indipendente.
- Il flusso di lavoro SplitOrderIntoPrintAndStockJobs riceve ogni lavoro di ordinazione, crea file XML per gli elementi di stampa e promozionali
e li inoltra come lavori secondari al flusso di lavoro appropriato.
Dopo le operazioni SetJobPropsFromTextFile e DetectInputDataStream, l'amministratore aggiunge l'operazione ApplyXSLTransform. L'operazione utilizza il foglio di stile XSLT relativo ai lavori di ordinazione.
Dopo l'operazione ApplyXSLTransform, l'amministratore aggiunge due operazioni CreateJobsFromXML:
- Per la prima operazione, l'amministratore imposta il valore dell'espressione XPath su /order/item/printfile/ancestor::item e il valore del flusso di lavoro per i nuovi lavori su ProcessPrintJobs.
- Per la seconda operazione, l'amministratore imposta il valore dell'espressione XPath su /order/item/stock/ancestor::item e il valore del flusso di lavoro per i nuovi lavori su ProcessStockJobs.
- Per entrambe le operazioni, l'amministratore specifica che i nuovi lavori vengano creati come lavori secondari. L'amministratore specifica anche che i lavori principali continuino con l'operazione successiva se non vengono creati lavori secondari. Ad esempio, non vengono creati lavori secondari nella prima operazione CreateJobsFromXML se in un lavoro di ordinazione non sono presenti elementi di stampa.
Dopo la seconda operazione CreateJobsFromXML, l'amministratore aggiunge un'operazione basata sul modello di operazione WaitForRelatedJobs. Questa operazione tiene in sospeso i lavori principali finché non sono stati elaborati i lavori secondari per gli elementi di stampa e promozionali.
- Il flusso di lavoro ProcessPrintJobs riceve ogni lavoro per un elemento di stampa e stampa gli elementi.
Dopo le operazioni SetJobPropsFromTextFile e DetectInputDataStream, l'amministratore aggiunge l'operazione ApplyXSLTransform. L'operazione utilizza il foglio di stile XSLT relativo ai lavori di stampa.
Dopo l'operazione ApplyXSLTransform, l'amministratore aggiunge un'operazione basata sul modello di operazione DownloadFile e scarica il file PDF specificato dal valore della proprietà Job.DownloadFile. L'amministratore imposta il valore della proprietà Path to downloaded file su ${getFileName(print,pdf,write)} in modo che il file PDF venga scaricato nella directory di spool per il lavoro.
Dopo l'operazione DownloadFile, l'amministratore aggiunge l'operazione utilizzata dal laboratorio di stampa per elaborare i lavori PDF.
Dopo l'ultima operazione di elaborazione dei lavori di stampa, l'amministratore aggiunge un'operazione basata sul modello di procedura ManualStepWithAutoStart. Questa operazione consente all'addetto alle spedizioni di aggiungere il lavoro di stampa all'ordine nel reparto spedizioni.
Dopo l'operazione ManualStepWithAutoStart, l'amministratore aggiunge un'operazione basata sul modello di operazione WaitForRelatedJobs. Questa operazione tiene in sospeso tutti i lavori per un elemento di stampa in un ordine finché non sono stati elaborati tutti i lavori dell'ordine.
- Il flusso di lavoro ProcessStockJobs riceve un elemento promozionale e calcola il tempo necessario per recuperare un elemento
promozionale dal magazzino.
Dopo le operazioni SetJobPropsFromTextFile e DetectInputDataStream, l'amministratore aggiunge l'operazione ApplyXSLTransform. L'operazione utilizza il foglio di stile XSLT relativo ai lavori di stock.
Dopo l'operazione ApplyXSLTransform, l'amministratore aggiunge un'operazione basata sul modello di operazione ManualStepWithAutoStart. Questa operazione consente all'addetto alle spedizioni di recuperare l'elemento promozionale dal magazzino e di aggiungerlo all'ordine nel reparto spedizioni.
Dopo l'operazione ManualStepWithAutoStart, l'amministratore aggiunge un'operazione basata sul modello di operazione WaitForRelatedJobs. Questa operazione tiene in sospeso tutti i lavori per un elemento promozionale in un ordine finché non sono stati elaborati tutti i lavori dell'ordine.
Questa figura mostra i quattro flussi di lavoro. Le linee verdi mostrano il flusso di lavoro al quale ogni operazione CreateJobsFromXML inoltra i lavori XML.
Elaborazione dei lavori attraverso i flussi di lavoro
Quando l'amministratore abilita i flussi di lavoro e inoltra un file XML al dispositivo di input, RICOH ProcessDirector elabora il lavoro attraverso i quattro flussi di lavoro.
Il flusso di lavoro ExtractOrdersFromXML riceve il lavoro XML dal dispositivo di input e crea un file XML per ogni elemento order che corrisponde all'espressione XPath relativa ai lavori di ordinazione. Il flusso di lavoro inoltra ogni file XML al flusso di lavoro SplitOrderIntoPrintAndStockJobs.
Il flusso di lavoro SplitOrderIntoPrintAndStockJobs esegue questa elaborazione:
- Riceve ogni lavoro di ordinazione.
- Utilizza il foglio di stile XSLT relativo ai lavori di ordinazione per convertire gli elementi e i valori order number e customername in proprietà e valori del lavoro.
- Registra le proprietà e i valori del lavoro in un file di sovrascrittura.
- Crea un file XML per ogni elemento item che corrisponde all'espressione XPath relativa ai lavori di stampa. Il flusso di
lavoro inoltra ogni file XML come lavoro secondario al flusso di lavoro ProcessPrintJobs. Una copia del file di sovrascrittura viene inoltrata con ogni lavoro secondario.
Crea un file XML per ogni elemento item che corrisponde all'espressione XPath relativa ai lavori di stock. Il flusso di lavoro inoltra ogni file XML come lavoro secondario al flusso di lavoro ProcessStockJobs. Una copia del file di sovrascrittura viene inoltrata con ogni lavoro secondario.
- Tiene in sospeso il lavoro principale per ogni ordine finché non sono stati elaborati tutti i lavori secondari.
Il flusso di lavoro ProcessPrintJobs esegue questa elaborazione:
- Riceve ogni lavoro per un elemento di stampa.
- Utilizza il foglio di stile XSLT relativo ai lavori di stampa per convertire gli elementi e i valori printfile e quantity in proprietà e valori del lavoro.
- Registra le proprietà e i valori del lavoro sovrascrivendo i contenuti del file di sovrascrittura inoltrato con il lavoro.
- Utilizza il valore della proprietà Job.DownloadFile per scaricare il file PDF per ogni elemento di stampa.
- Stampa il file PDF.
- Attende che un addetto alle spedizioni controlli i valori delle proprietà Custom 1 (numero ordine) e Customer name per il lavoro. L'addetto aggiunge, quindi, l'elemento di stampa all'ordine nel reparto
spedizioni.
Per spostare il lavoro nell'operazione successiva del flusso di lavoro, l'addetto esegue l'azione Completa manualmente.
- Tiene in sospeso ogni lavoro per un elemento di stampa finché l'elaborazione non è completa.
Il flusso di lavoro ProcessStockJobs esegue questa elaborazione:
- Riceve ogni lavoro per un elemento promozionale.
- Utilizza il foglio di stile XSLT relativo ai lavori di stock per convertire gli elementi e i valori stock number e quantity in proprietà e valori del lavoro.
- Registra le proprietà e i valori del lavoro sovrascrivendo i contenuti del file di sovrascrittura inoltrato con il lavoro.
- Attende che l'addetto alle spedizioni esegua queste attività:
- Individuare il numero di stock dell'elemento verificando il valore della proprietà Custom 2.
- Recupera il numero richiesto degli elementi promozionali dal magazzino.
- Controlla i valori delle proprietà Custom 1 (numero ordine) e Customer name per il lavoro.
- Aggiunge all'ordine gli elementi promozionali nel reparto spedizioni.
Per spostare il lavoro nell'operazione successiva del flusso di lavoro, l'addetto esegue l'azione Completa manualmente.
- Tiene in sospeso ogni lavoro per un elemento promozionale finché l'elaborazione non è completa.
Quando tutti i lavori per gli elementi di stampa e promozionali di un ordine hanno raggiunto l'operazione WaitForRelatedJobs, l'elaborazione dell'ordine può dirsi completata. RICOH ProcessDirector sposta il lavoro principale per l'ordine e tutti i lavori secondari per gli elementi nelle operazioni basate sul modello operazione RetainCompletedJobs.