[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jul 2003
    Beiträge
    63

    Trigger nach Wechsel auf V5R2M0

    Hallo zusammen,

    ich habe zu Vorberreitung des Releasewechsels meine Trigger-Programme (RPG/400 kein ILE) dahingehend angepaßt, daß die Extraction der Daten für alten und neuen Satz über Offset und Länge stattfindet und nicht mehr über festdefinierte Bereiche (OLDERC NEWREC).
    Das hat aber nicht ausgereicht, da sich auch die Parameterlänge in V5R2M0 geändert hat. Bei den entsprechenden SUBST-Operationen laufe ich auf mit Fehler RPG0100 (Wert liegt außerhalb des Gultigen Bereichs für die Zeichenfolgeoperation), weil Offset und Länge eine Posisiotn ergeben, die außerhalb des definierten PARM1 liegt; z.B. bisherige Länge 598, neue Länge 640, bisher 708 neu 800, bisher 420 neu 448.
    Da ich nicht alle Programme nach ILE umstellen will (kann), meine Frage, ob es hier eine Formel zur Berechnung der richtigen Pufferlänge gibt.

    Vielen Dank im Voraus

    Klaus Hardy

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Das Umstellen auf ILE geht relativ einfach mittels RTVRPGSRC.

    Was die Länge der Bereiche angeht, so kann man über die Zukunft nichts sagen.
    Einzig die Offset-Angabe wird immer an der gleichen Stelle stehen.

    Da RPG-Strukturen auf eine maximale Länge von 9999 Zeichen beschränkt ist, wirst du ein Problem haben, wenn deine Sätze mal sehr lang werden.

    Du kannst den Bereich in RPG unbedenklich mit 9999 definieren, da er ja als Parameter übergeben wird.

    Tipp:

    Über ILE-RPG laufen Trigger schneller (wenn LR anbleibt), da ich die Puffer nicht extrahieren muss sondern über Pointer und Pointer-Arithmetik und einer bzw. zwei BASED-Struktur/en direkt auf die Puffer zugreifen kann.
    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

  3. #3
    Registriert seit
    Jul 2003
    Beiträge
    63
    Herzlichen Dank,

    Das hat mir sehr geholfen.

    Da die Modifikationen in allen Trigger-Quellen ungefähr die gleichen sein werden und ich darüberhinaus kein Freund bin von Maßnahmen wie: "nehmen wir mal Länge 9999, wird schon reichen", überlege ich tatsächlich, alles auf ILE umzustellen.

    Wenn es hierzu vielleicht irgendwo einen kleinen Quellauszug, besonders bezüglich der variablen Längendefinition von PARM1 geben würde ?

    mfg
    Klaus Hardy

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

    Trigger in RPGIV

    Hallo Klaus,

    vielleicht hilft Dir das folgende Beispiel weiter.
    Die Datenstruktur für Parameter 1 ist in der Bibliothek QSYSINC, Datei QRPGLESRC, Teil-Datei TrgBuf vorhanden:

    Beispiel
    PHP-Code:
     *Defintition Parameter
     
    /COPY QSYSINC/QRPGLESRC,TrgBuf            
    D trigBufLen      s             10i 0      

     
    Externe Datenstrukturen für Satz alt/neu
    D newRecord     e ds                  extname
    (FILEAprefix(NEW_)  
    D                                     based(pNewRecord)            
    D oldRecord     e ds                  extname(FILEAprefix(OLD_)  
    D                                     based(pOldRecord)            
     *----------------------------------------------------------------------------                              
    C     *entry        plist                                    
    C                   parm                    QDBTB            
    C                   parm                    trigbuflen       

     
    1. Neuer Satz Pointer Triggerbuffer Offset Beginn Neuer Satz       
     
    2. Alter Satz Pointer Triggerbuffer Offset Beginn Alter Satz       
    C                   
    eval      pNewRecord = %addr(QDBTB) + QDBNRO          
    C                   
    eval      pOldRecord = %addr(QDBTB) + QDBORO          
                                                                              
     
    Verarbeitung                                                           

    C                   
    Return 
    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  5. #5
    Registriert seit
    Jul 2003
    Beiträge
    63
    Genau das habe ich gesucht.

    vielen Dank, Birgitta.

    Ich denke, jetzt komme ich allein zurecht und das Thema ist (erstmal) geschlossen.

    Nochmal ein Dankeschön an alle Beteiligten.

    Klaus Hardy

Similar Threads

  1. Wechsel auf i5-510....SPLF sichern
    By svente in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 04-01-07, 21:48
  2. Trigger auf Feldebene?
    By CZE425 in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 10-02-05, 12:35
  3. Performanceeinbruch nach Wechsel auf V5R3M0
    By Woody in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 13-01-05, 09:49
  4. Release Wechsel von V4R4 auf V5R1
    By Carsten in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 19-10-01, 08:42
  5. Release - Wechsel
    By moeller400 in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 29-05-01, 14:55

Berechtigungen

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