Hallo,

habe mir vor einiger Zeit ein CL geschrieben, was mit QSHELL von IFS in die Datei EDIMP01P ausliest.

Das Programm hat toll funktioniert.

Jetzt habe ich eine ähnliche Anforderung und habe mir das Programm kopiert, das PF ausgetaucht mit EDIHLDFP(statt EDIMP01P) und den Ordnerpfad geändert.

Bekomme aber die Fehlermeldung QSH005 Status 2
Code:
cd /EDI/EINK/DE/OUT/TST1/ && ls *.csv > /QSYS.LIB/T_DTA.LIB/EDIHLDFP.FILE/EDIHLDFP.MBR                                       
qsh: 001-0055 Fehler beim Erstellen der Datei /QSYS.LIB/T_DTA.LIB/EDIHLDFP.FILE/EDIHLDFP.MBR gefunden. 
Operation nicht unterstützt.
Die Datei hat auch alle Berechtigungen.

Sobald ich die Datei EDIHLDFP mit der alten austausche(EDIMP01P), funktioniert es wieder.

Kann mir jemand einen Tip geben, was ich noch prüfen kann, bzw wo ich mich am besten über dieses Thema einlesen kann?

lg


Code:
 
/******************************************************************************/                    
/*                                                                            */                    
/*   PROGRAM NAME   : EDIHLDFIC                                               */                    
/*                                                                            */                    
/*   DESCRIPTION    : IMPORT CSV FOR EINKAUF                                  */                    
/*                                                                            */                    
/*   CREATION       :                                                         */                    
/*                                                                            */                    
/******************************************************************************/                    
             PGM                                                                                    
                                                                                                   
             DCL        VAR(&LOOP) TYPE(*LGL) VALUE('1')                                            
             DCL        VAR(&NBRREC) TYPE(*DEC) LEN(10 0)                                           
             DCL        VAR(&CMD) TYPE(*CHAR) LEN(500)                                              
             DCL        VAR(&STMFIL) TYPE(*CHAR) LEN(512)                                           
             DCL        VAR(&MOV) TYPE(*CHAR) LEN(512)                                              
             DCL        VAR(&IFSPATH) TYPE(*CHAR) LEN(22) +                                         
                          VALUE('/EDI/EINK/DE/OUT/TST1/')                                           
             DCL        VAR(&TIMESTMP) TYPE(*CHAR) LEN(20)                                          
             DCL        VAR(&PSTR) TYPE(*CHAR) LEN(512)                                             
                                                                                                   
             DCL        VAR(&STR) TYPE(*CHAR) LEN(513)                                              
             DCL        VAR(&SRCH) TYPE(*CHAR) LEN(4)                                               
             DCL        VAR(&X00) TYPE(*CHAR) LEN(1) VALUE(X'00')                                   
                                                                                                    
             DCL        VAR(&POS) TYPE(*INT) LEN(4)                                                 
             DCL        VAR(&LOWER) TYPE(*CHAR) LEN(512)                                            
             DCL        VAR(&UPPER) TYPE(*CHAR) LEN(512)                                            
                        /* Uppercase based on job default CCSID */                                  
             DCL        VAR(&REQUEST) TYPE(*CHAR) LEN(22) +                                         
                          VALUE(X'00000001000000000000000000000000000+                              
                          000000000')                                                               
                                                                                                   
             DCL        VAR(&LENGTH) TYPE(*INT) LEN(4) VALUE(512)                                   
             DCL        VAR(&ERRCODE) TYPE(*INT) LEN(4) VALUE(0)                                    
             DCL        VAR(&USER) TYPE(*CHAR) LEN(10)                                              
                                                                                                   
             DCL        VAR(&MSGID) TYPE(*CHAR) LEN(7)                                              
             DCL        VAR(&MSGDTA) TYPE(*CHAR) LEN(256)                                           
             DCL        VAR(&RESULT) TYPE(*CHAR) LEN(4)                                             
             DCL        VAR(&STATUS) TYPE(*DEC) LEN(10 0)                                           
             DCL        VAR(&SIGNAL) TYPE(*DEC) LEN(10 0)                                           
             DCL        VAR(&CHARSTAT) TYPE(*CHAR) LEN(10)                                          
             DCL        VAR(&CHARSIG) TYPE(*CHAR) LEN(10)                                           
                                                                                                    
             DCLF       FILE(EDIHLDFP)                                                              
                                                                                                   
             /*========================================*/                                           
             /* MAIN                                   */                                           
             /*========================================*/                                           
             RTVJOBA    USER(&USER)                                                                 
             CHGVAR     VAR(&SRCH) VALUE('.CSV' *CAT &X00)                                          
                                                                                                    
                                                                                                   
             /* CREATE A FILE TO PUT LIST IN.  NOTE THAT THIS CANNOT BE +                           
                IN QTEMP, SINCE QSHELL CANNOT ACCESS QTEMP              */                          
             CHKOBJ     OBJ(T_DTA/EDIHLDFP) OBJTYPE(*FILE)                                      
             MONMSG     MSGID(CPF9801) EXEC(DO)                                                     
             CRTPF      FILE(T_DTA/EDIHLDFP) RCDLEN(512)                                        
             ENDDO                                                                                  
                                                                                                   
             /*  LIST ALL FILES FROM IFS IN THE EDIHLDFP FILE */                                    
             CLRPFM     FILE(T_DTA/EDIHLDFP)                                                    
                                                                                                   
             RMVENVVAR  ENVVAR(QIBM_QSH_CMD_OUTPUT)                                                 
             MONMSG     MSGID(CPFA981) /* ENVVAR DOES NOT EXIST */                                  
                                                                                                    
             RMVENVVAR  ENVVAR(QIBM_QSH_CMD_ESCAPE_MSG)                                             
             MONMSG     MSGID(CPFA981) /* ENVVAR DOES NOT EXIST */                                  
             /* SET THE COMMAND OUTPUT TO NONE, AND TELL QSH TO ISSUE +                             
               ESCAPE MESSAGES FOR ERRORS.                               */                         
                                                                                                    
             ADDENVVAR  ENVVAR(QIBM_QSH_CMD_OUTPUT) VALUE(NONE)                                     
             ADDENVVAR  ENVVAR(QIBM_QSH_CMD_ESCAPE_MSG) VALUE(Y)                                    
                                                                                                    
             /* EXECUTE QSHELL COMMAND */                                                           
             CHGVAR     VAR(&CMD) VALUE('cd' *BCAT &IFSPATH *BCAT +                                 
                          '&&' *BCAT 'ls *.csv >' *BCAT +                                           
                          '/QSYS.LIB/T_DTA.LIB/EDIHLDFP.FILE/EDIH+                              
                          LDFP.MBR')                                                                
             STRQSH     CMD(&CMD)                                                                   
                                                                                                    
             /* HANDLE ERRORS. */                                                                   
             MONMSG     MSGID(QSH0005 QSH0006 QSH0007) EXEC(DO)                                     
                                                                                                    
             RCVMSG     MSGTYPE(*LAST) RMV(*YES) MSGDTA(&MSGDTA) +                                  
                          MSGID(&MSGID)                                                             
             /* CPF0005 - QSHELL COMMAND ENDED "NORMALLY."           +                              
                                                                          +                         
                       NOTE:  THIS DOES *NOT* MEAN THAT THE COMMAND       +                         
                              SUCCEEDED, BUT RATHER THAT THE COMMAND      +                         
                              WAS NOT ENDED BY ANOTHER PROGRAM OR BY SOME +                         
                              KIND OF FAILURE. (THIS IS THE MOST COMMON   +                         
                              MESSAGE)                                   */                         
                                                                                                    
             IF         COND(&MSGID *EQ 'QSH0005') THEN(DO)                                         
                        CHGVAR VAR(&RESULT) VALUE(%SST(&MSGDTA 1 4))                                
                        CHGVAR VAR(&STATUS) VALUE(%BIN(&RESULT))                                    
                        CHGVAR VAR(&SIGNAL) VALUE(0)                                                
             ENDDO                                                                                  
                                                                                                   
             /* QSH0006 - QSHELL COMMAND ENDED WHEN IT RECEIVED A SIGNAL. */                        
             IF         COND(&MSGID *EQ 'QSH0006') THEN(DO)                                         
                        CHGVAR VAR(&RESULT) VALUE(%SST(&MSGDTA 1 4))                                
                        CHGVAR VAR(&SIGNAL) VALUE(%BIN(&RESULT))                                    
                        CHGVAR VAR(&STATUS) VALUE(-1)                                               
             ENDDO                                                                                  
                                                                                                   
                       /* QSH0007 - QSHELL COMMAND ENDED DUE TO AN EXCEPTION,  +                    
                            FOR EXAMPLE THE PROGRAM CRASHED WITH A CPF MSG.   */                    
                                                                                                   
             IF         COND(&MSGID *EQ 'QSH0007') THEN(DO)                                         
             CHGVAR     VAR(&STATUS) VALUE(-1)                                                      
             CHGVAR     VAR(&SIGNAL) VALUE(-1)                                                      
             ENDDO                                                                                  
             ENDDO                                                                                  
                                                                                                    
             /* WHEN &STATUS IS NOT ZERO, WE KNOW OUR COMMAND FAILED.    +                          
                       HERE WE CAN TRY TO HANDLE THE ERROR IF WE LIKE           +                   
                                                                                +                   
                       THE POSSIBLE VALUES ARE DIFFERENT FOR EACH QSHELL        +                   
                       COMMAND, SO FOR THE SAKE OF DEMONSTRATION, I'LL JUST     +                   
                       SEND AN ESCAPE MESSAGE.                                 */                   
                                                                                                   
             IF         COND(&STATUS *NE 0) THEN(DO)                                                
             CHGVAR     VAR(&CHARSTAT) VALUE(&STATUS)                                               
             CHGVAR     VAR(&CHARSIG) VALUE(&SIGNAL)                                                
             SNDPGMMSG  MSGID(CPF9897) MSGF(QCPFMSG) MSGDTA('QShell +                               
                          command failed with status ' *CAT +                                       
                          &CHARSTAT *CAT ' and signal ' *CAT &CHARSIG)                              
             ENDDO                                                                                  
                                                                                                    
             /* RESTORE DEFAULT BEHAVIOR */                                                         
             CHGENVVAR  ENVVAR(QIBM_QSH_CMD_OUTPUT) VALUE(NONE)                                     
             CHGENVVAR  ENVVAR(QIBM_QSH_CMD_ESCAPE_MSG) VALUE(Y)                                    
                                                                                                   
             /* READ FILENAMES WHAT ARE LISTED  */                                                  
             DOWHILE COND(&LOOP)                                                                    
             RCVF                                                                                   
             MONMSG     MSGID(CPF0864) EXEC(LEAVE)                                                  
               :                                                                                     
               :
             ENDDO