Components and parameters in the Service Definition Framework
The Service Definition Framework uses the following components
and parameters for the integration of WebSphere Commerce and Sterling Order Management.
SOAP servlet
This component receives requests from WebSphere Commerce and invokes the appropriate service, based
on its definition in the SDF. This entry point for any provided services accepts
serviceName and extensionClass as arguments. For example, the
following flow shows WebSphere Commerce calling
SCWC_SDF_reserveAvailableInventoryService: These services are just entry points, and are designed as two-part services. Each calls a
"child" subservice so that, if extensive customization is required, it can be done in the
subservice. The WebSphere Commerce -facing part of the
service does not need to change, because the subservice performs all the transformation and API
invocations involved. In addition, all of these components take the argument "extensionClass," which
contains services to use before and after invocation, creating further customization opportunities.
Figure 1. Code example of the beforeServiceCall and afterServiceCall
public interface SCWCIntegrationServiceAPICallback {
public void beforeServiceCall(YFSEnvironment env, String serviceName, Document input);
public void afterServiceCall(YFSEnvironment env, String serviceName, Document output);
}
ValueMapXSLT Translator
This component translates requests and responses
between Sterling Order Management and WebSphere Commerce. It converts WebSphere Commerce message formats to Sterling API XML format
and performs reverse (XSLT) value map conversion. The file ValueMaps.xml contains
value mapping for specific configuration attributes that may not have same value in both systems,
such as StoreId to Enterprise Code and UOM C62 to EACH.
The ValueMapXSLTranslator takes the
following parameters:
xslFileName
This property defines the location of the XSL file that is used for the message format
conversion and value mapping.
valueMapFileName
This property defines the location of the ValueMaps.xml, which contains the
mapping of values between Sterling Order Management
and WebSphere Commerce attributes.
extensionClass
This property is used to extend the behavior of a service.
You can use extensionClass to perform custom logic before or after the input
XML conversion.
public interface SCWCXSLTCallback {
public Document beforeXSLTCall(YFSEnvironment env, Document input);
public Document afterXSLTCall(YFSEnvironment env, Document output);
}
API node
This component calls the Sterling Order Management APIs.
In the following examples, the WebSphere Commerce storefront calls
the reserveAvailableInventory API using the SCWC_SDF_reserveAvailableInventoryService:
Save Context and RetrieveContextAndAddToResponse
This component works in
conjunction with the ValueMapXSLTranslator, mapping certain information in the XSL to a context
element. It analyzes the request message and stores the correlating object to the Sterling Order Management context for later use. For
example, manual adjustments in Sterling Order Management have no correlation and are not persisted in WebSphere Commerce. If Sterling Order Management calls getOrderPrice in WebSphere Commerce to reprice an order that contains a manual
adjustment, the adjustment is first "saved" in Sterling Order Management and then added back to the order
whenWebSphere Commerce returns a response.
This
component has the following parameters:
SaveContext
Removes correlation data (context element) from a request and saves it before making a service
call.
RetrieveContextAndAddToResponse
Returns correlation data to the response.
ValueMapXSLTranslator
XSL file contains mapping of context element to XML output to add information back to the
message.
The following example shows the flow for an order that is created by Sterling Call Center that is priced by the WebSphere Commerce storefront by using the
SCWC_SDF_getOrderPriceService. Sterling attributes are persisted with Save Context and
RetrieveContextAndAddToResponse.
Invoke WebSphere Commerce web service
This component is used for
synchronous requests from Sterling Order Management to
WebSphere Commerce. It creates a SOAP message and accepts
arguments such as WebSphere Commerce URL and user name. The
following example shows the flow for an order created by Sterling Call Center that is priced by the WebSphere Commerce storefront using the
SCWC_SDF_getOrderPriceService.