Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 176817
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T13:56:41+00:00 2026-05-11T13:56:41+00:00

I am a bit confused on how to create a symbolic variable in JCL

  • 0

I am a bit confused on how to create a symbolic variable in JCL for an assignment I am doing in my COBOL class.

For example, I am supposed to ‘Specify a symbolic parameter for the PARM option and specify TEST and APOST as the default.’

How do I designate the ‘PARM’ option to be a symbolic parameter?

EDIT: Forgive the oversight; it seems that I forgot to mention what OS I am running in. I am writing this JCL file in z/OS.

Thanks in advance!

EDIT:

@avisser:

So, what you’re saying is that I can just call it ‘&PARM=’TEST,APOST” and, if I wanted to change that parameter when I run this proc with another JCL statement, the parms listed can be changed from the calling JCL?

EDIT:

@avisser:

Yeah, sorry, I really need to work on being more specific… In my COBOL JCL, I am calling the COBOL compiler (IGYCRCTL), the Linkage Editor (HEWL) and a program fetch (EXEC PGM=).

EDIT:

Perhaps it would help to see what my output is. I really do appreciate all those who have tried to help so far.

Output:

—— JES2 JOB STATISTICS ——

       37 CARDS READ                                                                                                                     61 SYSOUT PRINT RECORDS                                                                                                            0 SYSOUT PUNCH RECORDS                                                                                                            3 SYSOUT SPOOL KBYTES                                                                                                          0.00 MINUTES EXECUTION TIME                                                                                                 

!! END OF JES SPOOL FILE !! 1 //KC03CEFA JOB ,’MATT R’,MSGCLASS=H,TYPRUN=SCAN JOB07731 //*
2 //STEP01 EXEC PGM=IGYCRCTL,&REGION=248K,
// &PARM=’TEST,APOST’
3 //STEPLIB DD DSN=IGY340.SIGYCOMP,DISP=SHR
/*
4 //SYSLIN DD &DSN=&&OBJSET,UNIT=DISK,SPACE=(TRK,(3,3)),
// &DISP=(NEW,PASS,DELETE)
5 //SYSPRINT DD SYSOUT=*
6 //SYSUT1 DD UNIT=DISK,SPACE=(CYL,(1,1))
7 //SYSUT2 DD UNIT=DISK,SPACE=(CYL,(1,1))
8 //SYSUT3 DD UNIT=DISK,SPACE=(CYL,(1,1))
9 //SYSUT4 DD UNIT=DISK,SPACE=(CYL,(1,1))
10 //SYSUT5 DD UNIT=DISK,SPACE=(CYL,(1,1))
11 //SYSUT6 DD UNIT=DISK,SPACE=(CYL,(1,1))
12 //SYSUT7 DD UNIT=DISK,SPACE=(CYL,(1,1))
//*
//*
13 //STEP02 EXEC PGM=HEWL,&COND=,&REAGION=2048K,
// &PARM=
14 //SYSLIB DD DSN=CEE.SCEELKED,DISP=SHR
15 //SYSLIN DD &DSN=&&OBJSET,&DISP=(OLD,DELETE)
16 //SYSLMOD DD DSN=&&TEMPLIB(PGM6),
// SPACE=(1024,(50,20,1)),UNIT=DISK,
// DISP=(NEW,CATLG,DELETE)
17 //SYSPRINT DD SYSOUT=*
18 //PRINTER DD SYSOUT=*
19 //SYSUT1 DD UNIT=DISK,SPACE=(TRK,(10,10))
//*
//*
20 //STEP01 EXEC PGM=PGM6,&PARM=TERMTHDACT(DUMP)
21 //STEPLIB DD DSN=&&TEMPLIB,DISP=SHR
22 //CEEDUMP
23 //SYSUDUMP
24 //PRINTER DD SYSOUT=*
25 //PRODUCTS DD DSN=KC02322.CSCI465.SP09(DATA1),DISP=SHR
26 //SYSIN DD *
!! END OF JES SPOOL FILE !! STMT NO. MESSAGE 2 IEFC630I UNIDENTIFIED KEYWORD &REGION 2 IEFC630I UNIDENTIFIED KEYWORD &PARM 4 IEFC630I UNIDENTIFIED KEYWORD &DSN 4 IEFC630I UNIDENTIFIED KEYWORD &DISP 13 IEFC630I UNIDENTIFIED KEYWORD &COND 13 IEFC630I UNIDENTIFIED KEYWORD &REAGION 13 IEFC630I UNIDENTIFIED KEYWORD &PARM 15 IEFC630I UNIDENTIFIED KEYWORD &DSN 15 IEFC630I UNIDENTIFIED KEYWORD &DISP 20 IEFC630I UNIDENTIFIED KEYWORD &PARM 22 IEFC605I UNIDENTIFIED OPERATION FIELD 23 IEFC605I UNIDENTIFIED OPERATION FIELD !! END OF JES SPOOL FILE !!

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. 2026-05-11T13:56:42+00:00Added an answer on May 11, 2026 at 1:56 pm

    symbolic parameters are names preceded by an ampersand. When used in a JCL statement, at runtime they get converted into the supplied value. One way of creating them (on z/OS) is using a

    // SET name = value

    declaration. If you use a PARM, you should design your program so that it can work with one. Perhaps the assignment is about how to do that (hint: linkage section). Or is JCL a part of your COBOL class?

    TEST and APOST look to me like compiler directives. I don’t know if you can specify them in your program, at my workplace we only supply them when calling the compiler.

    EDIT:

    Ok this is a bit unusual to me, as we tend to compile and run our programs in separate JCL streams. But anyway.

    Taking your second statement:

    2 //STEP01 EXEC PGM=IGYCRCTL,&REGION=248K,   // &PARM='TEST,APOST' 

    REGION and PARM are so-called positional parameters and they are keywords, not really meant to be presented as symbolic names, although you’re free to do so (this will explain the ‘UNIDENTIFIED KEYWORD’ messages).
    The common use – when applicable – is to provide symbolic names for the operands of such parameters. And obviously you have to define a value for them first, e.g:

      // SET OPTIONS='TEST,APOST'   //STEP01 EXEC PGM=IGYCRCTL,REGION=248K,   // PARM=&OPTIONS 
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I am a bit confused about socket programming in C. You create a socket,
I am bit confused about ADO.Net Data Services. Is it just meant for creating
I'm a bit confused here. Microsoft as far as I can tell claims that
I'm a bit confused that the argument to crypto functions is a string. Should
I am a bit confused why this code compiles. I leave out the necessary
I'm a bit confused from what I've heard Java doesn't do events. But I
I'm fairly new to the Zend Framework and MVC and I'm a bit confused
You guys were very helpful yesterday. I am still a bit confused here though.
Bit of an obscure one this. My setup is all running on my local
any bit of info will be helpful here. or does anybody else huge do

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.