Wichtige Nachrichten und Felder
In diesem Abschnitt werden die wichtigsten Nachrichten und Felder kurz beschrieben, die von den Orchestrierungen OrderBroker und OrderManager behandelt werden. Eine vollständige Liste der Nachrichten in der Anwendung finden Sie unter Nachrichtenreferenz für die Geschäftsprozessverwaltungslösung.
Auftragsnachrichten
Bestellnachrichten aus orderBroker sind mehrteilige Nachrichten. In einem Teil sind die Routinginformationen und im anderen Teil die Auftragsinformationen enthalten. In der .NET-Klasse, mit der das Weiterleiten von Nachrichten definiert wird, sind alle zugehörigen Felder gekennzeichnete Felder, sodass eine Orchestrierung auf alle Klassenmember in Form von Nachrichteneigenschaften zugreifen kann. Die Klassen umfassen auch höhergestufte Felder in der Routingklasse, sodass die Nachrichten geroutet werden können. Darüber hinaus handelt es sich bei allen höhergestuften Feldern auch um gekennzeichnete Felder, sodass sie in einem weniger komplexen Format programmiert und einfacher referenziert werden können.
Weitere Informationen zur Verwendung von .NET-Klassen zum Definieren von Nachrichten finden Sie unter Erstellen von Nachrichten in Benutzercode.
Identifizieren von Aufträgen
In der Lösung werden drei Felder in den Routinginformationen zum Identifizieren eines Auftrags verwendet. Von diesen drei identifizieren zwei die Bestellung: die Bestell-ID (OrderID) und die Kunden-ID (CustomerID). Ein Auftrag wird zwar anhand dieser beiden Felder identifiziert, es können jedoch mehrere Instanzen eines Auftrags vorhanden sein. So bestellt ein Kunde möglicherweise erst eine neue Standardkabelinstallation und ruft später noch einmal an, um den Auftrag in eine neue Deluxe-Kabelinstallation zu ändern. Es ist eher unwahrscheinlich, dass der ursprüngliche Auftrag abgeschlossen ist, bevor der aktualisierte Auftrag eingeht. Deshalb werden zwei Instanzen des Auftrags erstellt.
Um zwischen Instanzen von Aufträgen zu unterscheiden, verwendet die Lösung eine eindeutige Auftragsreihenfolgenummer (SeqNum). Die drei Felder OrderID, CustomerID und SeqNum identifizieren eine instance einer Bestellung eindeutig.
Da die Lösung steigende Zahlen für seqNum verwendet, kann die Lösung ein Update von der ursprünglichen Reihenfolge unterscheiden– das Update weist einen höheren SeqNum auf.
Hinweis
Die Lösung basiert auf den Systemen, die Auftragsanforderungen erstellen, um SeqNum aufsteigende Werte zuzuweisen. Im Code hinter der ASP-Seite für den Eingabewebdienst CSRMainForm.aspx.cs und in der Zuordnung, die die Anforderung in eine Bestellung konvertiert, CSR_OrderRequest_To_Order.btm finden Sie die Namen der betreffenden Felder.
Status
OrderBroker, OrderManager und ihre Satelliten-Orchestrierungen verwenden zwei Felder im Auftragsnachrichtenroutingteil, um den Status zu verfolgen: Status und Phase. Das Feld Status verfolgt die status der Bestellung. In der folgenden Tabelle werden die Werte für das Feld Status beschrieben.
Wert | Ort | BESCHREIBUNG |
---|---|---|
ACCEPTED | OrderBroker | Der Auftrag kann an OrderManager weitergeleitet werden. |
ABGESCHLOSSEN | OrderManager | Die Verarbeitung des gesamten Auftrags wurde ohne Fehler abgeschlossen. |
ERROR | OrderManager | Im Auftrag wurde ein Fehler gefunden. |
ORDERMANAGER-EXCEPTION | OrderManager | Im Auftrags-Manager ist bei der Auftragsverarbeitung eine Ausnahme aufgetreten. |
STAGE_n_COMPLETED | OrderManager | Hiermit wird angegeben, dass Stufe „n“ ohne Fehler abgeschlossen wurde, wobei „n“ für eine Zahl steht. |
STARTED | OrderManager | Die Auftragsverarbeitung wurde gestartet. |
TERMINATED | OrderManager | Die Auftragsverarbeitung wurde aufgrund einer Stornierung beendet. |
Phase
Der OrderManager verwendet das Feld Stufe im Routingteil, um die Verarbeitungsphase einer Nachricht anzugeben. Das Feld wird in Filtern verwendet, mit denen bestimmt wird, von welcher Satellitenorchestrierung die Nachricht zu verarbeiten ist. Der OrderManager legt Stage zunächst auf 1 (1) fest. Wenn die Bestellung beendet oder abgeschlossen wird, legt orderManagerStage auf den Wert der Orchestrierungsvariablen Stop fest.
RequestType
Der OrderManager verwendet auch das Feld RequestType der Auftragsnachricht. Wenn der Wert des Felds TERMINATE lautet, muss der Auftrag beendet werden. Die Orchestrierung ignoriert alle anderen Werte des RequestType-Felds und basiert auf den Reihenfolgenfolgenummern, um Bestellaktualisierungen und Duplikate zu erkennen. Andernfalls legt OrderBroker das Feld RequestType auf den Wert des Felds Status in der Nachricht vom Anbieter oder Kundendienstsystem fest.
„OrderTypeCode“, „OrderType“ und „ServiceClass“
Der Typ der Reihenfolge befindet sich im Feld OrderTypeCode der Bestellnachricht. Der OrderBroker legt seinen Wert auf den Wert im Feld OrdTypeCode in der Nachricht fest, die entweder vom Kundendienstsystem oder vom Lieferantensystem stammt. In der folgenden Tabelle sind die möglichen Werte für OrderTypeCode aufgeführt:
Wert | BESCHREIBUNG |
---|---|
NS | Neue Standardkabelinstallation |
ND | Neue Deluxe-Kabelinstallation |
XS | Standardkabelinstallation stornieren |
XD | Deluxe-Kabelinstallation stornieren |
CS | Standardkabelinstallation ändern |
CD | Deluxe-Kabelinstallation ändern |
UNBEKANNT | Unbekannt |
Später verwendet die Validate-Orchestrierung die Geschäftsregel-Engine, um diese Werte in zwei separate Felder zu übersetzen: OrderType und ServiceClass. Die Validate-Orchestrierung wird von der ersten Auftragsverarbeitungsphase CableOrder1 aufgerufen.
In der folgenden Tabelle sind die Werte für orderType aufgeführt:
Werte für „OrderTypeCode“ | Wert für „OrderType“ |
---|---|
NS, ND | AKTIVIEREN |
XS, XD | CANCEL |
CS, CD | CHANGE |
Ungültige Kombination. | INVALID |
Die Werte für ServiceClass sind der entsprechende einzelne Buchstabe, S für Standard oder D für deluxe.
Zusätzliche Bezeichner
In der Lösung wird auch ein Bezeichner für jeden einzelnen Auftrag verwendet. Dieser Bezeichner , RequestId, muss für alle Bestellungen eindeutig sein. Ihm wird automatisch eine GUID vom Webdienst für die Eingabe zugewiesen. Über die Batcheingabe gesendete Nachrichten müssen einen Wert für das Feld enthalten. Das Feld ist RequestID im Reihenfolgenschema. OrderBroker verwendet jedoch das CSR_OrderRequest Schema, um Bestellungen zu verarbeiten. Das Feld wird in diesem Schema als ReqId angezeigt und ist eine distinguished-Eigenschaft.
Die Lösung verwendet die RequestId , um den Aktivitätsbezeichner zu bilden, der im BAM-Nachverfolgungssystem verwendet wird.
Weitere Informationen
Prozess-Manager-Logik
Auftragsfluss durch den Prozess-Manager
Erstellen von Nachrichten in Benutzercode
Nachrichtenverweis für die Lösung für die Geschäftsprozessverwaltung