Introduction
In Supply Chain Cloud (SCM) Order Management, as a sales order’s state changes or it becomes ready for fulfillment, events could be generated for external systems. Integration Cloud Service offers Pub/Sub capabilities that could be used to reliably integrate SaaS applications. In this post, let’s take close look at these capabilities in order to capture Order Management events for fulfillment and other purposes. Instructions provided in this post are applicable to SCM Cloud R11 and ICS R16.4.1.
Main Article
SCM Cloud Order Management allows registering endpoints of external systems and assignment of these endpoints to various business events generated during order orchestration. For more information on business event features and order orchestration in general, refer to R11 document at this link. ICS is Oracle’s enterprise-grade iPaaS offering, with adapters for Oracle SaaS and other SaaS applications and native adapters that allow connectivity to all SaaS and on-premise applications. To learn more about ICS, refer to documentation at this link. Figure 1 provides an overview of the solution described in this post.
Figure 1 – Overview of the solution
Implementation of the solution requires the following high-level tasks.
- Download WSDL for business events from SCM cloud.
- Implement an ICS ‘Basic Publish to ICS’ integration with trigger defined using WSDL downloaded in previous step.
- Optionally, Implement one or more ICS ‘Basic Subscribe to ICS’ integrations for external systems that desire event notification.
- Configure SCM Cloud to generate events to the ‘Basic Publish to ICS’ endpoint.
- Verify generation of Business Events.
For the solution to work, network connectivity between SCM Cloud and ICS and ICS to External systems, including any on-premise systems, must be enabled. ICS agents can easily enable connectivity to on-premise systems.
Downloading WSDL for business events
Order Management provides two WSDL definitions for integration with external systems, one for fulfillment systems and another for other external systems that wish to receive business events. One example for use of business events is generation of invoices by an ERP system, upon fulfillment of an order. For the solution described in this post, a Business Event Connector is implemented. To download WSDLs, follow these steps.
- Log into SCM Cloud instance.
- Navigate to ‘Setup and maintenance’ page, by clicking the drop-down next to username on top right of the page.
- In the search box of ‘Setup and maintenance’ page, type in ‘Manage External Interface Web Service Details’ and click on search button or hit enter.
- Click on ‘Manage External Interface Web Service Details’ task in search results.
- On ‘Manage External Interface Web Service Details’ page, click on ‘Download WSDL for external integration’.
- Two download options are provided as shown in Figure 2.
- Download ‘Business Event Connector’.
Figure 2 – Download Business Event connector WSDL.
Implementing an ICS ‘Basic Publish to ICS’ integration
ICS allows publishing of events through an ICS trigger endpoint. Events published to ICS could be forwarded to one or more registered subscribers. For the solution, business event connector WSDL downloaded in the previous section is configured to a trigger connection for ‘Publish to ICS’ integration’. These are the overall tasks to build the integration:
- Create a connection and configure WSDL and security.
- Create new integration using the previously created connection as trigger and ‘ICS Messaging Service’ as invoke.
- Activate the Integration and test.
Follow these instructions to configure the integration:
- Navigate to ‘Designer’ tab and click ‘Connections’ from menu on left.
- Click on ‘New Connection’. Enter values for required fields.
Upload the WSDL file previously downloaded from SCM Cloud.
- Configure security, by selecting the “Username Password Token’ as security policy. Note that the Username and Password entered on this page are irrelevant for a trigger connection. Since a trigger connection is used to initiate integration in ICS, an ICS username and password must be provided for SCM configuration.
- Save the connection and test. Connection is ready for use in integration.
- Navigate to “Integrations” page. Click “New Integration” to create a new integration.
- Select “Basic Publish to ICS” pattern for new integration.
- On integration editor, a “Publish to ICS” flow is displayed. On the left of the flow is the trigger, an entry into the flow. Drag the connection created previously to the trigger.
- Configure the trigger. The steps are straightforward, as shown in following screenshots.
- Configure SOAP Operation.
- Click ‘Done’ on summary page.
- Drag and drop ‘ICS Messaging Service’ to the right of the integration flow. No mappings are necessary for this integration pattern.
- Add a business identifier for tracking and save the integration.
- Add a field that could help uniquely identify the message.
- Activate the integration, by clicking on slider button as shown.
- Note the URL of the integration, by clicking on the info icon. This URL will be used by SCM Cloud as an external web service endpoint.
ICS integration to receive business events from SCM Cloud is ready for use.
Implementing an ICS ‘Subscribe to ICS’ integration
Subscribing to events published to ICS can be done through few simple steps. Events could be sent to target connection, for example, a DB connection or a web service endpoint. Here are steps to receive events in a web service.
- Ensure that there is a “Basic Publish to ICS” integration activated and an Invoke connection to receive events is active.
- Create a new integration in ICS and pick “Basic Subscribe to ICS” pattern. Enter a name and description for the integration.
- ICS prompts to select one of available “Basic Publish to ICS” integrations. Select an integration and click on “Use”.
- Integration editor shows a flow with “ICS messaging service” as trigger on left. Drag the Invoke connection to the right of the flow. Following screenshot shows how to define a REST connection for invoke. ICS displays several screens to configure the connection. Steps to configure the connection depend on the type of connection receive the events.
- Complete request and response mappings.
- Add a tracking field, save and activate the integration. It is now ready to receive events.
Configure SCM Cloud to generate business events
The final task is to configure SCM Cloud to trigger Business Events. Follow these instructions:
- Log into SCM and navigate to Setup and Maintenance.
- Search for “Manage External Interface Web Service Details”.
- Click on “Manage External Interface Web Service Details”.
- Add an entry for the external interface web service. Use the endpoint to the “Basic Publish to ICS” integration. Enter credentials to ICS as username and password.
- Search for “Manage Business Event Trigger Points” and click on result.
- Let’s select “Hold” as a trigger for business event.
- Click “Active” checkbox next to “Hold”.
- Click on hold and add a connector under “Associated Connectors”
- Under “Associated Connectors”, “Actions”, select “Add Row”.
- Select the “SCM_BusinessEvent” external web service added in previous steps.
- Save the configuration and close.
- SCM Cloud is now configured to send business events.
Verify generation of Business Events
The solution is ready for testing. SCM Cloud and the “Basic Publish to ICS” integration are sufficient to test the solution. If an ICS subscription flow is implemented, ensure that the event has been received in the target system as well.
- Navigate to “Order Management” work area in SCM Cloud.
- Select a sales order and apply hold.
- Log into ICS and navigate to “Monitoring” and then to “Tracking” page.
- Verify that the event has been received under “Tracking”.
ICS has received a SOAP message from Order Management similar to this one:
<Body xmlns="http://schemas.xmlsoap.org/soap/envelope/"> <results xmlns="http://xmlns.oracle.com/apps/scm/doo/decomposition/DooDecompositionOrderStatusUpdateComposite" xmlns:ns4="http://xmlns.oracle.com/apps/scm/doo/decomposition/DooDecompositionOrderStatusUpdateComposite"> <ns4:OrderHeader> <ns4:EventCode>HOLD</ns4:EventCode> <ns4:SourceOrderSystem>OPS</ns4:SourceOrderSystem> <ns4:SourceOrderId>300000011154333</ns4:SourceOrderId> <ns4:SourceOrderNumber>39050</ns4:SourceOrderNumber> <ns4:OrchestrationOrderNumber>39050</ns4:OrchestrationOrderNumber> <ns4:OrchestrationOrderId>300000011154333</ns4:OrchestrationOrderId> <ns4:CustomerId xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/> <ns4:OrderLine> <ns4:OrchestrationOrderLineId>300000011154334</ns4:OrchestrationOrderLineId> <ns4:OrchestrationOrderLineNumber>1</ns4:OrchestrationOrderLineNumber> <ns4:SourceOrderLineId>300000011154334</ns4:SourceOrderLineId> <ns4:SourceOrderLineNumber>1</ns4:SourceOrderLineNumber> <ns4:OrderFulfillmentLine> <ns4:SourceOrderScheduleId>1</ns4:SourceOrderScheduleId> <ns4:FulfillmentOrderLineId>300000011154335</ns4:FulfillmentOrderLineId> <ns4:FulfillmentOrderLineNumber>1</ns4:FulfillmentOrderLineNumber> <ns4:HoldCode>TD_OM_HOLD</ns4:HoldCode> <ns4:HoldComments>Mani test hold </ns4:HoldComments> <ns4:ItemId>300000001590006</ns4:ItemId> <ns4:InventoryOrganizationId>300000001548399</ns4:InventoryOrganizationId> </ns4:OrderFulfillmentLine> </ns4:OrderLine> </ns4:OrderHeader> </results> </Body>
Summary
This post explained how to publish Order Management events out of Supply chain Management cloud and use ICS publish and subscribe features to capture and propagate those events. This approach is suitable for R11 of SCM cloud and ICS R16.4.1. Subsequent releases of these products might offer equivalent or better event-publishing capabilities out-of-box. Refer to product documentation for later versions before implementing a solution based on this post.
All content listed on this page is the property of Oracle Corp. Redistribution not allowed without written permission