-
Trigger sperrt Datensatz
Hallo zusammen,
ich habe einen Trigger (RPG) auf eine PF definiert, nur für WRITE + *AFTER.
Das definierte RPG-Programm wird auch aufgerufen, alles soweit gut....
ABER...
Der Datensatz, auf den der Trigger reagiert, ist gesperrt !!!
In meinem Triggerprogramm rufe ich ein anderes PGM auf, um diverse Prüfungen zu machen.
Dort (in den anderen Programm) mache ich dann auch einen Update auf den Datensatz.
Und dieser Update geht dann natürlich in die "Hose".
Da ich (bisher) dieses "andere" PGM auch aus dem Web (Net.Data) aufrufe, wollte
ich mit dem Triggerprogramm vorerst nur eine "weitere" Möglichkeit des Aufrufs realisieren.
Ich könnte natürlich auch die Verarbeitung aus dem "anderen" Programm in das Triggerprogramm verlagern, aber solange der Satz gesperrt ist, werde ich ja dann im Triggerprogramm beim Update das gleiche "Problem" bekommen !!! ... oder ?????
Und ich hätte dann natürlich das Problem, dass ich in der WebAnwendung die Funktion der Plausiprüfung nicht mehr anbieten könnte, zumindest nicht ohne das Triggerprogramm "extrem" zu verbiegen....
Kann man (irgendwie) den Datensatz im Triggerprogramm "freigeben", bevor ich das "andere" Programm aufrufe ???
Vielen Dank vorab !
Peet
-
Du kannst den Trigger als *before definieren und eine Änderung des Satzes durch den Trigger zulassen.
Dann mußt du deine Pgmme so umbauen das sie den Satz empfangen und nicht lesen bzw zurückgeben und nicht schreiben.
Das schreiben macht dann 'quasi' der Trigger, ohne das du ein "Write" aufrufst
Robi
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Das Problem ist die Gefahr der Rekursion!
Wenn ein Trigger den Datensatz ändern will, muss er das, so wie oben beschrieben, auf jeden Fall vor dem Festschreiben in der DB machen.
Möchtest du eine Plausi-Prüfung machen und ggf. dann den Write ablehnen, musst du eine ESC-Nachricht (Abbruch) per MSGAPI senden.
-
Hallo zusammen,
ich habe die Lösung gefunden.
Beim ADDPFTRG muss der Parameter "ALWREPCHG(*YES)" gesetzt werden !!
Habe ich hier gefunden...
http://itknowledgeexchange.techtarge...e-record-lock/
Danke trotzdem....
Peet
-
Da hoffe ich nur für dich, dass dein Trigger nicht durch den wiederholten Update noch mal aufgerufen wird da dann die RPG-Runtime die Rekursion verhindert.
-
mit meinem
eine Änderung des Satzes durch den Trigger zulassen
habe ich diesen Parameter gemeint. Das das auch bei *after Triggern und einem erneuten write durch ein vom Trigger gerufenes Pgm funktioniert habe ich nicht gewusst. Ist mir aber auch zu wirr.
Aber wenn sein soll ...
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
Similar Threads
-
By ExAzubi in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 13-08-15, 08:46
-
By rr2001 in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 29-07-15, 10:36
-
By dschroeder in forum NEWSboard Programmierung
Antworten: 14
Letzter Beitrag: 17-06-15, 14:51
-
By dschroeder in forum NEWSboard Programmierung
Antworten: 40
Letzter Beitrag: 03-11-14, 09:15
-
By loeweadolf in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 23-07-14, 14:01
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks