La instrucción opcional dentro de la instrucción OBJECT que define las propiedades del objeto.
ATTRIBUTES [nombre_tabla]{
nombre_atributo [nombre_campo] tipo_valor [tipo_acceso[tipo_estado][DISPLAY_NAME string]]{
[ON_NEW DEFAULT|SET valor|NOW ;]
[ON_CI DEFAULT|SET valor|NOW ;]
[ON_DB_INIT DEFAULT|SET value|NOW ;];]};]
El nombre de la tabla en la base de datos que almacena los valores asociados a los atributos del objeto. Si no se especifica el nombre de la tabla, se usa el nombre_objeto en la instrucción OBJECT.
El nombre del atributo. Cada atributo suele asignarse a un campo (columna) de la tabla de la base de datos.
El nombre del campo en la tabla de la base de datos, LOCAL si el atributo no se asigna a un campo o DERIVED (derived-expr) si el atributo se deriva de otros atributos. Si no se especifica ni LOCAL, DERIVED, ni un nombre de campo, se asume que el nombre del campo es el mismo que el nombre del atributo.
Una variable declarada como DERIVED se construye sólo cuando se recupera su valor. El operando de DERIVED contiene una lista de nombres de atributo y de constantes de cadena separados mediante espacios. Todos los atributos de un valor derivado deben ser valores simples (esto es, no pueden ser valores xREL) y deben declararse antes en la variable derivada. El valor del atributo derivado es la concatenación de los valores de sus valores constituyentes.
Las constantes de cadena incluidas en una expresión derivada pueden contener referencias a variables de entorno en uno de los siguientes formatos:
${var}
${var#pattern}
${var#pattern#replacement}
Estas especificaciones se sustituyen por el valor de la variable de entorno a la hora de inicio de domsrvr. El operando #pattern es opcional. Si se proporciona, se trata como una expresión regular y se sustituye allí donde aparezca en el valor de la variable de entorno. Si no se especifica, el valor predeterminado del operando #replacement es nulo. Ya que # es un delimitador fijo, el patrón no puede contener un símbolo #. No hay restricciones para el uso de atributos derivados en otros mensajes. Se comportan del mismo modo que los atributos estándar. Cada vez que cambia alguno de los atributos a partir de los cuales se generó un atributo derivado, se desencadena un vínculo activo para el atributo derivado.
Identifica el tipo de datos del valor del atributo como:
Si se especifica STRING, puede especificarse el tamaño en forma de un entero que siga a STRING. Si no se especifica tamaño, se emplea el valor de la base de datos.
UUID son 16 bytes de datos binarios empleados como identificador exclusivo para ciertos registros de base de datos.
SREL remite el atributo a otro objeto. Si se especifica SREL, debe especificarse nombre_objeto2 para identificar el objeto al que remite el atributo.
nombre_srel especifica una SREL “con nombre”. Al igual que una SREL “simple”, una SREL “con nombre” es un tipo de atributo MAJIC OBJECT que representa una relación única, que identifica de forma exclusiva una fila en otra tabla (nombre_objeto2). Un atributo SREL “simple” se asigna, por lo general, al campo “id” de otra tabla; sin embargo un atributo SREL “con nombre” se asigna a dos o más atributos ( nombre, nombre2, … ) en la tabla a la que se hace referencia, que identifican de forma exclusiva una fila en dicha tabla.
Define el acceso al atributo. Los valores válidos son:
|
Valor |
Descripción |
|---|---|
|
CONST |
No puede modificarse |
|
PRIVATE |
Sólo lectura |
|
PUBLIC |
Acceso de lectura/escritura (valor predeterminado) |
|
WRITE_NEW |
Puede escribirse sólo cuando se crea el objeto, antes de guardarlo |
Indica el estado del atributo como:
Especifica una cadena que utilizar en lugar del nombre de atributo en mensajes concernientes a este atributo, como el que determina que falta un atributo obligatorio.
Utilice una de ellas sólo cuando tipo_valor sea INTEGER, STRING, DATE, o SREL.
Indica que se defina el valor de un atributo cuando el objeto se cree por primera vez:
|
Valor |
Descripción |
|---|---|
|
DEFAULT |
Cambia un valor actual nulo por valor o NOW. |
|
SET |
Cambia cualquier valor actual por valor o NOW. |
|
valor |
Especifica un valor numérico o un valor de cadena, dependiendo del tipo de datos del atributo. |
|
AHORA |
Especifique este valor si el atributo es de tipo DATE; define el atributo como la fecha y hora actuales. |
En el siguiente ejemplo, 90 es el valor definido como predeterminado cuando se crea el objeto:
ON_NEW DEFAULT 90 ;
Indica que se defina el valor de un atributo cuando se compruebe el atributo en la base de datos. Consulte la descripción de cada parámetro para ON_NEW.
Indica que se defina el valor de un atributo cuando se creen instancias para él desde la base de datos. Consulte la descripción de cada parámetro para ON_NEW.
Este ejemplo define atributos con nombres como start_date cuyos valores se almacenan en campos como nlh_start en la tabla Notify_Log_Header de la base de datos. Los nombres de campo van seguidos de cada tipo de datos de atributo. Los parámetros opcionales definen el acceso a algunos de los atributos, indican que el atributo es obligatorio y cuándo definir el valor de algunos de los atributos como la fecha y la hora actuales.
Por ejemplo, se define un atributo llamado last_mod; su valor se define como la fecha y hora actuales cuando el atributo se devuelve a la base de datos. Se define también un atributo llamado contact; su valor es una relación única almacenada en el campo de la base de datos nlh_c_addressee. El objeto al que se hace referencia es cnt:
ATTRIBUTES Notify_Log_Header {
start_date nlh_start DATE WRITE_NEW {ON_NEW DEFAULT NOW;} ;
last_mod DATE {ON_CI SET NOW ;} ;
msg_hdr nlh_hdr STRING 20 WRITE_NEW ;
msg_text nlh_msg STRING WRITE_NEW ;
msg_ack nlh_user_ack STRING ;
contact nlh_c_addressee SREL cnt WRITE_NEW ;
notify_method nlh_cm_method INTEGER WRITE_NEW ;
activity_notify nlh_transition INTEGER WRITE_NEW ;
pri_event nlh_pri INTEGER WRITE_NEW ;
notify_type nlh_type INTEGER WRITE_NEW ;
ack_time nlh_ack_time DURATION ;
status nlh_status INTEGER REQUIRED ;
end_date nlh_end DATE {ON_NEW DEFAULT NOW ;} ;
};
|
Copyright © 2013 CA.
Todos los derechos reservados.
|
|