Develop > Business logic layer > Work with the data service layer > Extend the WebSphere Commerce schema using the data service layer
Accept object-relational metadata and Physical Service Data Objects to reflect schema changes using the Data Service Layer Wizard
The WebSphere Commerce Data Service Layer Wizard generates the physical SDO Java classes for the customizations, along with the required object-relational metadata and configuration for business object mediators. These steps are required if you add a new table, and also for any new service modules you develop. XML assets that are generated are stored in the service module configuration extension directories and custom physical SDO Java classes are stored inside the WebSphereCommerceServerExtensionsLogic project.
Before you begin
The schema contains the new tables for which the physical SDO Java classes and object-relational mapping are needed.
This task describes how to use the Data Service Layer Wizard to add object-relational metadata and generate the physical SDO classes for a customized schema. This wizard allows you to perform the following tasks:
- Creates an extension configuration folder for the service module if one does not already exist. The directory path is WC_EAR\xml\config\servicemodulepackagename-ext, where servicemodulepackagename is the package name of the service module you are working with, for example com.ibm.commerce.catalog.
- Creates object-relational metadata that handles the mapping between the custom physical SDOs and the database customization. The file path is WC_EAR\xml\config\servicemodulepackagename-ext\wc-object-relational-metadata.xml.
- Creates physical SDO Java classes for the new tables in the WebSphereCommerceServerExtensionsLogic project.
- Creates a utility Java class to return the physical SDO root class for the service module. This root class ensures that all WebSphere Commerce physical SDOs for the Service Module, and any additional physical SDOs for the customization, are available at runtime.
- If the service module is a WebSphere Commerce component, creates an extension service module configuration file that instructs WebSphere Commerce to use the newly created physical SDO class in WC_EAR\xml\config\servicemodulepackagename-ext\wc-component.xml. For custom service modules, this file is already created by the JET pattern when you create the service module.
- If the service module is a WebSphere Commerce component, creates an extension business object mediator configuration file that configures the business object mediator to include data from the custom tables in the user data area of a noun. This file is located at WC_EAR\xml\config\servicemodulepackagename-ext\wc-business-object-mediator.xml. For custom service modules, this file is already created by the JET pattern when you create the service module.
You must use supported database column data types in the custom tables. Supported data types are described in Database column data type considerations. If you use unsupported data types, tools such as the Data Service Layer Wizard and the staging server will encounter errors.
Reading the log file generated by the Data Service Layer WizardThe Data Service Layer Wizard's .log file located in the RAD_INSTALL/workspace/.metadata directory can become very large. This is due to the generation of many lines of information into the log file by all the eclipse plugins. While this file can contain a large amount of information, you can determine the relevance of each message by observing the Plugin ID, which serves as a prefix to all messages contained in the log.
To determine which messages are relevant to the Data Service Layer Wizard, simply observe all messages which are prefixed by the Plugin ID com.ibm.commerce.toolkit.internal.dataaccess in the log file.
Procedure
Use the Data Service Layer wizard to generate object-relational metadata and physical data objects representing the customized schema.
- If the development environment uses an Apache Derby database, ensure that there is no existing connection to it (for example, ensure that the WebSphere Commerce Server is stopped).
- Select File > New > Other > WebSphere Commerce > Data Service Layer .
- Click Next.
- Select Extend a default WebSphere Commerce service module or Work with a custom service module.
- Enter the required information. In Service module , select the name of the module for which you are building SDOs. In Extension class prefix enter a string that is used to prefix all classes that are generated. In Extension Java package name enter the name of the package that will contain the SDOs.
For example, if we are extending the catalog schema, the values would be...
- Service module: Select com.ibm.commerce.catalog
- Extension class prefix: MyCompany
- Extension Java package name: com.mycompany.commerce.catalog
- Click Next.
- Select the custom tables you have added to the schema.
- Under each table you have selected, select the columns to include in the SDO class. Primary key columns, non-nullable columns, and the optcounter column are automatically selected. Primary key columns are not available, because include them in the SDO.
- Click Next.
- On the Metadata Editing panel, you can choose what columns to include in the UserData area of the logical schema, by clicking the UserData column to set the value to true or false.
- If you use the Oracle NUMBER data type in a custom table, choose a more granular data type to map to. The Oracle NUMBER data type can represent different multiple types, including integer, long, float, and double. Using the dropdown list in the Datatype column, choose the appropriate mapping.
- Click Finish.
Related concepts