[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    May 2004
    Beiträge
    91

    Trigger-Problem CPF5032

    Hallo allerseits,

    ich habe ein kleines Problem: Ich habe einen Trigger in RPG IV geschrieben, welcher beim Insert eines Satzes diesen in Abhängigkeit von anderen Parametern ergänzen soll. Rein technisch funktioniert das Programm, nur wenn ich es mittels ADDPFTRG ( *After *Insert) an die Datei hänge, und danach einen Satz zufügen möchte, kommt ein Fehler CPF5032 - Satz XXX ist bereits für diesen Job gesperrt.
    Was kann ich tun??? Steh ich total auf dem Schlauch, oder weiss jemand Rat???

    Danke und Grüße

    Alexander May

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    Hallo,

    normalerweise macht man das als Before Insert Trigger mit ALWRPTCHG(*YES) beim ADDPFTRG und modifiziert den Buffer im Trigger et voila es steht drin.

    mfg

    Dieter Bender

    Zitat Zitat von alexander may
    Hallo allerseits,

    ich habe ein kleines Problem: Ich habe einen Trigger in RPG IV geschrieben, welcher beim Insert eines Satzes diesen in Abhängigkeit von anderen Parametern ergänzen soll. Rein technisch funktioniert das Programm, nur wenn ich es mittels ADDPFTRG ( *After *Insert) an die Datei hänge, und danach einen Satz zufügen möchte, kommt ein Fehler CPF5032 - Satz XXX ist bereits für diesen Job gesperrt.
    Was kann ich tun??? Steh ich total auf dem Schlauch, oder weiss jemand Rat???

    Danke und Grüße

    Alexander May
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #3
    Registriert seit
    May 2004
    Beiträge
    91
    hmmmmm, danke erstmal, das klingt schon nach dem, was ich suche.... aber: wie modifiziere ich den buffer???
    ich habe folgendes codiert:

    PHP-Code:
    0008.28 DTrgBuffer DS 
    0008.29 DTFileName 10 
    0008.30 DTLibraryName 10 
    0008.31 DTMemberName 10 
    0008.32 DTEvent 1 
    0008.33 DTTime 1 
    0008.34 DTCommitLock 1 
    0008.35 DTFill01 3 
    0008.36 DTCCSID 10I 0
    0008.37 DTRRN 10I 0
    0008.38 DTFill02 10I 0
    0008.39 DTOldOffSet 10I 0
    0008.40 DTOldLength 10I 0
    0008.41 DTOldNullOff 10I 0
    0008.42 DTOldNullLen 10I 0
    0008.43 DTNewOffSet 10I 0
    0008.44 DTNewLength 10I 0
    0008.45 DTNewNullOff 10I 0
    0008.46 DTNewNullLen 10I 0
    0008.47 D

    0008.48 DTrgBufferLen S 10I 0 
    0008.49 D

    0008.50 DOldRecord E DS EXTNAME(LGLMPREFIX(O_)
    0008.51 D BASED(OldRecPtr
    0008.52 DNewRecord E DS EXTNAME(LGLMPREFIX(N_)
    0008.53 D BASED(NewRecPtr
    0022.00 C
    0022.01 C*ANFANG PROGRAMMZYKLUS 
    0022.02 C

    0022.02 C
    0022.03 C *ENTRY PLIST 
    0022.04 C

    0022.05 C PARM TRGBUFFER 
    0022.06 C PARM TRGBUFFERLEN 
    0022.07 C

    0022.08 C EVAL OldRecPtr = %ADDR(TrgBuffer)+TOldOffSet
    0022.09 C 
    EVAL NewRecPtr = %ADDR(TrgBuffer)+TNewOffSet
    0022.10 C


    danach folgt die verarbeitung....

    bitte um kleine Hilfestellung.....

    Danke und Gruss

    Alexander May

  4. #4
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    Hallo,

    Ewald ist dein Freund, in deinem Fall:

    EVAL N_VORNAME = 'Hugo'
    EVAL N_NAME = 'Hühnerkopf'

    und schon heißt er Hugo Hühnerkopf, da du ja über Pointer mappst

    mfg

    Dieter Bender

    Zitat Zitat von alexander may
    hmmmmm, danke erstmal, das klingt schon nach dem, was ich suche.... aber: wie modifiziere ich den buffer???
    ich habe folgendes codiert:

    PHP-Code:
    0008.28 DTrgBuffer DS 
    0008.29 DTFileName 10 
    0008.30 DTLibraryName 10 
    0008.31 DTMemberName 10 
    0008.32 DTEvent 1 
    0008.33 DTTime 1 
    0008.34 DTCommitLock 1 
    0008.35 DTFill01 3 
    0008.36 DTCCSID 10I 0
    0008.37 DTRRN 10I 0
    0008.38 DTFill02 10I 0
    0008.39 DTOldOffSet 10I 0
    0008.40 DTOldLength 10I 0
    0008.41 DTOldNullOff 10I 0
    0008.42 DTOldNullLen 10I 0
    0008.43 DTNewOffSet 10I 0
    0008.44 DTNewLength 10I 0
    0008.45 DTNewNullOff 10I 0
    0008.46 DTNewNullLen 10I 0
    0008.47 D

    0008.48 DTrgBufferLen S 10I 0 
    0008.49 D

    0008.50 DOldRecord E DS EXTNAME(LGLMPREFIX(O_)
    0008.51 D BASED(OldRecPtr
    0008.52 DNewRecord E DS EXTNAME(LGLMPREFIX(N_)
    0008.53 D BASED(NewRecPtr
    0022.00 C
    0022.01 C*ANFANG PROGRAMMZYKLUS 
    0022.02 C

    0022.02 C
    0022.03 C *ENTRY PLIST 
    0022.04 C

    0022.05 C PARM TRGBUFFER 
    0022.06 C PARM TRGBUFFERLEN 
    0022.07 C

    0022.08 C EVAL OldRecPtr = %ADDR(TrgBuffer)+TOldOffSet
    0022.09 C 
    EVAL NewRecPtr = %ADDR(TrgBuffer)+TNewOffSet
    0022.10 C


    danach folgt die verarbeitung....

    bitte um kleine Hilfestellung.....

    Danke und Gruss

    Alexander May
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  5. #5
    Registriert seit
    May 2004
    Beiträge
    91
    Vielen Dank.....
    wieder was gelernt.....

    Wenn ich Dir mal was gutes tun kann...

    Grüße

    Alexander May

Similar Threads

  1. Problem mit Java-Methoden Aufruf aus ILE RPG?
    By Stoeberl in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 10-01-07, 10:58
  2. Problem mit Steuerzeichen in Datenbank?
    By Stoeberl in forum NEWSboard Programmierung
    Antworten: 11
    Letzter Beitrag: 26-10-06, 10:07
  3. Authorization Problem nach ändern der Primary Group
    By ChrisX in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 11-10-06, 15:31
  4. Merkwürdiges Problem in VRPG
    By Flappes in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 06-10-06, 08:39
  5. Problem ODBC und VB.NET
    By Marsman in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 11-07-06, 10:50

Berechtigungen

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