Folgeverknüpfung Tabellen

Hallo,

ich habe wieder eine Frage: Wie kann ich eine Folgeverknüpfung realisieren, die Felder einer verknüpften Datenbanktabelle neu berechnet?

Situation:
Tabelle Objekte
Tabelle Mietverträge

Wenn ich bei den Objekten die Kaltmiete verändere, soll bei den Mietverträgen die Staffelmiete neu berechnet werden. Die beiden Tabellen sind miteinander verknüpft.

Wird hierfür der Workflowmanager benötigt?

Viele Grüße

Thomas

Vorab: Am „wasserdichtesten“ wäre hier ein datenbankseitiger Trigger, weil dann wirklich JEDE Änderung an einer Kaltmiete-Änderung eines Objektes, egal auf welchem Weg sie stattfindet (evtl. sogar am cRM „vorbei“), dazu führen wird, dass die damit verknüpften Mietvertragsstaffelmieten aktualisiert werden. Aber T-SQL Trigger Code zu schreiben muss man mögen. :nerd_face:

Alternative 1: Innerhalb des cRM können Sie aber auch das „Datensatz wurde gespeichert“ Ereignis für „Objekte“ nutzen und ein Script schreiben, das alle mit dem WScript.Event.Record1 (dort steckt der gespeicherte „Objekt“-Datensatz dahinter) verknüpften Mietverträge filtert, bei denen die Staffelmiete nicht der jetzt im Objekt hinterlegten Kaltmiete entspricht. Die Trefferliste durchlaufen Sie und ändern dann die Staffelmiete entsprechend.

Dabei müssen Sie aber beachten, dass das Ereignis nicht bei einer Änderung des Kaltmiete-Feldes direkt in der Zelle eines/r Container/Übersichtsliste ausgelöst werden wird. D.h. es wäre sinnvoll, wenn Sie das Kaltmiete-Feld hier für eine direkte Änderung sperren (Kontextmenü der Titelzeile > Konfigurieren > Spalten-Eigenschaften und im Dialog die Spalte „Bearbeitbar“), so dass diese nur über die Eingabemaske zu ändern ist.

Alternative 2: Sie können auch das serverseitige Feldänderungsereignis nutzen, d.h. Sie definieren ein Feldänderungsereignis in „Objekte“ für das Feld „Kaltmiete“ und machen dort im Script eben genau das, was Sie auch im „Datensatz wurde gespeichert“ Ereignis der Alternative 1 oben sonst machen würden. Das Feldänderungsereignis feuert auch für direkte Änderungen in Container/Übersichtsliste. Der Workflow Server muss natürlich laufen, um diese Ereignisse abzuarbeiten. Er verbraucht dabei eine cRM Lizenz. Für Script-Programmierer ohne Triggerprogrammierkenntnisse halte ich diese Variante für eine extrem gute Lösung. :+1:

Viel Erfolg!

Am besten als INSTEAD OF-Trigger damit das ganze auch in einer Transaktion statt findet oder eben gar nicht statt findet aber nicht nur Teilweise :wink:

Eventuell mal beide Tabellendefinitionen posten und die zu berechnende Spalte.

Vielen Dank für die Hilfe! Ich bin gerade am probieren und würde mich noch einmal melden, falls Probleme auftauchen.