Structure de définition de service

L'intégration directe utilise la structure de définition de service (SDF, Service Definition Framework) Sterling Order Management, qui fournit des services de communication entre Sterling Order Management et HCL Commerce.

La structure de définition de service comprend un ensemble de composants que vous pouvez connecter et utiliser pour établir l'intégration avec des systèmes externes. En plus d'envoyer et de recevoir des appels de service, ces composants, tels que le nœud API, XSL et JMS, convertissent les formats de message et le contenu entre Sterling Order Management et HCL Commerce .

Vous pouvez afficher tous ces services fournis dans le Gestionnaire d'applications Sterling Order Management sous Services de modélisation de processus dans les référentiels de distribution des commandes et de type de processus général.

Intégration de SCWC SDF (services de commande)
  • SCWC_SDF_SCcreateOrderOnSuccess
  • SCWC_SDF_SCcreateOrderOnSuccessService
  • SCWC_SDF_changeOrder
  • SCWC_SDF_changeOrderOnCancel
  • SCWC_SDF_changeOrderOnCancelService
  • SCWC_SDF_changeOrderOnSuccess
  • SCWC_SDF_changeOrderOnSuccessService
  • SCWC_SDF_changeOrderRealTime
  • SCWC_SDF_changeOrderRealTime_Internal
  • SCWC_SDF_changeOrderService
  • SCWC_SDF_confirmDraftOrderOnSuccess
  • SCWC_SDF_confirmDraftOrderOnSuccessService
  • SCWC_SDF_createOrder
  • SCWC_SDF_createOrderOnSuccess
  • SCWC_SDF_createOrderOnSuccessService
  • SCWC_SDF_createOrderService
  • SCWC_SDF_GetCartList
  • SCWC_SDF_GetCartDetails
  • SCWC_SDF_GetCartDetails_Internal
  • SCWC_SDF_getCartList_Internal
  • SCWC_SDF_getCompleteOrderDetails
  • SCWC_SDF_getCompleteOrderDetailsService
  • SCWC_SDF_getOrderLineDetails
  • SCWC_SDF_getOrderLineDetails_Internal
  • SCWC_SDF_getOrderList
  • SCWC_SDF_getOrderListService
  • SCWC_SDF_getOrderPriceUE
  • SCWC_SDF_getOrderPriceUEService
  • SCWC_SDF_LockWCShoppingCart
  • SCWC_SDF_LockWCShoppingCart_Internal
  • SCWC_SDF_pushOrderMessages
  • SCWC_SDF_UnlockWCSShoppingCart
  • SCWC_SDF_UnlockWCShoppingCart_Internal
SCWC SDF Integration (services de stock)
  • SCWC_SDF_cancelReservation
  • SCWC_SDF_cancelReservationService
  • SCWC_SDF_getInventoryAvailability
  • SCWC_SDF_getInventoryAvailabilityService
  • SCWC_SDF_getItemPriceUE
  • SCWC_SDF_getItemPriceUEService
  • SCWC_SDF_getPricingRuleDetailsUE
  • SCWC_SDF_getPricingRuleDetailsUEService
  • SCWC_SDF_pushInventoryMessages
  • SCWC_SDF_reserveAvailableInventory
  • SCWC_SDF_reserveAvailableInventoryService
  • SCWC_SDF_syncInventoryChanges
  • SCWC_SDF_syncInventoryChangesCSV
  • SCWC_SDF_syncInventoryChangesCSVService
  • SCWC_SDF_syncInventoryChangesService
  • SCWC_SDF_validateCouponUE
  • SCWC_SDF_validateCouponUEService
L'intégration directe entre HCL Commerce et Sterling Order Management inclut les appels suivants :
  • Appels synchrones de HCL Commerce vers Sterling Order Management
  • Appels asynchrones de HCL Commerce vers Sterling Order Management
  • Appels asynchrones de Sterling Order Management vers HCL Commerce
  • Appels synchrones de Sterling Order Management vers HCL Commerce
Le diagramme suivant montre les communications synchrones et asynchrones dans une intégration directe entre HCL Commerce et Sterling Order Management.


Avec l'intégration directe, les appels sortants HCL Commerce (à l'exception de getCompleteOrderDetails) pointent vers le nouveau servlet SOAP sur Sterling Order Management. Ce servlet SOAP comprend un fichier action.properties qui mappe les appels sortants HCL Commerce vers un service Sterling Order Management dans la structure de définition de service (SDF). C'est à l'intérieur de ce service que la conversion du message SOAP dans l'entrée XML d'API Sterling Order Management est effectuée.

Appels synchrones de HCL Commerce vers Sterling Order Management

