Vorheriges Thema: OBJECT-AnweisungNächstes Thema: Optionale FACTORY-Anweisung


Optionale ATTRIBUTES-Anweisung

Die optionale Anweisung der OBJECT-Anweisung, welche die Eigenschaften des Objekts definiert.

Syntax

ATTRIBUTES [table_name]{
   att_name [field_name] value_type [access_type[status_type][DISPLAY_NAME string]]{
       [ON_NEW DEFAULT|SET value|NOW ;]
       [ON_CI DEFAULT|SET value|NOW ;]
	[ON_DB_INIT DEFAULT|SET value|NOW ;];]};]

Argumente

table_name

Der Name der Tabelle in der Datenbank, in der die Werte gespeichert werden, die den Attributen im Objekt zugeordnet sind. Wenn der Tabellenname nicht angegeben ist, wird in der OBJEKT-Anweisung der obj_name verwendet.

att_name

Der Name des Attributs. Jedes Attribut ist für gewöhnlich einem Feld (Spalte) in der Datenbanktabelle zugeordnet.

Feld_Name

Der Name des Feldes in der Datenbanktabelle oder LOCAL, wenn das Attribut keinem Feld zugeordnet ist, oder DERIVED (abgeleiteter Ausdruck), wenn das Attribut von anderen Attributen abgeleitet ist. Wenn weder LOCAL, DERIVED noch ein Feldname angegeben ist, wird angenommen, dass der Name des Feldes dem Namen des Attributs entspricht.

Eine Variable, die als DERIVED deklariert ist, wird nur erstellt, wenn ihr Wert abgerufen wird. Der Operand von DERIVED enthält eine Liste mit Attributnamen und Zeichenfolgekonstanten, die durch Leerzeichen abgetrennt sind. Alle Attribute in einem abgeleiteten Wert müssen einfache Werte sein (d. h., sie können keine xRELs sein) und müssen vor der abgeleiteten Variablen deklariert werden. Der abgeleitete Wert des Attributs entspricht einer Verkettung der Einzelwerte.

Die Zeichenfolgekonstanten innerhalb eines abgeleiteten Ausdrucks können Referenzen auf Umgebungsvariablen in einem der folgenden Formate enthalten:

${var}

${var#pattern}

${var#pattern#replacement}

Solche Spezifikationen werden durch den Wert der Umgebungsvariablen zur domsrvr-Startzeit ersetzt. Der #pattern-Operand ist optional. Wenn er angegeben ist, wird er als regulärer Ausdruck behandelt und an jeder Stelle, an der er angezeigt wird, im Wert der Umgebungsvariablen ersetzt. Der #replacement-Operand wird standardmäßig auf Null gesetzt, wenn er nicht angegeben ist. Da # ein festes Trennzeichen ist, darf das Muster kein #-Symbol enthalten. Für die Verwendung von abgeleiteten Attributen in anderen Meldungen gibt es keine Einschränkungen. Sie verhalten sich genauso wie Standardattribute. Ein Hotlink für ein abgeleitetes Attribut wird ausgelöst, wenn sich eines der Attribute ändert, von dem er erstellt ist.

value_type

Identifiziert den Datentyp des Attributwerts an als:

Wenn STRING angegeben ist, kann die Größe als Ganzzahl nach STRING angegeben werden. Wenn keine Größe angegeben ist, wird der Wert in der Datenbank verwendet.

UUID entspricht binären Daten (16 Byte), die als eindeutiges Kennzeichen für bestimmte Datenbank-Datensätze verwendet werden.

SREL verweist das Attribut auf ein anderes Objekt. Wenn SREL angegeben ist, muss obj2_name angegeben werden, um das Objekt zu identifizieren, auf das das Attribut verweist.

srel_name gibt einen „benannten“ SREL an. Wie ein „einfaches“ entspricht auch ein „benanntes“ SREL einem MAJIC OBJEKT-Attribut, das eine Einzelbeziehung darstellt, die eindeutig eine Zeile in einer anderen Tabelle (ob2_name) identifiziert. Ein „einfaches“ SREL-Attribut wird normalerweise dem Feld „id“ in einer anderen Tabelle zugeordnet, wohingegen ein „benanntes“ SREL zwei oder mehr Attribute (name, name2, …) zu zwei oder mehr Attributen in der referenzierten Tabelle zuordnet, die eindeutig eine Zeile in der referenzierten Tabelle identifizieren.

access_type

Definiert den Zugriff auf das Attribut. Gültige Werte sind:

Wert

Beschreibung

CONST

Kann nicht geändert werden

PRIVATE

Schreibgeschützt

PUBLIC

Lese-/Schreibzugriff (Standardwert)

WRITE_NEW

Kann nur geschrieben werden, wenn das Objekt erstellt wird, bevor das Objekt gespeichert wird.

status_type

Gibt den Status des Attributs an als:

DISPLAY_NAME Zeichenfolge

Gibt eine Zeichenfolge an, die anstelle des Attributnamens in Meldungen verwendet wird, die dieses Attribut betreffen (z.B. "Erforderliches Attribut nicht vorhanden").

ON-Anweisungen

Verwenden Sie eine dieser Anweisungen, wenn value_type INTEGER, STRING, DATE oder SREL ist.

ON_NEW DEFAULT|SET value|NOW

Gibt an, dass der Wert eines Attributs festzulegen ist, wenn das Objekt zum ersten Mal erstellt wird:

Wert

Beschreibung

DEFAULT

Ändert den aktuellen Wert NULL in value oder NOW.

SET

Ändert einen beliebigen aktuellen Wert in value oder NOW.

value

Gibt einen numerischen Wert oder einen Zeichenfolgewert an, der vom Datentyp des Attributs abhängt.

JETZT

Geben Sie diesen Wert an, wenn das Attribut den Typ DATE aufweist. Damit wird das Attribut auf das aktuelle Datum und die aktuelle Uhrzeit gesetzt.

Im folgenden Beispiel entspricht 90 dem Wertsatz als Standardwert, wenn das Objekt erstellt wird:

ON_NEW DEFAULT 90 ;
ON_CI DEFAULT|SET value|NOW

Gibt an, dass der Wert eines Attributs festzulegen ist, wenn das Attribut in die Datenbank eingecheckt wird. Siehe Beschreibung der einzelnen Parameter für ON_NEW.

ON_DB_INIT DEFAULT|SET value|NOW

Gibt an, dass der Wert eines Attributs festzulegen ist, wenn das Attribut aus der Datenbank instanziiert wird. Siehe Beschreibung der einzelnen Parameter für ON_NEW.

Beispiel

In diesem Beispiel werden Attribute mit Namen wie „start_date“ erstellt, deren Werte in Feldern wie „nlh_start“ in der Tabelle „Notify_Log_Header“ in der Datenbank gespeichert werden. Die Feldnamen werden vom Datentyp jedes Attributs gefolgt. Optionale Parameter definieren den Zugriff auf einige der Attribute und geben an, dass das Attribut erforderlich ist und wann der Wert von einigen der Attribute auf das aktuelle Datum und die aktuelle Uhrzeit einzustellen ist.

Beispiel: Das Attribut „last_mod“ wird definiert. Der Wert des Attributs wird auf das aktuelle Datum und die aktuelle Uhrzeit gesetzt, wenn das Attribut in die Datenbank eingecheckt wird. Darüber hinaus wird das Attribut „contact“ definiert. Der Wert dieses Attributs entspricht einer Einzelbeziehung, die im Datenbankfeld „nlh_c_addressee“ gespeichert wird. Das Objekt, auf das verwiesen wird, lautet 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 ;} ;

};