• The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
Menu
  • The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
  • Optional Parameters and CL Procedures

    August 11, 2004 Hey, Ted

    In “Adding New Parameters to RPG Programs,” you stated that CL programs require that the exact number of expected parameters be passed to them. That’s not entirely true.

    If you use ILE CL (source type CLLE), you do not have to pass in the same number of parameters as expected. You can use the same technique you described in the RPG example. You would assign the parameter to the work field with CHGVAR, but monitor the assignment for message MCH3601 (“pointer not set for location referenced”). If that message is sent, you assign the default value to the work field.

    PGM        PARM(&OPTION_P &COPIES_P)
    
    DCL        VAR(&OPTION_P) TYPE(*CHAR) LEN(1)
    DCL        VAR(&COPIES_P) TYPE(*DEC) LEN(1)
    
    DCL        VAR(&OPTION) TYPE(*CHAR) LEN(1)
    DCL        VAR(&COPIES) TYPE(*DEC) LEN(1)
    
    CHGVAR     VAR(&OPTION) VALUE(&OPTION_P)
    MONMSG     MSGID(MCH3601) +
                 EXEC(CHGVAR VAR(&OPTION) VALUE(A))
    CHGVAR     VAR(&COPIES) VALUE(&COPIES_P)
    MONMSG     MSGID(MCH3601) +
                 EXEC(CHGVAR VAR(&COPIES) VALUE(1))
    

    Thanks for listening.

    –Doug

    Thanks for writing, Doug. And thanks to the other readers who corrected me as well. My comment applied only to OPM CL, which I am currently using. I haven’t done a formal study, but it seems that many iSeries shops use RPG IV along with OPM CL. One comment I’ve heard several times is that OPM supports the Retrieve CL Source (RTVCLSRC) command but ILE CL doesn’t. All I can say is that I have probably retrieved CL source code from a program object less than half a dozen times since 1988, when I first touched a System/38. Given a choice between being able to retrieve source code from the program object and being able to pass fewer than the number of defined parameters, I’d much rather have the latter ability. This seems to me an excellent reason to dump OPM CL, as many have dumped RPG III (A.K.A. RPG/400).

    Monitoring for MCH3601 has another purpose. You will need to monitor for MCH3601 if you write your own RTV-type commands. IBM‘s RTV commands, such as Retrieve Job Attributes (RTVJOBA) and Retrieve User Profile (RTVUSRPRF), can return a lot of different data, but require you to code only the parameters that interest you. If you write a CL program that processes an RTV-type command, you’ll need to monitor for MCH3601 for optional parameters.

     PGM        PARM(&OPTION &TEXT)
    
     DCL        VAR(&OPTION) TYPE(*CHAR) LEN(1)
     DCL        VAR(&TEXT) TYPE(*CHAR) LEN(50)
    
     CHGVAR     VAR(&OPTION) VALUE(whatever...)
     MONMSG     MSGID(MCH3601)
    
     CHGVAR     VAR(&TEXT) VALUE(whatever...)
     MONMSG     MSGID(MCH3601)
    

    –Ted

    Share this:

    • Share on Reddit (Opens in new window) Reddit
    • Share on Facebook (Opens in new window) Facebook
    • Share on LinkedIn (Opens in new window) LinkedIn
    • Share on X (Opens in new window) X
    • Email a link to a friend (Opens in new window) Email

    Tags:

    Sponsored by
    JAMS Software

    One Scheduler. IBM i, Windows, Linux, and More.

    IBM i teams trust JAMS to schedule and orchestrate jobs across every platform in their environment. Centralized visibility, cross-platform dependency management, and alerts that reach the right person before the business feels it.

    Fewer than 5% of IBM i shops run IBM i only. The rest are managing cross-platform dependencies — often without a clear picture of how they connect. JAMS draws that map, enforces those dependencies automatically, and gives your team a single place to monitor, manage, and recover when something goes wrong.

    If you are running hundreds of CL scripts and custom RPG processes, bring them as-is. JAMS runs them exactly as they do today — except now they are visible, monitored, and part of an orchestrated workflow instead of scattered across folders only one person knows about.

    No consumption-based pricing. No surprise bills when your workload spikes. You pay based on how many machines JAMS talks to — that’s it.

    Learn More → https://jamsscheduler.com/lp/ibm-i

    Share this:

    • Share on Reddit (Opens in new window) Reddit
    • Share on Facebook (Opens in new window) Facebook
    • Share on LinkedIn (Opens in new window) LinkedIn
    • Share on X (Opens in new window) X
    • Email a link to a friend (Opens in new window) Email

    Listing Spool Files Control Break Programs, Version 3

    One thought on “Optional Parameters and CL Procedures”

    • pankratz2013 says:
      August 13, 2022 at 10:19 am

      18 years later, this post shows up first in my search results. So congratulations on that.
      Looking into the CLLE documentation, the solution for optional CLLE parameters is the %parms() function.
      See https://www.ibm.com/docs/en/i/7.4?topic=procedure-parms-built-in-function

      Reply

    Leave a ReplyCancel reply

Volume 4, Number 27 -- August 11, 2004
THIS ISSUE
SPONSORED BY:

T.L. Ashford
WorksRight Software
Damon Technologies

Table of Contents

  • Listing Spool Files
  • Optional Parameters and CL Procedures
  • Control Break Programs, Version 3

Content archive

  • The Four Hundred
  • Four Hundred Stuff
  • Four Hundred Guru

Recent Posts

  • Oracle Dips A Toe Into IBM’s EBCDIC World
  • When Your Small IBM i Team Is Really A Team Of One
  • Guru: Putting Failure Handling In Its Place
  • Inside The Security Enhancements In ACS
  • IBM i PTF Guide, Volume 28, Number 28: A Crazy Number of Security Vulnerability Patches
  • IBM i PTF Guide, Volume 28, Number 29
  • Inside The Encryption Key Management Changes In IBM i 7.6
  • FalconStor Moved To The Blue Lagoon, And Is Poised For Growth Because Of It
  • Guru: Claude’s SQL Tip
  • Astera Makes Extracting Legacy Report Data an AI Specialty

Subscribe

To get news from IT Jungle sent to your inbox every week, subscribe to our newsletter.

Pages

  • About Us
  • Contact
  • Contributors
  • Four Hundred Monitor
  • IBM i PTF Guide
  • Media Kit
  • Subscribe

Search

Copyright © 2025 IT Jungle