Pasos para crear una tabla descolgada
Puede crear una tabla descolgada siguiendo una serie de pasos.
Acerca de esta tarea
Para crear una tabla descolgada:
Procedimiento
- Copie el archivo <runtime_sandbox>/repository/entity/extensions/Extensions.xml.sample como archivo <runtime_sandbox>/extensions/global/entities/your_custome_filename.xml O modifique el archivo XML de extensión existente. Por ejemplo, supongamos que ABC_CUSTOMER_ORDER_LINE es una tabla descolgada.
- Edite el archivo your_custom_filename.xml para crear tablas descolgadas tal como se muestra en el ejemplo siguiente. Para obtener una
descripción de los atributos XML, consulte la tabla que sigue al
ejemplo.
<DBSchema> <Entities> <Entity ApiNeeded="Y/N" AuditRequired="Y" Description="" HasHistory="Y/N" Prefix="ABC" TableName="ABC_CUSTOMER_ORDER_LINE" TableType="TRANSACTION" KeyType="Random" > <!-- table columns --> <Attributes> <Attribute ColumnName="CREATETS" DataType="TimeStamp" DefaultValue="sysdate" Description="Create TimeStamp" /> <Attribute ColumnName="MODIFYTS" DataType="TimeStamp" DefaultValue="sysdate" Description="Modify TimeStamp" /> <Attribute ColumnName="CREATEUSERID" DataType="UserId" DefaultValue="' '" Description="Creating User ID" /> <Attribute ColumnName="MODIFYUSERID" DataType="UserId" DefaultValue="' '" Description="Modifying User ID" /> <Attribute ColumnName="CREATEPROGID" DataType="ProgramID" DefaultValue="' '" Description="Creating Program ID" /> <Attribute ColumnName="MODIFYPROGID" DataType="ProgramID" DefaultValue="' '" Description="Modifying Program ID" /> <Attribute ColumnName="LOCKID" DataType="Lockid" DefaultValue="0" Description="Lock ID" /> <Attribute ColumnName="TABLE_KEY" DataType="Key" DefaultValue=" " Description="" Nullable="True/False" XMLName="TableKey" /> . . </Attributes> <!-- PrimaryKey is a mandatory attribute in entity definition. This element can have ONLY ONE attribute element --> <PrimaryKey Name="TABLE_NAME_PK"> <Attribute ColumnName="TABLE_KEY" /> </PrimaryKey> <!-- Indices --> <Indices> <Index Name="INDEX_I1" Unique="True/False"> <Column Name="Attribute2" /> . . </Index> . . </Indices> <!-- Relationship --> <Parent ParentTableName="YFS_ORDER_LINE" XMLName="YFSOrderLine" > <Attribute ColumnName="CUSTOM_ORDER_KEY" ParentColumnName="ORDER_LINE_KEY" /> . . </Parent> <ForeignKeys> <ForeignKey ParentTableName="PARENT_ORDER_LINE" XMLName="PARENTName1" > <Attribute ColumnName="CUSTOM_ORDER_KEY" ParentColumnName="PARENT_COLUMN_KEY" /> . . </ForeignKey> . . </ForeignKeys> <!-- AuditReferences --> <AuditReferences> <Reference ColumnName="TABLE_KEY" /> . . </AuditReferences> </Entity> </Entities> </DBSchema>Notas:
- Si se especifica TableName utilizando un juego de caracteres no ASCII, los atributos XMLName y Name son obligatorios.
- Si se especifica ColumnName utilizando un juego de caracteres no ASCII, los atributos XMLName y Name son obligatorios.
- En la tabla siguiente se explican los atributos del XML de
entidad:
Atributo
Descripción
Entidad
ApiNeeded
Indica si se deben generar las API o no. Loa valores válidos son Y o N. Si se pasa Y, se genera un conjunto predeterminado de API.
Por ejemplo, en la tabla ABC_CUSTOMER_ORDER_LINE, la aplicación crea las siguientes API cuando se genera el archivo jar de extensión de la base de datos:- listABCCustomerOrderLine()
- getABCCustomerOrderLine()
- createABCCustomerOrderLine()
- modifyABCCustomerOrderLine()
- deleteABCCustomerOrderLine()
Es posible acceder a estas API como servicios utilizando la Infraestructura de definición de servicio.
AuditRequired
Si se establece en Y, se creará un registro de auditoría para esta entidad.
Nota: Este atributo no debe pasarse cuando se crear un elemento descolgado para tablas de órdenes relacionadas. En este caso, las auditorías se insertan automáticamente en la tabla YFS_ORDER_AUDIT.
Descripción
Una descripción de la entidad que se puede utilizar en Javadoc o ERD.
HasHistory
Este indicador se hereda automáticamente de la tabla padre. Por ejemplo, supongamos que se crea la tabla ABC_ORDER_HEADER como una tabla descolgada para YFS_ORDER_HEADER, que tiene una tabla de historial asociada. A continuación, la infraestructura de la base de datos genera automáticamente ABC_ORDER_HEADER_H.
Prefijo
El prefijo que se añade a las tablas personalizadas. Se recomienda no utilizar un prefijo que empiece por Y.
TableName
El nombre dado a la tabla descolgada.
TableType Esto es obligatorio para dar soporte a multiesquema en IBM® Sterling™ Order Management System. Los valores válidos con: CONFIGURATION, MASTER, TRANSACTION, STATISTICS y METADATA. KeyType
Opcional. El valor válido es Random. Cuando el valor se establece en Random, la lógica utilizada para generar claves primarias para la tabla genera claves primarias aleatorias en lugar de claves primarias secuenciales. Es decir, cuando KeyType=”Random”, se incluyen dos dígitos aleatorios en las claves primarias. Por ejemplo, el formato de las claves primarias generadas es AAAAMMDDHHRRMM(SS)NNNNNNNN, donde RR representa los dos dígitos aleatorios. Entity/Attributes/Attribute
ColumnName
Los nombres de las columnas que componen la tabla.
DataType
El tipo de datos de la columna. Los tipos de datos válidos se incluyen en el archivo dir_instalación/repository/datatypes/datatypes.xml.
Nota: El tipo de datos BLOB no está soportado.CompressionSupported
Opcional. Atributo que se utiliza para indicar si se permite la compresión de datos para esta columna. Loa valores válidos son True o False. Si el valor es True, el soporte de compresión está activado.
Nota: Si los datos insertados en una columna tienen los atributos CompressionSupported y UseCompression establecidos en True, este atributo no se debe volver a establecer 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. Loa 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. Loa 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
Valor predeterminado de la columna.
Descripción
Descripción de las columnas que se pueden utilizar en Javadoc o ERD.
Posibilidad de nulos
Opcional. Atributo que se utiliza para describir el valor que admite nulos de un campo. El valor predeterminado es false. Nullable=true se permite para todas las columnas excepto Atributos de clave primaria y Relaciones de entidad.
XMLName
Opcional. Nombre XML del atributo, si es distinto del nombre del atributo.
Elija un nombre que no entre en conflicto con la extensión base. Es recomendable que utilice Extn como prefijo. También es muy recomendable que utilice el mismo convenio para el atributo XMLName que el que sigue el producto base. Escriba en mayúsculas la letra que va a continuación de cada signo de subrayado del nombre de columna y el resto en minúsculas. A continuación, elimine los signos de subrayado. Por lo tanto, Extn_Item_Id debería ser: ExtnItemId.
Entity/PrimaryKey
Nombre
Nombre del índice exclusivo creado para la clave primaria. Este valor no puede superar los 18 caracteres.
Nota: El nombre de la clave primaria en el XML de extensión debe finalizar con _PK.ColumnName
El nombre de la columna de tabla identificada como la clave primaria.
Entity/Indices/Index
Nombre
El nombre de índice. Este valor no puede superar los 18 caracteres.
Exclusivo
Esta clave está presente sólo para las entidades personalizadas. Loa valores válidos son True o False. Si el valor es True, se crea un índice exclusivo.
AllowCompressedColumns
Opcional. Si el valor es True, el índice puede contener columnas marcadas con el atributo CompressionSupported establecido en True.
Column/Name
El nombre de columna de tabla asociado con el índice.
Entity/Parent
ParentTableName
Nombre de la otra tabla con la que esta entidad tiene una relación de clave foránea.
XMLName
El nombre XML del atributo padre. Debe empezar por el prefijo mencionado en la tabla padre.
De forma predeterminada, se da por sentado que es el nombre de la tabla padre.
Parent/Attribute Level
ParentColumnName
Nombre de columna en la tabla padre.
Nota: para crear relaciones entre entidades, el tipo de datos de la columna padre debe ser de tipo CHAR o VARCHAR.
ColumnName
Nombre de columna de esta entidad personalizada.
Entity/ForeignKeys/ForeignKey
ParentTableName
Nombre de la tabla con la que la entidad tiene una relación de clave foránea.
XMLName
Representación XML del nombre de elemento.
De forma predeterminada, se da por sentado que es el nombre de la tabla padre.
Entity/ForeignKeys/ForeignKey/Attribute
ParentColumnName
Nombre de columna de la tabla padre.
Nota: para crear claves foráneas entre entidades, el tipo de datos de la columna padre debe ser de tipo CHAR o VARCHAR.
ColumnName
Nombre de columna de esta entidad descolgada.
Entity/AuditReferences/Reference
ColumnName
Nombre de columna de referencia en la tabla de auditoría.
Nota: En la definición de entidad, la relación se puede definir bajo los elementos ForeignKey . - La relación definida bajo el elemento ForeignKey indica que:
- Si la tabla foránea es una tabla definida por la aplicación, para un único registro de la tabla foránea, pueden existir cero o muchos registros en esta tabla descolgada.
- Esta es una relación de sólo lectura, de ahí que la supresión de un registro de la tabla externa no da como resultado la supresión de un registro coincidente de esta tabla descolgada.
- Amplíe las plantillas de API correspondientes (por ejemplo, la
API getOrderDetails) siguiendo las instrucciones que se dan en
"Ampliación de plantillas de API". Nota: Las API generadas para las tablas descolgadas se pueden invocar como un servicio y a través de un componente derivador multiAPI .
- Compile y despliegue las ampliaciones.