Adición de columnas a una tabla predeterminada

Puede añadir columnas a las tablas modificando los archivos XML de extensión de base de datos de entidad y, a continuación, volviendo a crear la base de datos de aplicación y los archivos JAR. Una vez reconstruida la aplicación, las API reconocen estas columnas añadidas y las utilizan al almacenar y recuperar datos.

Procedimiento

  1. Copie el archivo <runtime_sandbox>/repository/entity/extensions/Extensions.xml.sample como archivo <runtime_sandbox>/extensions/global/entities/your_custom_filename.xml O modifique el archivo XML de extensión existente.
  2. Edite el archivo your_custom_filename.xml para añadir una etiqueta de entidad tal como se muestra en el ejemplo siguiente para cada tabla que desee ampliar. Si la etiqueta existe, utilice la existente. Para obtener una descripción de los atributos XML, consulte la tabla que sigue al ejemplo.
    <!-- element exposed to create a column --> 
    <DBSchema Depends="" Name=""> 
      <Entities> 
        <Entity TableName="REQUIRED"> 
        <Attributes> 
          <Attribute ColumnName="REQUIRED" DataType="" DecimalDigits="" 
           CompressionSupported="false"
           UseCompression="false" QueryAllowed="false" DefaultValue="" Description=""
           Nullable="false" Size="1" Type="REQUIRED" XMLName="OPTIONAL" Name="OPTIONAL" XMLGroup=""
           SqlServerDataType="" /> 
        </Attributes> 
        </Entity> 
      </Entities> 
    </DBSchema>
    Nota: Si se especifica ColumnName que utiliza un juego de caracteres no ASCII, los atributos XMLName y Name son necesarios.

    El siguiente archivo XML de extensión de ejemplo muestra un atributo o índice cuando se añade a una columna de tabla:

    Atributo añadido a una columna de tabla

    <DBSchema Name="FunctionalExtensions"> 
      <Entities> 
        <Entity TableName="REQUIRED"> 
        <Attributes> 
          <Attribute ColumnName="REQUIRED" DataType="" DecimalDigits="" 
           CompressionSupported="false"
           UseCompression="false" QueryAllowed="false" DefaultValue="" Description=""
           Nullable="false" Size="1" Type="REQUIRED" XMLName="OPTIONAL" Name="OPTIONAL" XMLGroup=""
           SqlServerDataType="" /> 
        </Attributes> 
        </Entity> 
      </Entities> 
    </DBSchema>

    Índice añadido a una columna de tabla

    <DBSchema Depends="FunctionalExtensions" Name="SystestIndexes"> 
      <Entities> 
        <Entity TableName="REQUIRED"> 
        <Indices> 
          <Index Name="ExtnIndex_1"/> 
             <Column Name="REQUIRED"/>
          </Index> 
        </Indices>
        </Entity> 
      </Entities> 
    </DBSchema>

    Atributo

    Descripción

    Depends

    Opcional. Nombre del archivo de extensiones que contiene las entidades dependientes. Los archivos sin nombre se denominan implícitamente. Internamente, la parte ".xml" se elimina del nombre de archivo. Debe incluir la vía de acceso relativa al directorio de entidad de repositorio. Por ejemplo, en este caso, el archivo FunctionalExtensions.xml reside en resources.jar en el directorio database/entities/upgradeextensions/ .

    Nombre

    Opcional, a menos que esté utilizando un juego de caracteres no ASCII, en cuyo caso es obligatorio, al igual que XMLName.

    Un nombre para este archivo de extensiones de entidad que identifica el archivo de extensión en el caso de que otra entidad dependa de este archivo. Los archivos sin nombre se denominan implícitamente. Internamente, la parte ".xml" se elimina del nombre de archivo. Debe incluir la ruta de acceso relativa al directorio de la entidad de repositorio.

    Por ejemplo, en este caso, el archivo SystestIndexes.xml reside en resources.jar en el directorio database/entities/upgradeextensions/ .

    ColumnName

    Necesario. Nombre de la columna añadida a esta tabla. ColumnName debe empezar por EXTN_.

    XMLName y Name son obligatorios si este atributo no es ASCII.

    DataType

    Opcional. Los valores válidos están disponibles en el archivo dir_instalación /repository/datatypes/datatypes.xml .

    Nota: El tipo de datos BLOB no está soportado.

    DecimalDigits

    Opcional. Número de dígitos de precisión que son necesarios después del decimal. Sólo es necesario para campos numéricos.

    CompressionSupported

    Opcional. Atributo utilizado para indicar si la compresión de datos está soportada para esta columna. Los valores válidos son True o False. Si el valor es True, el soporte de compresión está activado.

    Nota: Si ha insertado datos en una columna y ha establecido los atributos CompressionSupported y UseCompression en True, no vuelva a establecer el atributo CompressionSupported en False. Ello provocaría que todos los datos comprimidos se recuperaran sin descomprimir.

    UseCompression

    Opcional. Atributo que se utiliza para comprimir los datos de esta columna. Los valores válidos son True o False. Si el valor es True, los datos se comprimen.

    Nota: El valor de este atributo debe establecerse en True sólo si el atributo CompressionSupported está establecido en True.

    QueryAllowed

    Opcional. Atributo que se utiliza para permitir el uso de una columna comprimible para las consultas en una API List. Los valores válidos son True o False. Si el valor es True, la columna puede utilizarse para consultas en las API List.

    Nota: Si el valor del atributo CompressionSupported se establece en true, el valor de este atributo también se debe establecer en True.

    DefaultValue

    Necesario. Se utiliza tal cual para la cláusula defaults de la base de datos.

    Descripción

    Opcional. Descripción del uso de la columna.

    Posibilidad de nulos

    Opcional. Atributo que se utiliza para describir el valor que admite nulos de un campo. El valor predeterminado es false.

    Se recomienda establecerlo en true, a menos que sea la columna de clave primaria.

    Tamaño

    Tamaño de la columna de la base de datos.

    Tipo

    Necesario. Tipo de datos de la columna de la base de datos. Este atributo también determina el tipo de atributo en las clases Java™ que se generan y el formato del atributo en el XML. Los tipos válidos son CHAR, VARCHAR2, NUMBER, DATE y TIMESTAMP.

    Nota: Si se especifica DATE, sólo se almacena la fecha de calendario. Si se especifica TIMESTAMP, se almacenan la fecha de calendario y la hora.

    XMLName

    Nombre XML del atributo, si es distinto del nombre del atributo. Junto con Name, este atributo es obligatorio si está utilizando un juego de caracteres no ASCII.

    Elija un nombre que no entre en conflicto con la extensión base. Es recomendable que utilice Extn como prefijo. También se recomienda utilizar la misma convención para llegar al XMLName que el producto base Sterling™ Order Management System : Haga que cada letra que siga al guión bajo en el nombre de la columna esté en mayúsculas y el resto en minúsculas. A continuación, elimine los signos de subrayado. Por lo tanto, Extn_Item_Id debe ser ExtnItemId.

    XMLGroup

    Si está presente, indica la etiqueta hijo en la que el atributo está presente. Si el atributo no está presente en el XML, utilice la serie NOT_SHOWN.

    XMLGroup debe ser Extn. De este modo, los datos de las columnas ampliadas se encuentran en un elemento separado en la salida XML de la API.

    VirtualDefaultValue

    Opcional. Este atributo es aplicable a las columnas nulas. Cuando desde la retorno se devuelve un nulo, se almacena en memoria como el valor predeterminado virtual.

    ForceUpperCase

    Opcional. Si se requiere una búsqueda "no sensible a mayúsculas y minúsculas" para una columna de texto, este campo debe establecerse en "True".

    Si se establece en "True", el sistema convierte los datos especificados en este campo a mayúsculas.

    ResizeForMultibyte Algunas de las tablas de localización de entidades de datos maestros tienen un tamaño de columna que no admite caracteres de varios bytes. Utilice este atributo cuando desee aumentar el tamaño de carácter de una columna de este tipo o de una columna existente. Si el atributo se establece en Y, ayuda a redimensionar la longitud de una columna cuando la propiedad SUPPORT_MULTIBYTE se establece en true en el archivo sandbox.cfg . Para obtener más información sobre la característica, consulte Soporte para caracteres de varios bytes en la base de datos
  3. Cree una etiqueta de atributo para cada columna que desee añadir a la tabla.
  4. Amplíe las plantillas de API correspondientes siguiendo los pasos que se describen en "Acerca de la ampliación de plantillas de API".
  5. Compile y despliegue las ampliaciones. Al crear extensiones de base de datos se ejecuta la herramienta dbverify, que aplica SQL generados por dbverify a la base de datos.

Resultados

Un caso especial de ampliación de columnas para añadir identificadores o descriptores de etiqueta exclusivos se explica en Adición de identificadores y descriptores de etiqueta exclusivos a una tabla predeterminada.