Partager via


Messages et champs clés

Cette section décrit brièvement les messages et les champs clés gérés par les orchestrations OrderBroker et OrderManager . Pour obtenir la liste complète des messages dans l’application, consultez Informations de référence sur les messages pour la solution de gestion des processus métier.

Messages de commande

Les messages de commande de OrderBroker sont des messages en plusieurs parties. L'une contient les informations de routage et l'autre, les informations de commande. La classe .NET définissant la partie consacrée au routage fait de tous ses champs des champs distinctifs, de façon à ce qu'une orchestration puisse avoir accès à tous les membres de classes en tant que propriétés de message. Les classes incluent également des champs promus dans la classe de routage afin que les messages puissent être acheminés. Tous les champs promus sont également des champs distinctifs afin qu'ils puissent être programmés et appelés avec une notation moins complexe.

Pour plus d’informations sur l’utilisation de classes .NET pour définir des messages, consultez Construction de messages dans le code utilisateur.

Identification des commandes

La solution utilise trois champs dans les informations de routage pour identifier une commande. Parmi ces trois éléments, deux identifient la commande : l’identificateur de commande (OrderID) et l’identificateur de client (CustomerID). Cependant, bien que ces deux champs identifient une commande, il peut y avoir plusieurs instances d'une commande. Par exemple, un client peut commander une nouvelle installation de câble standard puis changer sa commande en une nouvelle installation de câble de luxe. Il est peu probable que la commande d'origine soit terminée avant l'arrivée de la commande mise à jour. Cela crée deux instances de la commande.

Pour distinguer les instances de commandes, la solution utilise un numéro séquentiel d’ordre unique (SeqNum). Les trois champs OrderID, CustomerID et SeqNum identifient de manière unique un instance d’une commande.

Enfin, étant donné que la solution utilise des nombres croissants pour le SeqNum, la solution peut distinguer une mise à jour de l’ordre d’origine : la mise à jour a un SeqNum plus élevé.

Notes

La solution s’appuie sur les systèmes qui créent des demandes de commande pour affecter des valeurs croissantes à SeqNum. Consultez le code derrière la page ASP pour le service web d’entrée , CSRMainForm.aspx.cs, et la carte qui convertit la demande en commande, CSR_OrderRequest_To_Order.btm pour les noms des champs impliqués.

Statut

OrderBroker, OrderManager et leurs orchestrations satellites utilisent deux champs dans la partie routage des messages de commande pour suivre l’état : Status et Stage. Le champ État suit les status de la commande. Le tableau suivant décrit les valeurs du champ État .

Valeur Where Set Description
ACCEPTED OrderBroker La commande peut être transmise à OrderManager.
COMPLETED (Terminée) OrderManager Le traitement de l'ensemble de la commande est terminé sans erreur.
ERROR OrderManager Une erreur a été détectée dans la commande.
ORDERMANAGER-EXCEPTION OrderManager Une exception s'est produite dans le gestionnaire de commandes lors du traitement de la commande.
STAGE_n_COMPLETED OrderManager Indique l'étape n, où n est un nombre, terminée sans erreur.
STARTED OrderManager Le traitement de la commande a démarré.
TERMINATED OrderManager Le traitement de la commande est arrêté en raison d'une annulation.

Étape

OrderManager utilise le champ Étape dans la partie routage pour indiquer l’étape de traitement d’un message. Le champ est utilisé dans les filtres qui déterminent l'orchestration satellite qui traite le message. OrderManager définit initialement Stage sur un (1). Lorsque la commande se termine ou se termine, OrderManager définit Stage sur la valeur d’une variable d’orchestration, Stop.

RequestType

OrderManager utilise également le champ RequestType du message de commande. Si la valeur du champ est TERMINATE, la commande doit être arrêtée. L’orchestration ignore toutes les autres valeurs du champ RequestType et s’appuie sur les numéros de séquence d’ordre pour reconnaître les mises à jour et les doublons d’ordre. Sinon, orderBroker définit le champ RequestType sur la valeur du champ Status dans le message du fournisseur ou du système de service clientèle.

OrderTypeCode, OrderType et ServiceClass

Le type de la commande se trouve dans le champ OrderTypeCode du message de commande. OrderBroker définit sa valeur sur la valeur dans le champ OrdTypeCode dans le message provenant du système de service clientèle ou du système fournisseur. Le tableau suivant montre les valeurs possibles pour OrderTypeCode :

Valeur Description
NS Nouvelle installation de câble standard.
ND Nouvelle installation de câble de luxe.
XS Annuler l'installation de câble standard.
XD Annuler l'installation de câble de luxe.
CS Modifier l'installation de câble standard.
CD Modifier l'installation de câble de luxe.
UNKNOWN Inconnu.

Plus tard, l’orchestration validate utilise le moteur de règles d’entreprise pour traduire ces valeurs en deux champs distincts, OrderType et ServiceClass. L’orchestration de validation est appelée par la phase de traitement de la première commande, CableOrder1.

Le tableau suivant indique les valeurs de OrderType :

Valeurs OrderTypeCode Valeur OrderType
NS, ND ACTIVER
XS, XD ANNULER
CS, CD CHANGE
Combinaison incorrecte. NON VALIDE

Les valeurs de ServiceClass sont la lettre unique correspondante, S pour standard ou D pour deluxe.

Identificateurs supplémentaires

La solution utilise également un identificateur pour chaque commande individuelle. Cet identificateur, RequestId, doit être unique pour toutes les commandes. Le site Web d'entrée lui affecte automatiquement un GUID. Les messages envoyés par le biais de l'entrée par lot doivent inclure une valeur pour le champ. Le champ est RequestID dans le schéma de commande. OrderBroker, toutefois, utilise le schéma CSR_OrderRequest pour traiter les commandes. Le champ apparaît sous la forme ReqId dans ce schéma et est une propriété distincte.

La solution utilise RequestId pour former l’identificateur d’activité utilisé dans le système de suivi BAM.

Voir aussi

Logique du gestionnaire de processus
Flux de commandes via le gestionnaire de processus
Construction de messages dans le code utilisateur
Référence des messages de la solution de gestion des processus d’entreprise