Page 1 of 1

INVALIDE COMMAND SYNTAXE

PostPosted: Mon Jul 02, 2018 8:45 pm
by samb01
Hello,

i'am running en rexx programme but i can't anderstand why i have this message :


    21 *-*  QUEUE '                   'FIC.I'        -'                      
       >L>    "                   "                                          
       >C>    "FIC.9038"                                                      
       >V>    "XDM.FIC01.DATASET"                      
       >O>    "                   XDM.FIC01.DATASET"    
       >L>    "        -"                                                    
       >O>    "                   XDM.FIC01.DATASET         -"      
    22 *-* END                                                                
     7 *-* DO I=1 TO DT.0                                                    
IKJ56621I INVALID COMMAND NAME SYNTAX                                        
IKJ56621I INVALID COMMAND NAME SYNTAX                                        
IKJ56621I INVALID COMMAND NAME SYNTAX                                        
IKJ56621I INVALID COMMAND NAME SYNTAX                                        

 

Re: INVALIDE COMMAND SYNTAXE

PostPosted: Mon Jul 02, 2018 10:08 pm
by willy jensen
Most likely because you do not have any PULL commands, or a command pulling from the stack.

Re: INVALIDE COMMAND SYNTAXE

PostPosted: Mon Jul 02, 2018 11:05 pm
by samb01
Hello, i have queue commands. That's not enought ?

Re: INVALIDE COMMAND SYNTAXE

PostPosted: Mon Jul 02, 2018 11:38 pm
by Jim Ruddy
Perhaps if you posted the REXX source it may help figure out what is going on.

Re: INVALIDE COMMAND SYNTAXE

PostPosted: Tue Jul 03, 2018 12:33 pm
by samb01
The main programme :


/* REXX */                                            
TRACE I                                              
"EXECIO * DISKR IN (STEM DT."                        
NUM=1                                                
SPACE = 0                                            
CALL NEWJCL NUM SPACE                                
DO I=1 TO DT.0                                        
     FIC.I = WORD(DT.I,1)                            
     SPACE.I = WORD(DT.I,7)                          
     SPACE = SPACE.I + SPACE                          
     IF SPACE > 83333                                
     THEN DO                                          
            SAY 'ON EST DANS LA BOUCLE'              
            SPACE = 0                                
            NUM = NUM + 1                            
QUEUE '                   ))                          
                              QUEUE ""                
            "EXECIO * DISKW OUT ("                    
            CALL NEWJCL NUM,SPACE      
          END                          
QUEUE '
                  'FIC.I'      
END                                    
EXIT;                                  

 


the called profgramme :


/* REXX */                                                        
TRACE I                                                          
PARSE ARG NUM SPACE                                              
NEWJCL:                                                          
STEP.1='//COOLJOB (S),'MOVE VSAM',NOTIFY=&SYSUID,REGION=7M,'
STEP.2='//     CLASS=O,MSGCLASS=X,MSGLEVEL=(1,1)'                
STEP.3='//STEP1  EXEC  PGM=ADRDSSU'                              
STEP.4='//SYSPRINT  DD  SYSOUT=*'                                
STEP.5='//OUT1  DD DSN=XXX.DATASETS','              
STEP.6='
//      DISP=(NEW,CATLG,),'                              
STEP.7='
//     UNIT=VTS2,LABEL=RETPD=400'                        
STEP.8='
//SYSIN    DD    *'                                      
STEP.9=' DUMP OUTDDNAME(OUT1) OPTIMIZE(3) FORCECP(0) TOL(ENQF) -'
STEP.10='      DATASET(INCL(                                    -'
DO K=1 TO 10                                                      
  QUEUE  STEP.K                                                  
  "EXECIO 1 DISKW OUT ("                                          
END                                                              
RETURN
 


and the error is :


       >C>    "FIC.9038"                                                  
       >V>    "X.FILE.DATASET"                
       >O>    "                   X.FILE.DATASET"
       >L>    "        -"                                                
       >O>    "                   X.FILE.DATASET        -"
    22 *-* END                                                            
     7 *-* DO I=1 TO DT.0                                                
    23 *-* EXIT                                                          
IKJ56621I INVALID COMMAND NAME SYNTAX                                    
IKJ56621I INVALID COMMAND NAME SYNTAX                                    
IKJ56621I INVALID COMMAND NAME SYNTAX                                    
IKJ56621I INVALID COMMAND NAME SYNTAX                                    
IKJ56621I INVALID COMMAND NAME SYNTAX                                    
IKJ56621I INVALID COMMAND NAME SYNTAX                                    
IKJ56621I INVALID COMMAND NAME SYNTAX            
...                        

 

Re: INVALIDE COMMAND SYNTAXE

PostPosted: Tue Jul 03, 2018 2:36 pm
by NicC
For a start you need to use double quotes when assigning strings to the step stem as some of those strings have single quotes as part of the data. You also have an extra quote when assigning to step.5. No point having syntax colouring if you are going to ignore it.

Re: INVALIDE COMMAND SYNTAXE

PostPosted: Tue Jul 03, 2018 3:40 pm
by willy jensen
As NicC says, start with fixing your quotes, then look at the logic.
Your program has a QUEUE after the "EXECIO * DISKW OUT ", which will cause problems like the one you are seeing. And I strongly recommend that you do "EXECIO" queued() " DISKW OUT ", plus a "delstack" at the beginning and the end of your program.

Re: INVALIDE COMMAND SYNTAXE

PostPosted: Tue Jul 03, 2018 6:10 pm
by expat
And why oh why are you building JCL like that ................. ISPF file tailoring is so much better and easier

and why not use the DFdss dataset list in a dataset ?

//SYSIN   DD *
 DUMP OUTDDNAME(OUT1) OPTIMIZE(3) FORCECP(0) TOL(ENQF) -'
      DATASET(INCL(                                    -'

//        DSN=whatever it is ,DISP=SHR
  ))
/*
 


If you explain what it is that you are trying to achieve, maybe we can suggest a better method