Infraestructura de definición de servicio

La integración directa utiliza la infraestructura de definición de servicios (SDF) de Sterling Order Management, que proporciona servicios para la comunicación entre Sterling Order Management y HCL Commerce.

La infraestructura de definición de servicio consta de un conjunto de componentes que usted puede conectar y utilizar para crear la integración con sistemas externos. Además de enviar y recibir llamadas de servicio, estos componentes como, por ejemplo, el nodo API, XSL y JMS, convierten los formatos de mensajes y el contenido entre Sterling Order Management y HCL Commerce.

Puede ver todos estos servicios proporcionados en el gestor de aplicaciones de Sterling Order Management en Servicios de modelado de procesos en los repositorios del tipo Despacho de pedidos y Proceso general.

Integración de SCWC SDF (servicios de pedido)
  • 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
Integración de SCWC SDF (servicios de inventario)
  • 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
La integración directa entre HCL Commerce y Sterling Order Management incluye las siguientes llamadas:
  • Llamadas síncronas de HCL Commerce a Sterling Order Management
  • Llamadas asíncronas de HCL Commerce a Sterling Order Management
  • Llamadas asíncronas de Sterling Order Management a HCL Commerce
  • Llamadas síncronas de Sterling Order Management a HCL Commerce
El siguiente diagrama muestra las comunicaciones síncronas y asíncronas en una integración directa entre HCL Commerce y Sterling Order Management.


Con la integración directa, las llamadas de salida de HCL Commerce (excepto para getCompleteOrderDetails) se dirigen al nuevo servlet de SOAP en Sterling Order Management. Este servlet de SOAP incluye un archivo action.properties que correlaciona las llamadas de salida de HCL Commerce con un servicio de Sterling Order Management en la infraestructura de definición de servicios (SDF). Entra dentro de este servicio realizar la conversión del mensaje SOAP a la entrada API XML de Sterling Order Management.

Llamadas síncronas de HCL Commerce a Sterling Order Management

Para llamadas síncronas de HCL Commerce a Sterling Order Management, HCL Commerce realiza una llamada de servicio web de salida al servlet de SOAP. Este servlet incluye un archivo action.properties que se utiliza para correlacionar el nombre de acción de la solicitud HCL Commerce con el servicio de SDF en Sterling Order Management. Sterling Order Management intenta identificar el nombre de acción examinando el valor nodo de wsa:Action en la solicitud HCL Commerce. Si el valor es nulo, Sterling Order Management deriva a Action del nombre de elemento del documento SOAPBOD. Después de obtener el código de acción, Sterling identifica el servicio Sterling Order Management que hay que llamar para esta acción a partir del valor definido en el archivo action.properties. Este servicio convierte el mensaje de SOAP a entrada de la API XML.

La llamada getCompleteOrderDetails es la única excepción a esta regla. No es un mensaje SOAP; es una llamada de API directa a AuthOnlyServlet, que pasa la entrada según lo previsto por la API de Sterling. Por ejemplo, ProcessInventoryRequirement_ReserveInventory llama al servlet de SOAP y activa el servicio SCWC_SDF_reserveAvailableInventory, que está configurado para llamar a un subservicio. En un nivel alto, este subservicio convierte el mensaje de formato HCL Commerce al formato de API Sterling Order Management. A continuación, el subservicio sustituye los valores de los atributos clave definidos en el archivo ValueMaps, llama a la API y ejecuta la conversión en la salida de la API.

El siguiente flujo ilustra algunos de estos procesos.



Llamadas asíncronas de HCL Commerce a Sterling Order Management

Para invocaciones asíncronas de HCL Commerce a Sterling Order Management, HCL Commerce envía el mensaje a una cola JMS. El transporte WebSphere MQ debe estar activado en la Consola de administración de HCL Commerce. Establezca estos valores de parámetro de WebSphere MQ como se indica a continuación para identificar qué colas enviarán mensajes:
Tabla 1. Valores de los parámetros de WebSphere MQ

Parámetro de IBM MQ Valor
Cola de errores JMSErrorQueue
Fábrica JMSQueueConnectionFactory
Cola de entrada JMSSerialInboundQueue
Cola de salida JMSOutboundQueue
Sterling Order Management es un sistema de pedidos externo, por lo que debe crearse el mensaje de tipo de mensaje para el sistema de pedidos externo. Para enviar un mensaje por cola JMS, este tipo de mensaje debe asignarse al transporte, WebSphere MQ. Configúrelo como se explica a continuación:


Después de publicar los mensajes en una cola JMS, el servidor de integración de Sterling Order Management recoge estos mensajes de la cola y llama al servicio SDF adecuado de Sterling.

Por ejemplo, con el pedido de transferencia, una vez enviado el carro de la compra desde HCL Commerce, se coloca un mensaje SOAP en una cola JMS. Desde allí, el servidor de integración de SCWC_SDF_createOrder selecciona el mensaje de la cola JMS y llama a SCWC_SDF_createOrderService, tal como se muestra en la siguiente ilustración.



El SCWC_SDF_createOrderService que se muestra a continuación convierte el mensaje en el formato XML de entrada de la API createOrder de Sterling Order Management y activa la API.



Llamadas asíncronas de Sterling Order Management a HCL Commerce

Para la comunicación asíncrona entre Sterling Order Management y HCL Commerce, se utilizan los sucesos Sterling Order Management para publicar un mensaje en una cola JMS. Por ejemplo, el suceso createOrder.OnSuccess publica un mensaje en la cola JMS llamando al servicio SCWC_SDF_createOrderOnSuccess. Este, a su vez, llama al SCWC_SDF_createOrderOnSuccessService, tal como se muestra a continuación:



El SCWC_SDF_createOrderOnSuccessService convierte el mensaje al formato de entrada esperado por HCL Commerce:


Después de la conversión, el mensaje se coloca en una cola JMS. Una vez que el mensaje está en la cola JMS, el servidor de integración de Sterling se utiliza para recoger el mensaje y llamar al servicio de HCL Commerce adecuado.

La pestaña del servidor define qué servidor de integración procesa estos mensajes:


La pestaña de argumentos del nodo API configura el servicio de HCL Commerce que hay que activar:


Llamadas síncronas de Sterling Order Management a HCL Commerce

Las llamadas síncronas de Sterling Order Management a HCL Commerce se realizan utilizando el componente InvokeWebService, que realiza llamadas de servicio web de salida utilizando un nodo cliente SOAP. El siguiente ejemplo muestra SCWC_SDF_getItemPriceUE:



Un aspecto adicional a todos los ejemplos anteriores es que los servicios de integración directa están diseñados como servicios de dos partes, donde la invocación y la traducción de mensajes se realizan en un subservicio, como SCWC_SDF_getItemPriceUEService. La lógica y las ventajas de este diseño se explican en Componentes y parámetros en el marco de definición de servicio.