The DEFINE GENERIC command creates a generic element definition. You can create generic elements that are based on types supplied by Oracle CDD/Repository or on user-supplied (extended) types. If you do most of your work with extended types, it is recommended that you work through the Oracle CDD/Repository callable interface. The CDO GENERIC commands are useful to modify and display on a spot basis, but extensibility is not supported through CDO. If the generic element is a controlled versioned element, you use the DEFINE GENERIC command to create initial versions. Use the RESERVE and REPLACE commands to create new versions. If the generic element is an uncontrolled versioned element, use the DEFINE GENERIC command to create both initial and new versions. By default, CDO automatically assigns a directory name that is the same as the element name of the generic element that you define. However, you can assign a processing name to a generic element that is different from its directory name. When you define a property for a generic element, the property you specify must be a defined or inherited property for the element's type. Any values you specify for the property must be compatible with the data type indicated in the property type definition. Likewise, any relationship member you specify must be compatible with the relationship name's type. See the Oracle CDD/Repository Information Model Volume I for more information on valid properties and members. When you work with extended types, include the MCS_processingName property in your type definition. If you omit one of these properties, your type definition does not allow you to specify a processing name for generic elements based on it. Without a processing name, you cannot use the CHANGE GENERIC command to add or delete properties and relationships for a generic element. CAUTION Specify the MCS_processingName property, not the CDD$PROCESSING_NAME property, when you work with extended types. Otherwise, you experience performance degradation in the Oracle CDD/Repository callable interface.