On 11/09/2009 02:18 PM, Dibitu wrote:
> On 9 nov, 06:16, jcew...@acm.org (Joel C. Ewing) wrote:
...
>> The inclusion of the always-true "STEPNULL.RC= 0 AND" portion of the
>> statements is irrelevant as to whether the statement is acceptable.
>>   JC Ewing
>>
>> On 11/07/2009 08:28 AM, Birger Heede wrote:
>>
>>
>>
>>
>>
>>> You cannot use just any 'keyword' in the IF statement. See the JCL
>>> Referece manual for relation-expression keywords for the IF statement.
>>> z/OS 1.11 library is here:
>>> http://publib.boulder.ibm.com/infocenter/zos/v1r11/index.jsp
>>
>>> The example that works use valid return code values (0-4095) and
>>> therefore is seen as a value rather a symbol (I think).
>>
>>> Birger Heede
>>> IBM DK
>>
>>> Dibitu wrote:
>>>> Why this is OK
>>>> //SETV SET VERSION=8
>>>> //STEPNULL EXEC PGM=IEFBR14
>>>> //SYSPRINT DD  SYSOUT=*
>>>> //IF1 IF STEPNULL.RC= 0 AND &VERSION=7 THEN
>>>> //VERSION7 EXEC PGM=IEFBR14
>>>> //SYSPRINT DD  SYSOUT=*
>>>> //ENDIF1 ENDIF
>>>> //IF1 IF STEPNULL.RC= 0 AND &VERSION=8 THEN
>>>> //VERSION8 EXEC PGM=IEFBR14
>>>> //SYSPRINT DD  SYSOUT=*
>>>> //ENDIF1 ENDIF
>>>> //IF1 IF STEPNULL.RC= 0 AND &VERSION=9 THEN
>>>> //VERSION9 EXEC PGM=IEFBR14
>>>> //SYSPRINT DD  SYSOUT=*
>>>> //ENDIF1 ENDIF
>>
>>>> and this is JCL ERROR ?
>>
>>>> //SETV SET VERSION=B
>>>> //STEPNULL EXEC PGM=IEFBR14
>>>> //SYSPRINT DD  SYSOUT=*
>>>> //IF1 IF STEPNULL.RC= 0 AND &VERSION=A THEN
>>>> //VERSIONA EXEC PGM=IEFBR14
>>>> //SYSPRINT DD  SYSOUT=*
>>>> //ENDIF1 ENDIF
>>>> //IF1 IF STEPNULL.RC= 0 AND &VERSION=B THEN
>>>> //VERSIONB EXEC PGM=IEFBR14
>>>> //SYSPRINT DD  SYSOUT=*
>>>> //ENDIF1 ENDIF
>>>> //IF1 IF STEPNULL.RC= 0 AND &VERSION=C THEN
>>>> //VERSIONC EXEC PGM=IEFBR14
>>>> //SYSPRINT DD  SYSOUT=*
>>>> //ENDIF1 ENDIF
>>
>>>> STMT NO. MESSAGE
>>>>        5 IEFC013I ERROR IN IF STATEMENT: B NOT VALID
>>>>        9 IEFC013I ERROR IN IF STATEMENT: B NOT VALID
>>>>       13 IEFC013I ERROR IN IF STATEMENT: B NOT
>>>> VALID
>>
>> --
>> Joel C. Ewing, Fort Smith, AR        jremoveccapsew...@acm.org
...

>> - Mostrar texto de la cita -
> 
> Well, I need the STEPNULL step because if the JOB has ONLY this
> //SETV SET VERSION=8
> //IF1 IF  &VERSION=7 THEN
> //VERSION7 EXEC PGM=IEFBR14
> //SYSPRINT DD  SYSOUT=*
> //ENDIF1 ENDIF
> //IF1 IF  &VERSION=8 THEN
> //VERSION8 EXEC PGM=IEFBR14
> //SYSPRINT DD  SYSOUT=*
> //ENDIF1 ENDIF
> //IF1 IF  &VERSION=9 THEN
> //VERSION9 EXEC PGM=IEFBR14
> //SYSPRINT DD  SYSOUT=*
> //ENDIF1 ENDIF
> 
> I get STEP VERSION7 (and VERSION8) executed
> JOBNAME- --STEP-- -PSTEP-- CCODE
> IEFBR14  VERSION7              0
> IEFBR14  VERSION8              0
> IEFBR14  VERSION9          FLUSH

I didn't say you didn't need the STEPNULL step, only that testing its RC
in your IF statements was unnecessary.

You DO need the STEPNULL job step in this case, because the first step
of any job is unconditionally executed and cannot be skipped by
conditional logic. It seems like a petty restriction, but probably
related to the requirement that each job be guaranteed to have at least
one job step that is actually executed.

-- 
Joel C. Ewing, Fort Smith, AR        jremoveccapsew...@acm.org

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to