Customization and extension are customer side activities. The Oracle Retail release of Functional Artifacts coincides with a Oracle Retail Enterprise Release. Any new Business Objects or changes to existing base Business Objects are handled as described in Chapter 4, "Versioning Artifacts." The packaging schema is discussed in Chapter 2, "Packaging Structure and Standards."
Business Object customization is defined as changes or extension of the base XSDs made by a customer to satisfy a customer specific business requirement.
Oracle Application Integration Architecture (AIA) and other industry standards have defined an approach using well known tags and packaging locations to separate the custom extensions from the base. This allows the extensions to be preserved as updates to the base are applied. Oracle Retail has implemented the same model.
The Oracle Retail Functional Artifact Generator Guide describes the tool used to generate the Functional Artifacts from the Business Object XSDs. The guide also contains examples and step-by-step instructions through simple use cases.
The Oracle Retail Integration Bus Implementation Guide contains a chapter about RIB customization and extension, with examples and use cases including customization to the Business Objects.
The Retail SOA Enabler Tool uses localized or custom Functional Artifacts as one of its tool inputs in the process of creating Web services.
This section demonstrates the standards used to create and manage functional artifacts, as they relate to the customization and extension of the base business objects (XSDs).
The Functional Artifact Generator tool called the Template Creator is used to create the customization objects and hooks as described in the following example. Using the Template Genertor is recommended for performing the basic steps of creating placeholders and imports.
Note: For a step-by-step example, see the Oracle Retail Functional Artifact Generator Guide. |
The custom BO schema module must be named ExtOf<BO>.
Topic | Description |
---|---|
Recommendation | The naming convention for the custom XSD for an BO must be as follows: ExtOf<BO>. |
Rationale | The naming convention standardizes the names for namespace, packaging, and tool generation of Objects. |
Example | ASNInBO.xsd has a corresponding ExtOfASNInBO.xsd:
xmlns="http://www.oracle.com/retail/integration/base/bo/ASNInBO/v1" xmlns:ExtOfASNInBO="http://www.oracle.com/retail/integration/custom/bo/ExtOfASNInBO/v1" |
For a considered custom BO schema, existence of related base BO schema is optional.
Topic | Description |
---|---|
Recommendation | For any BO, existence of a base XSD related to a custom XSD is optional. However the naming convention for the custom XSD must always be as follows: ExtOf<BO>. |
Rationale | There can be baseless custom Business Object. Such custom BO do not have related BO. |
Example | ExtOfASNInNoBaseBO.xsd does not have a corresponding ASNInNoBaseBO.xsd:/retail/integration/custom/ bo/ (Business Objects) ExtOfASNInNoBaseBO (Custom BO Name) v[1] (Version - latest) ExtOfASNInNoBaseBO.xsd (BO Schema exist.)/retail/integration/base/ bo/ (Business Objects) [Business Object ASNInNoBaseBO does not exist] |
Each Business Object schema module must import its custom Business Object schema module:
Topic | Description |
---|---|
Recommendation | Each BO schema must import its custom BO schema module. |
Rationale | The custom schema is well defined and in the packaging structure. |
Example |
targetNamespace=http://www.oracle.com/retail/integration/base/bo/ASNInBO/v1 version="1.0" xmlns="http://www.oracle.com/retail/integration/base/bo/ASNInBO/v1" xmlns:ExtOfASNInBO=http://www.oracle.com/retail/integration/custom/bo/ExtOfASNInBO/v1 xmlns:retailDoc=http://www.w3.org/2001/XMLSchema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:import namespace="http://www.oracle.com/retail/integration/custom/bo/ExtOfASNInBO/v1" schemaLocation="../../../../custom/bo/ExtOfASNInBO/v1/ExtOfASNInBO.xsd"> </xs:import> |
Each BO XSD complexType must have a local element named Custom<Parent Type Name> added.
Topic | Description |
---|---|
Recommendation | Each BO XSD complexType must have a local element named Custom<Parent Type Name> added. |
Rationale | A local element named "Custom<Parent Type Name>" exists at the end of every EBO type.
For example, CustomASNInBO. |
Example |
<xs:element maxOccurs="1" minOccurs="0" ref="ExtOfASNInBO:ExtOfASNInItem"></xs:element> |
The Custom<Parent Type Name> must not be recursively defined.
Topic | Description |
---|---|
Recommendation | The Custom<Parent Type Name> must not recursively define a note named Custom<Parent Type Name> within it. |
Rationale | A Custom<Parent Type Name> must be one level deep, or in relatively flattened structure (to reduce complexity). |
Example |
Each BO XSD complexType must have a local element named Localization<Parent Type Name> added.
Topic | Description |
---|---|
Recommendation | The naming convention for the custom XSD for an localized BO must be as follows: EOfBr<BO> or EOfIn<BO>. |
Rationale | The naming convention standardizes the names for namespace, packaging, and tool generation of Objects. |
Example | ASNInBO.xsd has a corresponding EOfBrASNInBO.xsd and EOfInASNInBO:
xmlns="http://www.oracle.com/retail/integration/localization/bo/BrASNInBO/v1" xmlns:EOfBrASNInBO="http://www.oracle.com/retail/integration/custom/bo/EOfBrASNInBO/v1" |
Imports that refer to only non cyclic references are allowed in customized XSD.
Topic | Description |
---|---|
Recommendation | Customized XSD cannot refer to custom localized business objects. |
Rationale | Customized business objects can only import non cyclic references. |
Example | ExtOfASNOut cannot import EOfBrASNOut. |