Zitat Zitat von kuempi von stein
Hola,

mal wieder eine generelle Frage zur Triggerei für Alle...

Trigger ist gesetzt (sagen wir mal *INSERT und *UPDATE) und Triggerprogramm ist ein "einfaches" RPG-Programm welches bei bestimmten Konstellationen einen Eintrag in eine DTAQ sendet und sich ansonsten wieder schlafen legt.
Wenn ich nun versuche dieses Triggerprogramm zu wandeln bekomme ich ein CPF2143 weil es diverse Locks im System darauf gibt. Alles Programme die eben mit Update auf bewusste Datei einen Zugriff haben.

Was mir nicht klar ist dabei:
F1: Warum locken diese Programme alle zusätzlich das Triggerprogramm?
F2: Warum greift hier nicht die übliche QRPLOBJ-Logik? Das sollte doch machbar sein?

kuempi
Ein Trigger-Programm hängt direkt an einer Datei und wird durch den Database Manager aktiviert, wenn eine bestimmte Aktion eintritt.
Wenn ein Trigger-Programm geändert werden muss, muss der Trigger zunächst abgehängt werden. Das geht jedoch nur wenn die Datei nirgends im Zugriff ist. Denn nur dann ist gewährleistet, dass keine Daten durch unvollendete Aktionen verloren gehen.

Deshalb gibt es auch Empfehlungen das eigentliche Verarbeitungs-Programm aus dem Trigger-Programm aufzurufen. In diesem Fall kann das Verarbeitungs-Programm geändert werden, ohne dass der Trigger abgehängt werden muss.

Birgitta