[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2002
    Beiträge
    31

    Question HILFE Trigger unter V5R2

    Hallo, ich habe ein grosses Problem. Wir haben am Jahresende die Maschine von 170 auf 270 und das OS/400 von V4R3 auf V5R2 gewechselt.

    So wie ich das sehe, stimmt der buffer nicht mehr überein. Die Stellen 1 - 96 scheinen unverändert, dann kommen die Daten mit altem Inhalt, dann je Dateifeld eine Stelle (Null).

    Jetzt sollte eigentlich der Inhalt des neuen Satzes kommen. Bei mir kommen jetzt aber erst einmal ein paar Blanks (15 oder auch 12 Stellen, je nach Datei) und dann erst die Daten des neuen Satzes. Ich habe im Internet in den Redbooks nachgeschaut, finde dort aber nur den Buffer von V5R1, der eigentlich so wie bei V4R3 aussieht und somit OK sein müsste.

    Wer weiss Rat??

    Viele Grüsse
    Günter

  2. #2
    Registriert seit
    Jul 2001
    Beiträge
    24

    Post

    Hallo Günter,

    der Aufbau des Triggers hat sich tatsächlich geändert! Wir hatten das gleiche Problem und zu diesem Zeitpunkt (Sommer 2002) stimmte die Dokumentation nicht! Ich fand den Aufbau im internet nicht auf die Schnelle, kann ihn aber per e-mail verschicken?

    Gruß
    Claudia Lange

  3. #3
    Registriert seit
    Jan 2002
    Beiträge
    31

    Post

    per eMail wäre sehr nett.

    Vielen Dank und viele Grüsse
    Günter

    mailto:guenter.majewski@thonet.de

  4. #4
    Registriert seit
    Jul 2002
    Beiträge
    53

    Post

    Im Internet:
    http://publib.boulder.ibm.com/iseries/v5r2/ic2929/index.htm?info/dbp/rbafomstrzahftra .htm

    bzw. ein Beispiel
    http://publib.boulder.ibm.com/iserie...bafomst416.htm

    bzw. hier die Buffer-Beschreibung:
    http://publib.boulder.ibm.com/iserie...bafomst420.htm

    [Dieser Beitrag wurde von Gerlitz am 02. Januar 2003 editiert.]

  5. #5
    Registriert seit
    Jun 2001
    Beiträge
    727

    Post

    Hallo,
    bei sauberer Programmierung der Triggerprogramme sollte auch der Umstieg auf V5R2 keine Probleme bereiten.
    Generell sollte der variable Bereich von API-Feldern niemals direkt angesprochen werden.
    Das betrifft auch die Felder welche als "reserved" gekennzeichnet sind.
    Dafür gibt es ja die Offset/Längen-Felder bis Pos 96 Dec.

    siehe auch : http://publib.boulder.ibm.com/iserie...is/concept.htm

    mfg
    Sven

  6. #6
    Registriert seit
    Jan 2002
    Beiträge
    31

    Post

    Hallo,

    vielen Dank an alle für die Mühe und die Infos.

    Es ist tatsächlich so, dass der neue Satzteil nicht mehr direkt hinter dem alten Satzteil beginnt und zwischen dem "origanl record" und dem "new record" Leerstellen eingefügt wurden. Die Pointer stimmen natürlich.

    Ein guter Anlass die Programme zu überarbeiten und auf die Pointeradressierung um zu stellen.

    Vielen Dank und viele Grüsse
    Günter

  7. #7
    Registriert seit
    Jan 2002
    Beiträge
    31

    Post

    Hi nochmals,

    habe jetzt die Triggerprogramme auf die Pointeradressierung umgestellt und es klappt hervorprächtig.

    Anzumerken wär noch, dass das Beispiel der IBM unter: http://publib.boulder.ibm.com/iserie...bafomst416.htm
    nach meinen Erfahrungen falsch sein müsste, da der Bereich des neuen Satzes nicht direkt hinter dem alten anfängt.

    Vielen Dank nochmals
    Günter Majewski

  8. #8
    Registriert seit
    Aug 2001
    Beiträge
    4

    Question

    Hi,

    könnte mir jemand ein Beispiel mailen (detlev_kramer@schleicher-schuell.de) vom:

    - Trigger Buffer V5R1 (D-Zeilen, ILE RPG)
    - wie mann das mit der Pointeradressierung macht.

    Vielen Dank und Gruß
    Detlev

  9. #9
    Registriert seit
    Aug 2001
    Beiträge
    4
    Hallo,

    ich habe in kurzer Zeit 3 Mail's erhalten, die (alle ein wenig anders) mir sehr geholfen haben. Danke !

    Hier für alle, die evtl. noch nach mir eine Lösung suchen, die "Pointer-Version" (von Birgitta):

    * Definiert den fixen Teil des Trigger Buffers = Parameter 1
    * Datenstruktur QDBTB
    /COPY QSYSINC/QRPGLESRC,TrgBuf

    * Länge des Buffers
    D trigBufLen s 10i


    D newRecord e ds extname(FILEA)
    prefix(NEW_)
    based(pNewRecord)
    D oldRecord e ds extname(FILEA)
    prefix(OLD_)
    based(pOldRecord)


    * Definieren Eingangs-Parameter
    C *entry plist
    C parm QDBTB (Trigger Buffer)
    C parm trigbuflen

    * Einlesen des alten und neuen Satzes in die Externen Datenstrukturen
    * 1. Neuer Satz : Pointer Triggerbuffer + Offset Beginn Neuer Satz
    * 2. Alter Satz : Pointer Triggerbuffer + Offset Beginn Alter Satz

    C eval pNewRecord =
    %addr(QDBTB) + QDBNRO (Neuer Satz)
    C eval pOldRecord =
    %addr(QDBTB) + QDBORO (Alter Satz)


    MfG
    Detlev

Similar Threads

  1. SQL Trigger
    By Jenne in forum NEWSboard Programmierung
    Antworten: 0
    Letzter Beitrag: 19-01-07, 09:24
  2. Hilfe! Rollback bei Transaktionen funktioniert nicht
    By remo2010 in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 23-11-06, 13:31
  3. SQL Trigger
    By bigmoon in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 14-09-06, 18:26
  4. Hilfe bei Lodrun Anleitung
    By marcel331 in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 12-08-06, 13:01
  5. Trigger / ILE RPG
    By Frank Pusch in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 17-05-01, 09:34

Berechtigungen

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