[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jul 2012
    Beiträge
    2

    AS400 CL / RPG - ftp Programm

    Hallo zusammen,

    ich habe da ein Problem und bitte um Hilfe.
    Ich möchte auf der damals AS400 ein CL oder RPG Programm schreiben welches den ftp Befehl dynamisch gestaltet. Das heißt, ich möchte dass das Programm erkennen soll welcher Benutzer angemeldet ist und das Programm aufgerufen hat und dann die entsprechende Sicherungsdatei nimmt um darauf den ftp zumachen. Ich bin soweit, dass ich mir in der QTEMP eine TEMP80 mit Zeichenlänge 80 erstelle welche ich mit den Daten die das FTP benötigt fülle. Jetzt möchte ich diese Datei mit einem %scan nach dem Feld mit der Sicherungsdatei absuchen und sie mit der zu dem aktuellen Benutzer gehörende Sicherungsdatei zuweisen. Komm aber einfach nicht weiter. Bin leider noch nicht so lange in der Programmierung tätig. Kann mir jemand helfen?

    Das CL Programm sieht so aus:

    PGM
    CRTPF FILE (QTEMP/TEMP80) RCDLEN(80) MBR(*FILE)
    CPYF FROMFILE(QGPL/QTXTSRC) TOFILE(QTEMP/TEMP80) +
    FROMMBR(FTPDATEN) TOMBR(*FIRST) +
    MBROPT(*REPLACE) CRTFILE(*NO) +
    OUTFMT(*CHAR) FMTOPT(*CVTSRC)
    CPYF FROMFILE(QGPL/QTXTSRC) TOFILE(QTEMP/TEMP80) +
    FROMMBR(FTPOBJ) TOMBR(*FIRST) +
    MBROPT(*ADD) CRTFILE(*NO) OUTFMT(*CHAR) +
    FMTOPT(*CVTSRC)
    ************************************************** *******
    CPYF FROMFILE(QGPL/QTXTSRC) TOFILE(QTEMP/QTXTSRC) +
    FROMMBR(FTPDOUTJR) TOMBR(FTPDOUTJR) +
    MBROPT(*REPLACE) CRTFILE(*YES)
    CPYF FROMFILE(QGPL/QTXTSRC) TOFILE(QTEMP/QTXTSRC) +
    FROMMBR(FTPOOUTJR) TOMBR(FTPOOUTJR) +


    Wo ich den OVRDBF hinstecken soll weiß ich noch nicht so genau und wie ich es nun dynamisch programmieren kann.
    Muss ich dafür noch ein RPG / IDDOS Programm erstellen welches ich im CL aufrufe und darin ein %scan auf die TEMP80 mache,
    um da mit zu geben welche Sicherungsdatei verwendet werden soll hmmm...

    OVRDBF FILE(INPUT) TOFILE(QTEMP/QTXTSRC) + MBR(FTPDATEN) OVRDBF FILE(OUTPUT) TOFILE(QTEMP/QTXTSRC) + MBR(FTPOUT) FTP RMTSYS(TESTMASCHINE) DLTOVR FILE(INPUT OUTPUT)

    Hoffe das ihr mir weiter helfen könnt.

    LG Josie


  2. #2
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    So hab ich es mal gemacht.
    Hoffe das hilft dir etwas weiter.
    (Ist nicht perfekt aber fürn start sicher gut genug )
    Code:
    /Free                                                                     
                                                                              
       // Log erstellen                                                       
       Exec SQL Create Table qtemp/Ftp_Output                                 
                      (Feld1 Char (1024) Not Null With Default '');           
       Exec SQL Delete From Ftp_Output;                                       
                                                                              
       // Liste erstellen                                                     
       Exec SQL Create Table qtemp/Ftp_Liste                                  
                      (Feld1 Char (1024) Not Null With Default '',            
                       Feld2 Char (1024) Not Null With Default '',            
                       Status Char (2)   Not Null With Default 'OK');         
       Exec SQL Delete From Ftp_Liste;                                        
                                                                              
       // FTP-Befehle erstellen                                               
       Exec SQL Create Table qtemp/Ftp_Input                                  
                      (Feld1 Char (1024) Not Null With Default '');           
       Exec SQL Delete From Ftp_Input;                                        
                                                                              
       Exec SQL Insert Into Ftp_Input (Feld1) Values ('blalba');
      
    /End-Free
    Code:
                 DLTOVR     FILE(*ALL)
                 MONMSG     MSGID(CPF0000)
    
                 OVRDBF     FILE(INPUT) TOFILE(FTP_INPUT) MBR(*FIRST)
                 OVRDBF     FILE(OUTPUT) TOFILE(FTP_OUTPUT) MBR(*FIRST)
                 OVRDBF     FILE(LSOUTPUT) TOFILE(FTP_LISTE) MBR(*FIRST)
    
                 FTP        RMTSYS(&VSYSTEM) PORT(&VPRT) SECCNN(&VSSL)
    lg Andreas

  3. #3
    Registriert seit
    Nov 2003
    Beiträge
    2.307

  4. #4
    Registriert seit
    Jul 2012
    Beiträge
    2
    Danke für die schnelle Rückmeldung,

    werde mich mit dem SQL mal ein bisschen vertraut machen, hoffe es hilft mir weiter.
    Auf der IBM seite war ich schon, daher habe ich auch das Grundgerüst für das ftp, ist halt alles noch sehr neu für mich und dann hängt es noch an allen Ecken, aber danke schon mal =)

    LG Josie

  5. #5
    Registriert seit
    May 2007
    Beiträge
    295
    Das OpenSource-Api von Herrn Klement könnt hier auch verwendet werden in einem RPG...

    Ich für meinen Teil verwende es mittlerweile sehr gerne
    da man hier wirklich im RPG schrittweise alles steuern, manipulieren, etc. kann

    File Transfer Protocol API
    Greets
    Christian
    Anwendungsentwickler und ein bissal Systemoperator
    https://github.com/prsbrc
    LinkedIn

Similar Threads

  1. Java JDBC Sperre
    By Xanas in forum NEWSboard Java
    Antworten: 11
    Letzter Beitrag: 29-11-10, 12:45
  2. Programm auf "ferner" AS400 ausführen.
    By Souljumper in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 13-05-09, 19:50
  3. Programmbibliothek in einem Cobol oder CL Programm ermitteln
    By schatte in forum NEWSboard Programmierung
    Antworten: 19
    Letzter Beitrag: 10-01-07, 11:32
  4. Programm auf anderer AS400 starten
    By codierknecht in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 04-07-06, 11:52
  5. Programm in RPG / CL schreiben
    By notbad in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 05-04-05, 12:00

Berechtigungen

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