[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2003
    Beiträge
    290

    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

  2. #2
    Registriert seit
    Jun 2001
    Beiträge
    1.973
    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!)

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    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.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  4. #4
    Registriert seit
    Jan 2003
    Beiträge
    290
    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

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    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.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  6. #6
    Registriert seit
    Jun 2001
    Beiträge
    1.973
    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

  1. SQL: Anzahl Spalten die einen Wert enthalten -pro Datensatz
    By ExAzubi in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 13-08-15, 09:46
  2. xml pro Segment einen Datensatz ausgeben
    By rr2001 in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 29-07-15, 11:36
  3. Datensatz per Embedded SQL in Tabelle schreiben mit autogenerated Key
    By dschroeder in forum NEWSboard Programmierung
    Antworten: 14
    Letzter Beitrag: 17-06-15, 15:51
  4. Antworten: 40
    Letzter Beitrag: 03-11-14, 10:15
  5. IBM Rational Developer sperrt Platz auf PC ??
    By loeweadolf in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 23-07-14, 15:01

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •