[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Feb 2001
    Beiträge
    20.784
    Wobei das bei "alten" RPG oder gar CLP's wohl etwas schwierig wird.

    Soviel dazu, dass CONST im rufenden Programm mal wieder nicht sicher ist.
    Was nützt mir da die Compilerprüfung im gerufenen Programm.

    Jetzt muss ich ja doch wieder Hilfsvariablen rummoven um mich vor Änderungen zu schützen.

    Aus dem alten simplen
    CALL 'MYPGM'
    PARM SOURCE DEST

    wird dann wieder
    DEST = SOURCE;
    MYPGM(DEST);
    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

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.389
    PHP-Code:
    d NOP2            pr                  extpgm('NOP2')
    d Kappes                        10                  
     
    *                                                  
    d NOP2            pi                                
    d Kappes                        10                  
     
    /free                                              
           Kappes 
    'denkste';                          
           return;                                      
     /
    end-free 
    *********************
    PHP-Code:
    d NOP2            pr                  extpgm('NOP2')
    d Kappes                        10    const         
    d noKappes        s             10                  
    d                                                   
     
    *                                                  
     /
    free                                              
           noKappes 
    'kein Kappes';                    
           
    NOP2(noKappes);                              
           
    dsply noKappes;                              
           return;                                      
     /
    end-free 
    ******************
    call tstnop2
    => 'denkste'

    D*B

    PS: RPG ist und bleibt ein Wackelhaufen, der Compiler glaubt schlicht was ein Programmierer im Prototyp behauptet und wenn man nix behauptet (*entry PLIST) glaubt er alles.

    => CONST im Prototyp beim aufrufenden Programm schützt davor, dass Änderungen zurück kommen und prüft sonst nix!

    CONST im Prototyp des Procedure Interfaces des aufgerufenen Programmes prüft, dass man die Finger davon lässt!
    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
    Aug 2001
    Beiträge
    2.942
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Wobei das bei "alten" RPG oder gar CLP's wohl etwas schwierig wird.

    Soviel dazu, dass CONST im rufenden Programm mal wieder nicht sicher ist.
    Was nützt mir da die Compilerprüfung im gerufenen Programm.

    Jetzt muss ich ja doch wieder Hilfsvariablen rummoven um mich vor Änderungen zu schützen.

    Aus dem alten simplen
    CALL 'MYPGM'
    PARM SOURCE DEST

    wird dann wieder
    DEST = SOURCE;
    MYPGM(DEST);
    Deshalb sollte man ja auch die Prototypen für alte Programme auch nicht mit irgendwas bestücken, das vorher auch nicht unterstützt war.

    Die Rummoverrei musstest Du vorher auch machen!

    Noch schlimmer wird's wenn in alten Programmen optionale Parameter verwendet wurden, die zudem nicht im aufgerufenen alten Programm abgeprüft wurden.

    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

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.784
    Ob dein Programm die Aufrufparameter über *ENTRY oder Interface definiert ist dem rufenden Programm letztlich egal da es sich hierbei ausschließlich um Compiler-Direktive handelt.

    Wenn du dir per DSPPGM mal die Anzahl Parameter (Programmstatistik) ansiehst, so wirst du feststellen dass jedes Programm zwischen 0 und 255 Aufrufparameter hat selbst wenn du keine definiert hast.

    Deshalb gibt es ja erst Laufzeitfehler nach dem Aufruf eines Programmes. Die Anzahl Parameter kannst du mit %parms() abfragen und ob ein Parameter besetzt ist mit %addr(Parm) = *NULL.

    Beim CLP wird die Anzahl der Parameter festvorgegeben, weshalb es da ggf. beim Aufruf schon den Parameterfehler gibt.

    Eine Mischung zwischen ILE- und OPM-Calls ist daher jederzeit möglich.
    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

Similar Threads

  1. alle Programme zu einen PF
    By steven_r in forum NEWSboard Programmierung
    Antworten: 7
    Letzter Beitrag: 01-07-08, 16:33
  2. Call in einem Ile-RPG
    By dino in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 17-01-07, 10:23
  3. "remote" - call
    By hh-mi in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 15-11-06, 13:23
  4. CallP über mehrere Zeilen im Free-Format
    By edig in forum NEWSboard Programmierung
    Antworten: 10
    Letzter Beitrag: 14-07-06, 16:48
  5. aktive Programme
    By jajonowak in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 12-06-06, 14:55

Berechtigungen

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