Messaggi e campi principali
Questa sezione descrive brevemente i messaggi chiave e i campi gestiti dalle orchestrazioni OrderBroker e OrderManager . Per un elenco completo dei messaggi nell'applicazione, vedere Informazioni di riferimento sui messaggi per la soluzione di gestione dei processi aziendali.
Messaggi relativi agli ordini
I messaggi di ordine di OrderBroker sono messaggi in più parti. Una parte contiene le informazioni di routing, l'altra le informazioni relative all'ordine. La classe .NET che definisce la parte di routing del messaggio rende distinti tutti i propri campi, pertanto un'orchestrazione può accedere a tutti i membri della classe come proprietà del messaggio. Le classi includono inoltre i campi alzati di livello nella classe di routing, in modo da consentire il routing dei messaggi. Tutti i campi alzati di livello sono anche campi distinti e pertanto possono essere programmati e utilizzati come riferimenti con una notazione meno complessa.
Per altre informazioni sull'uso di classi .NET per definire i messaggi, vedere Costruzione di messaggi nel codice utente.
Identificazione degli ordini
La soluzione utilizza tre campi di informazioni di routing per identificare un ordine. Di questi tre, due identificano l'ordine: l'identificatore dell'ordine (OrderID) e l'identificatore del cliente (CustomerID). Sebbene questi due campi identifichino un ordine, è tuttavia possibile che esistano più istanze dello stesso ordine. Un cliente può ordinare ad esempio una nuova installazione via cavo standard e quindi richiamare per modificare l'ordine richiedendo una nuova installazione via cavo deluxe. È improbabile che l'ordine originale venga completato prima che arrivi l'ordine aggiornato. Vengono quindi create due istanze dell'ordine.
Per distinguere tra le istanze degli ordini, la soluzione usa un numero di sequenza di ordine univoco (SeqNum). I tre campi OrderID, CustomerID e SeqNum identificano in modo univoco un'istanza di un ordine.
Infine, poiché la soluzione usa numeri crescenti per SeqNum, la soluzione può distinguere un aggiornamento dall'ordine originale, ovvero l'aggiornamento ha un valore SeqNum superiore.
Nota
La soluzione si basa sui sistemi che creano richieste di ordine per assegnare valori ascendenti a SeqNum. Vedere il code-behind della pagina ASP per il servizio Web di input, CSRMainForm.aspx.cs e la mappa che converte la richiesta in un ordine, CSR_OrderRequest_To_Order.btm per i nomi dei campi coinvolti.
Stato
Le orchestrazioni satellite OrderBroker, OrderManager e le relative orchestrazioni satellite usano due campi nella parte di routing dei messaggi dell'ordine per tenere traccia dello stato: Stato e Fase. Il campo Stato tiene traccia dello stato dell'ordine. Nella tabella seguente vengono descritti i valori per il campo Stato .
Valore | Orchestrazione | Descrizione |
---|---|---|
ACCEPTED | OrderBroker | L'ordine può passare a OrderManager. |
COMPLETED | OrderManager | L'elaborazione dell'intero ordine è stata completata senza errori. |
ERRORE | OrderManager | Errore rilevato all'interno dell'ordine. |
ORDERMANAGER-EXCEPTION | OrderManager | Eccezione generata nel gestore dell'ordine durante l'elaborazione dell'ordine. |
STAGE_n_COMPLETED | OrderManager | La fase n, dove n è un numero, è stata completata senza errori. |
STARTED | OrderManager | L'elaborazione dell'ordine è stata avviata. |
TERMINATED | OrderManager | L'elaborazione dell'ordine è stata interrotta a causa di un annullamento. |
Fase
OrderManager usa il campo Fase nella parte di routing per indicare la fase di elaborazione di un messaggio. Il campo viene utilizzato nei filtri che determinano quale orchestrazione satellite elaborerà il messaggio. OrderManager imposta inizialmente Stage su uno (1). Al termine o al completamento dell'ordine, OrderManager imposta Stage sul valore di una variabile di orchestrazione, Stop.
RequestType
OrderManager usa anche il campo RequestType del messaggio di ordine. Se il valore del campo è TERMINATE, l'ordine deve essere terminato. L'orchestrazione ignora tutti gli altri valori del campo RequestType e si basa sui numeri della sequenza di ordine per riconoscere gli aggiornamenti degli ordini e i duplicati. In caso contrario, orderBroker imposta il campo RequestType sul valore del campo Stato nel messaggio del sistema fornitore o del servizio clienti.
OrderTypeCode, OrderType e ServiceClass
Il tipo dell'ordine si trova nel campo OrderTypeCode del messaggio di ordine. OrderBroker imposta il valore sul valore nel campo OrdTypeCode nel messaggio proveniente dal sistema del servizio clienti o dal sistema fornitore. La tabella seguente mostra i valori possibili per OrderTypeCode:
Valore | Descrizione |
---|---|
NS | Nuova installazione via cavo standard. |
ND | Nuova installazione via cavo deluxe. |
XS | Annullamento installazione via cavo standard. |
XD | Annullamento installazione via cavo deluxe. |
CS | Modifica installazione via cavo standard. |
CD | Modifica installazione via cavo deluxe. |
UNKNOWN | Sconosciuto. |
Successivamente, l'orchestrazione Validate usa il motore regole business per convertire questi valori in due campi separati, OrderType e ServiceClass. L'orchestrazione Validate viene chiamata dalla fase di elaborazione del primo ordine , CableOrder1.
Nella tabella seguente vengono specificati i valori per OrderType:
Valori di OrderTypeCode | Valore di OrderType |
---|---|
NS ND | ATTIVA |
XS, XD | ANNULLA |
CS, CD | CHANGE |
Combinazione non valida. | NON VALIDO |
I valori per ServiceClass sono la lettera singola corrispondente, S per standard o D per deluxe.
Identificatori aggiuntivi
La soluzione utilizza inoltre un identificatore per ogni singolo ordine. Questo identificatore, RequestId, deve essere univoco in tutti gli ordini. Il servizio Web di input gli assegna automaticamente un GUID. I messaggi inviati tramite l'input in batch devono includere un valore per il campo. Il campo è RequestID nello schema dell'ordine. OrderBroker, tuttavia, usa lo schema CSR_OrderRequest per elaborare gli ordini. Il campo viene visualizzato come ReqId in questo schema ed è una proprietà distinta.
La soluzione usa RequestId per formare l'identificatore di attività usato nel sistema di rilevamento BAM.
Vedere anche
Logica della gestione processi
Flusso degli ordini nella gestione processi
Costruzione di messaggi in codice utente
Informazioni di riferimento sui messaggi della soluzione di gestione dei processi di business