Pour les appels synchrones de HCL Commerce vers Sterling Order Management, HCL Commerce effectue un appel de service Web sortant au servlet SOAP. Ce servlet contient un fichier action.properties qui est utilisé pour mapper le nom d'action de la demande HCL Commerce au service SDF dans Sterling Order Management. Sterling Order Management tente d'identifier le nom d'action en regardant la valeur de nœud de wsa:Action dans la requête HCL Commerce. Si la valeur est null, Sterling Order Management dérive alors Action du nom de l'élément document SOAPBOD. Après avoir obtenu le Code d'action, Sterling identifie le service Sterling Order Management à appeler pour cette action à partir de la valeur définie dans le fichier action.properties. Ce service convertit le message de SOAP en entrée d'API XML.

L'appel getCompleteOrderDetails est la seule exception à cette règle. Il ne s'agit pas d'un message SOAP, il s'agit d'un appel d'API direct à AuthOnlyServlet, passant l'entrée comme prévu par l'API Sterling. Par exemple, ProcessInventoryRequirement_ReserveInventory appelle le servlet SOAP et invoque le service SCWC_SDF_reserveAvailableInventory, qui est défini pour appeler un sous-service. À un niveau élevé, ce sous-service convertit le message du format HCL Commerce au format d'API Sterling Order Management. Le sous-service remplace ensuite les valeurs des attributs clés définis dans le fichier ValueMaps, appelle l'API et exécute la conversion sur la sortie de l'API.

Le flux suivant illustre ce processus.



Appels asynchrones de HCL Commerce vers Sterling Order Management

Pour les invocations asynchrones de HCL Commerce à Sterling Order Management, HCL Commerce affiche le message dans une file d'attente JMS. Le transport WebSphere MQ doit être activé dans la console d'administration HCL Commerce. Définissez ces valeurs de paramètres WebSphere MQ comme suit pour identifier les files d'attente qui enverront des messages :
Tableau 1. Valeurs des paramètres MQ WebSphere

Paramètre IBM MQ Valeur
File d'attente d'erreur JMSErrorQueue
Fabrique JMSQueueConnectionFactory
File d'entrée JMSSerialInboundQueue
File de sortie JMSOutboundQueue
Sterling Order Management est un système de commande externe, de sorte que le type de message Message pour le système de commande externe doit être créé. Pour envoyer un message par la file d'attente JMS, ce type de message doit être affecté au transport WebSphere MQ. Configurez ceci comme suit :


Une fois les messages postés dans une file d'attente JMS, le serveur d'intégration côté Sterling Order Management capte ces messages à partir de la file d'attente et appelle le service SDF approprié du côté Sterling.

Par exemple, avec l'ordre de transfert, une fois le panier envoyé à partir de HCL Commerce, un message SOAP est placé dans une file d'attente JMS. À partir de là, le serveur d'intégration SCWC_SDF_createOrder sélectionne le message à partir de la file d'attente JMS et appelle SCWC_SDF_createOrderService, comme indiqué dans la figure suivante.



Le SCWC_SDF_createOrderService affiché ensuite convertit le message au format XML d'entrée d'API createOrder Sterling Order Management et appelle l'API.



Appels asynchrones de Sterling Order Management vers HCL Commerce

Pour la communication asynchrone entre Sterling Order Management et HCL Commerce, les événements Sterling Order Management sont utilisés pour publier un message dans une file d'attente JMS. Par exemple, l'événement createOrder.OnSuccess publie un message dans la file d'attente JMS en appelant le service SCWC_SDF_createOrderOnSuccess. Cela appelle à son tour le SCWC_SDF_createOrderOnSuccessService, comme indiqué ci-après :



Le SCWC_SDF_createOrderOnSuccessService convertit le message au format d'entrée attendu HCL Commerce :


Lors de la conversion, le message est placé dans une file d'attente JMS. Une fois que le message est dans la file d'attente JMS, le serveur d'intégration Sterling est utilisé pour capter le message et appeler le service approprié HCL Commerce.

L'onglet serveur définit le serveur d'intégration qui traite ces messages :


L'onglet Arguments du nœud d'API configure le service HCL Commerce pour appeler :


Appels synchrones de Sterling Order Management vers HCL Commerce

Les appels synchrones de Sterling Order Management vers HCL Commerce sont effectués à l'aide du composant InvokeWebService, qui effectue des appels de service Web sortants à l'aide d'un nœud client SOAP. L'exemple suivant montre SCWC_SDF_getItemPriceUE :



Un aspect supplémentaire de tous les exemples précédents est que les services d'intégration directe sont conçus comme des services en deux parties, où l'invocation et la traduction des messages se produisent dans un sous-service, comme SCWC_SDF_getItemPriceUEService. La raison d'être et les avantages de cette conception sont expliqués dans Composants et paramètres de la Structure de définition de service.