Objektregel in AutoCAD Map einrichten

1. Fügen Sie ein Datumsfeld hinzu.

2. Starten Sie im Kontextmenü der rechten Maustaste auf die Objektklasse den Befehl Objektregeln bearbeiten

3. Klicken Sie auf die Schaltfläche Neu, um eine neue allgemeine Objektregel zu definieren.

4. Bestimmen Sie, ob der Trigger für jeden im aktuell zu ändernden Datensatz (Zeilentrigger) oder einmalig für den aktuellen Vorgang (Anweisungstrigger) auszuführen ist (a). Nur bei einem Zeilentrigger können Sie auf die Werte der einzelnen Datensätze (:new... und :old...) zugreifen.

5. Geben Sie Name (b) und Beschreibung (c) der Objektregel ein.

6. Für den Fall, dass der Trigger im Falle eines Update-Statements nur ausgelöst werden soll, wenn ein bestimmtes Feld geändert wurde, geben Sie die Ausführungsspalte an (d). Das hat keine Auswirkungen auf INSERT- oder DELETE-Statements. Wann immer Sie die Objektregel einer Objektklasse zuordnen, müssen Sie sicherstellen, dass dieses Feld in der Objektklasse definiert ist.

7. Ist es erforderlich, dass andere Objektregeln vor dieser Objektregel oder umgekehrt diese Objektregel unbedingt vor anderen ausgeführt werden soll, bestimmen Sie die Ausführungsreihenfolge über die Priorität (e). Dabei handelt es sich um eine Vorgabepriorität, die standardmäßig bei Anwendung an der jeweiligen Objektklasse eingestellt ist, sich aber noch individuell anpassen lässt.

8. Bestimmen Sie, wann der Trigger auszuführen ist (f). Dabei wird unterschieden, bei welchem Statement (INSERT, UPDATE und/oder DELETE) und ob vor oder nach der Ausführung der Trigger auszuführen ist. Typisches Beispiel für vor dem Einfügen: Prüfung und Korrektur der Werte. Typisches Beispiel für nach dem Ausführen: wurde die Pflegemaßnahme "Baum fällen" als ausgeführt deklariert, erhält der Datensatz des Baumes die Eigenschaft GEFAELLT=1. Typisches Beispiel für ein AFTER-INSERT-Statement-Trigger: sende Mails an die Verantwortlichen über den aktuellen Stand der Hydrantenprüfung und zwar nicht eine Mail für jeden einzelnen defekten Hydranten (das wäre ein Beispiel für AFTER INSERT-ROW-Trigger) , sondern eine Mail mit allen betroffenen Hydranten.

9. Schreiben Sie den Trigger-Text (g) als PL/SQL (https://www.oracle.com/de/database/technologies/appdev/plsql.html). In diesem Fall kanns kaum kürzer gehen, wenn auch die Änderung der Geometrie zu null zur Änderung des Datumswertes führen soll:
declare
begin
 :new.EBL_DATE_GEOMUPDATE  := sysdate;
end;

Zwischen declare und begin definieren Sie etwaig erforderliche Variablen, z.B.
declare
  variable1 varchar2(10) := 'Wert1';
  variable2 number(1) := 0;
begin
  [...]
end;

Wann immer Sie die Objektregel einer Objektklasse zuordnen, müssen Sie sicherstellen, dass alle im Triggertext verwendeten Felder mit den Verweisen :old. und :new. in der Objektklasse definiert sind.

Bitte beachten Sie, dass die Änderung einer anderen Tabelle die Ausführung weiterer Trigger auslösen kann. Und beachten Sie, dass ich während der Ausführung einer Datenänderung (insert, update, delete) kein select-Statement auf eben dieselbe Tabelle ausgeführt werden kann.

Jeder Fehler im Triggertext führt nicht nur zu einer fehlerhaften Objektregel, sondern auch zu invaliden Oracle-Triggern bei allen Objektklassen, bei denen die Objektregel angewandt wurde.

10. Ordnen Sie die Objektregel zu und aktivieren Sie sie.