[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2007
    Beiträge
    70

    Smile Datei kopieren AS400 nach AS4001

    Hallo,

    wie lautete der Befehl wenn ich genau 1 Datei von einer AS400 auf eine andere AS400 kopieren möchte ?

    Danke für die Hilfe

  2. #2
    Registriert seit
    Sep 2005
    Beiträge
    425
    ich würd es mit FTP machen

    Wenn eine AS400 in China steht und es keine Verbindung zu der anderen gibt ist savobj auch ne Möglichkeit

    Oder ein ddm-File verwenden und cpyf nehmen

    oder ...

    Der ILEMax
    (mitten im Sommerloch)

  3. #3
    Registriert seit
    Jan 2007
    Beiträge
    70
    Hallo,

    danke für die Info - die Maschinen sind verbunden.

  4. #4
    Registriert seit
    Sep 2005
    Beiträge
    425
    na dann
    crtddmf und cpyf

    oder 'schiebe-modus'
    fpt 'i.p.der.as400'
    user
    passwort
    bin
    namefmt 1
    put /qsys.lib/deinelib.lib/datei.file
    /qsys.lib/deineziellib.lib/datei.file


    bzw. 'holemodus'
    get stat put, und die pfade natürlich umdrehen

    der ILEMax

  5. #5
    Registriert seit
    Jan 2001
    Beiträge
    850
    Hallo,


    vielleicht geht ja auch der SNDNETF Command

    Gruß
    Michael

  6. #6
    Registriert seit
    Jan 2007
    Beiträge
    70
    Frage zu dem FTP Befehl

    Bis zum bin ging 's ja

    1. namefmt 1 --> ungültiger Befehl

  7. #7
    Registriert seit
    Sep 2005
    Beiträge
    425
    Dann ist wohl die AS400 defekt, bei uns geht das 100 fach am Tag.

    ob es da eine 'einstellschraube' gibt kann ich nicht sagen

    der ILEMax

  8. #8
    Registriert seit
    Jan 2007
    Beiträge
    70
    Ok hat doch geklappt. Ich dachte ich müsste den FTP auf einer PC-DOS Box ausführen.

    Danke dir

  9. #9
    Registriert seit
    Sep 2001
    Beiträge
    96

    Thumbs up wer kennt noch diese IBM-API => PGM(QY2FTML)

    es gibt auch noch diese Möglichkeit:

    Command (*CMD) erstellen, zB FTS
    Code:
                CMD        PROMPT('File Transfer Support')                   
                                                                             
                PARM       KWD(FROMFILE) TYPE(FRF) +                         
                             MIN(1) PROMPT('von Datei')                      
    FRF:        QUAL       TYPE(*NAME) LEN(10) MIN(1)                        
                QUAL       TYPE(*NAME) LEN(10) EXPR(*YES) +                  
                             DFT(*LIBL) SPCVAL((*LIBL)) PROMPT('Bibliothek') 
                                                                             
                PARM       KWD(TOFILE) TYPE(TOF) +                           
                             MIN(1) PROMPT('nach Datei')                     
    TOF:        QUAL       TYPE(*NAME) LEN(10) MIN(1)                        
                QUAL       TYPE(*NAME) LEN(10) EXPR(*YES) +                  
                             DFT(*LIBL) SPCVAL((*LIBL)) PROMPT('Bibliothek') 
                                                                             
                PARM       KWD(RMTLOCNAM) TYPE(*NAME) LEN(8) MIN(1) +        
                             EXPR(*YES) PROMPT('ferner Standort System')     
                                                                             
                PARM       KWD(PASSWORD) TYPE(*NAME) LEN(10) MIN(1) +        
                             EXPR(*YES) DSPINPUT(*NO) PROMPT('Kennwort +     
                             für fernen Standort')                           
                                                                                 
                 PARM       KWD(FROMMBR) TYPE(*NAME) LEN(10) +                   
                              DFT(*FROMFILE) SPCVAL((*FROMFILE)) +               
                              PROMPT('von Teildatei')                            
                                                                                 
                 PARM       KWD(TOMBR) TYPE(*NAME) LEN(10) +                     
                              DFT(*TOFILE) SPCVAL((*TOFILE)) +                   
                              PROMPT('nach Teildatei')                           
                                                                                 
                 PARM       KWD(MBROPT) TYPE(*CHAR) LEN(1) RSTD(*YES) +          
                              DFT(N) SPCVAL((N N) (Y Y)) MIN(0) +                
                              ALWUNPRT(*NO) ALWVAR(*NO) FULL(*YES) +             
                              EXPR(*YES) PROMPT('nach Teildatei ersetzen (Y/N)') 
                                                                                 
                 PARM       KWD(OPTION) TYPE(*CHAR) LEN(1) RSTD(*YES) +          
                              DFT(S) SPCVAL((S S) (R R)) MIN(0) +                
                              ALWUNPRT(*NO) ALWVAR(*NO) FULL(*YES) +             
                              EXPR(*YES) PROMPT('Senden = S   / +                
                              Empfangen = R')
    dann ein CL-Programm erstellen (*PGM)
    Code:
    PGM        PARM(&FROMFILEF &TOFILEF &RMTLOCNAM &PASSWORD +
                 &FROMMBR &TOMBR &MBROPT +                    
                 &OPTION)                                     
                                                              
    DCL        VAR(&OPTION)    TYPE(*CHAR) LEN(1)             
    DCL        VAR(&MBROPT)    TYPE(*CHAR) LEN(1)             
    DCL        VAR(&FROMFILEF) TYPE(*CHAR) LEN(20)            
    DCL        VAR(&FROMFILE)  TYPE(*CHAR) LEN(10)            
    DCL        VAR(&FROMLIB)   TYPE(*CHAR) LEN(10)            
    DCL        VAR(&FROMMBR)   TYPE(*CHAR) LEN(10)            
    DCL        VAR(&TOFILEF)   TYPE(*CHAR) LEN(20)            
    DCL        VAR(&TOFILE)    TYPE(*CHAR) LEN(10)            
    DCL        VAR(&TOLIB)     TYPE(*CHAR) LEN(10)            
    DCL        VAR(&TOMBR)     TYPE(*CHAR) LEN(10)            
    DCL        VAR(&TOMBR)     TYPE(*CHAR) LEN(10)             
    DCL        VAR(&RMTLOCNAM) TYPE(*CHAR) LEN(10)             
    DCL        VAR(&PASSWORD)  TYPE(*CHAR) LEN(10)             
    DCL        VAR(&RC)        TYPE(*CHAR) LEN(1)              
    DCL        VAR(&MSGNUM)    TYPE(*CHAR) LEN(8)              
    DCL        VAR(&TYP)       TYPE(*CHAR) LEN(6)              
    DCL        VAR(&TODAT)     TYPE(*CHAR) LEN(6)              
                                                               
    DCL        &ERRORSW *LGL                     /* Std err */ 
    DCL        &MSGID *CHAR LEN(7)               /* Std err */ 
    DCL        &MSGDTA *CHAR LEN(100)            /* Std err */ 
    DCL        &MSGF *CHAR LEN(10)               /* Std err */ 
    DCL        &MSGFLIB *CHAR LEN(10)            /* Std err */ 
    MONMSG     MSGID(CPF0000) EXEC(GOTO STDERR1) /* Std err */ 
                                                               
    CHGVAR     VAR(&FROMFILE) VALUE(%SST(&FROMFILEF 1 10))     
    CHGVAR     VAR(&FROMLIB)  VALUE(%SST(&FROMFILEF 11 10))    
    CHGVAR     VAR(&TOFILE)   VALUE(%SST(&TOFILEF 1 10))       
    CHGVAR     VAR(&TOLIB)    VALUE(%SST(&TOFILEF 11 10))      
                                                                 
    IF         COND(&FROMMBR *EQ '*FROMFILE') THEN(CHGVAR +      
                 VAR(&FROMMBR) VALUE(&FROMFILE))                 
    IF         COND(&TOMBR *EQ '*TOFILE') THEN(CHGVAR +          
                 VAR(&TOMBR) VALUE(&TOFILE))                     
                                                                 
    SNDPGMMSG  MSGID(CPF9898) MSGF(QCPFMSG) +                    
                 MSGDTA('Dateiübertragung wird gestartet') +     
                 TOPGMQ(*EXT) MSGTYPE(*STATUS)                   
                                                                 
    CALL       PGM(QY2FTML) PARM(&OPTION &FROMLIB &FROMFILE +    
                 &FROMMBR &TYP &TOLIB &TOFILE &TOMBR &TODAT +    
                 &MBROPT &RMTLOCNAM &PASSWORD &RC &MSGNUM)       
                                                                 
    IF         COND((&RC *NE '0') *OR (&MSGNUM *NE ' ')) THEN(DO)
      SNDPGMMSG  MSGID(CPF9898) MSGF(QCPFMSG) +                  
                 MSGDTA('Dateiübertragung abnormal beendet +     
                 - Status ' !! &RC !! ' - MSG-Nr ' !! +          
                 &MSGNUM) TOPGMQ(*EXT)                           
    ENDDO                                                        
    
                ENDDO                                                      
                                                                           
                                                                           
    ENDE:                                                                  
                RETURN                                                     
                                                                           
    STDERR1:               /* Standard error handling routine */           
                IF         &ERRORSW SNDPGMMSG MSGID(CPF9999) +             
                             MSGF(QCPFMSG) MSGTYPE(*ESCAPE) /* Func chk */ 
                CHGVAR     &ERRORSW '1' /* Set to fail ir error occurs */  
    STDERR2:    RCVMSG     MSGTYPE(*DIAG) MSGDTA(&MSGDTA) MSGID(&MSGID) +  
                             MSGF(&MSGF) MSGFLIB(&MSGFLIB)                 
                IF         (&MSGID *EQ '       ') GOTO STDERR3             
                SNDPGMMSG  MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) +            
                             MSGDTA(&MSGDTA) MSGTYPE(*DIAG)                
                GOTO       STDERR2 /* Loop back for addl diagnostics */    
    STDERR3:    RCVMSG     MSGTYPE(*EXCP) MSGDTA(&MSGDTA) MSGID(&MSGID) +  
                             MSGF(&MSGF) MSGFLIB(&MSGFLIB)                 
                SNDPGMMSG  MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) +            
                             MSGDTA(&MSGDTA) MSGTYPE(*ESCAPE)              
                  MSGDTA(&MSGDTA) MSGTYPE(*ESCAPE) 
                                                   
     ENDPGM
    zuerst das CLP compilieren ...........

    CRTCLPGM PGM(QGPL/FTS)
    SRCFILE(QGPL/QCLSRC)
    SRCMBR(FTS)


    dann den CMD compilieren ............


    CRTCMD CMD(QGPL/FTS)
    PGM(QGPL/FTS)
    SRCFILE(QGPL/QCMDSRC)
    ALLOW(*INTERACT *IPGM)



    und fertig ist ein weitere Datei-Übertragungsmöglichkeit

    FTS ..... + BT04


    Code:
                                                                 
    von Datei  . . . . . . . . . . . FROMFILE                    
      Bibliothek . . . . . . . . . .                  *LIBL      
    nach Datei . . . . . . . . . . . TOFILE                      
      Bibliothek . . . . . . . . . .                  *LIBL      
    ferner Standort System . . . . . RMTLOCNAM                   
    Kennwort für fernen Standort . . PASSWORD                    
    von Teildatei  . . . . . . . . . FROMMBR        *FROMFILE    
    nach Teildatei . . . . . . . . . TOMBR          *TOFILE      
    nach Teildatei ersetzen (Y/N)  . MBROPT         N            
    Senden = S   / Empfangen = R . . OPTION         S


    2 Vorteile:
    im Gegensatz zu SNDNETF muss auf dem Empfangssystem die Datei nicht existieren, sie wird mit o.g. CMD/CLP angelegt.
    und
    im Gegensatz zu SNDNETF muss nicht QSNADS konfiguriert sein,
    d.h. SBS QSNADS braucht nicht gestartet zu sein !

    und vor allem auf die richtige Richtung (senden/empfangen) achten !!!!

    (ohne Gewähr)


    viel Spaß beim testen.

Similar Threads

  1. Java JDBC Sperre
    By Xanas in forum NEWSboard Java
    Antworten: 11
    Letzter Beitrag: 29-11-10, 12:45
  2. Textdatei per FTP in AS400 Datei
    By hs in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 25-10-05, 08:33
  3. Datei in IFS kopieren
    By coolie in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 24-01-05, 12:14
  4. Datei kopieren
    By Thimi in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 28-05-04, 11:20
  5. Gelockte Datei kopieren!
    By H.V in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 26-05-04, 10:47

Berechtigungen

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