Components and parameters in the Service Definition Framework
The Service Definition Framework uses the following components and parameters for the integration of HCL Commerce and Sterling Order Management.
SOAP servlet
This component receives requests from HCL Commerce and invokes the appropriate service, based on its definition in the SDF. This entry point for any provided services acceptsserviceName
and extensionClass
as arguments. For example, the
following flow shows HCL 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 HCL 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.
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 HCL Commerce. It converts HCL Commerce message formats to Sterling API XML format and performs reverse (XSLT) value map conversion. The fileValueMaps.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 HCL Commerce attributes. - extensionClass
- This property is used to extend the behavior of a service.
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 HCL 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 HCL Commerce. If Sterling Order Management calls getOrderPrice in HCL 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 whenHCL 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.