• The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
Menu
  • The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
  • Omitting Parameters in RPG Programs and Modules

    November 8, 2002 Timothy Prickett Morgan

    Hey, Ted:

    I have a program that can receive four parameters. The first one is mandatory, and the last three are optional. If I call the program and pass parameters 1, 2, and 4 to it, the %parms built-in function tells me that three parameters were passed. How does the program know which three it is getting? Thanks!

    — Doug

    You can’t skip a parameter. If you pass three parameters, they are parameters 1, 2, and 3; number 4 will be undefined.

    The only way to skip parameter 3 is to specify OPTIONS(*OMIT) in its D spec. The value *OMIT allows you to pass the special value *OMIT as a parameter value. OPTIONS(*OMIT) is only allowed with parameters that are passed by reference. That includes parameters with the CONST keyword, which are passed by read-only reference.

    You can use the *OMIT value along with *NOPASS, but to keep it simple; I do not include *NOPASS in the following example.

    Here is the RPG source code for RPG module OMITPARMEE (Omit Parameter Callee):

    D calledproc      pr                  extproc('OMITPARMEE') 
    D   p1                          10a   const                 
    D   p2                          12a   const                 
    D   p3                           6a   const options(*omit)  
    D   p4                           2a   const                 
                                                                
    D calledproc      pi                                        
    D   p1                          10a   const                 
    D   p2                          12a   const                 
    D   p3                           6a   const options(*omit)  
    D   p4                           2a   const                 
                                                                
    D somevalue       s              6                          
                                                                
    C                   if        %addr(p3) = *null             
    C                   eval      somevalue = *all'*'           
    C                   else                                    
    C                   eval      somevalue = p3                
    C                   endif  
    C                   return
    

    Notice that the third parameter has the OPTIONS(*OMIT) keyword. If the caller passes the special value *OMIT, the address of the parameter will be null. For that reason, the module checks for a null address and does not use the value of the third parameter if the address is null.

    Here is module OMITPARMER (Omit Parameter Caller):

    D calledproc      pr                  extproc('OMITPARMEE') 
    D   p1                          10a   const                 
    D   p2                          12a   const                 
    D   p3                           6a   const options(*omit)  
    D   p4                           2a   const                 
                                                                
     /free                                                      
         callp calledproc ('ABC': 'DEFG': 'HIJKLM': 'NO');      
         callp calledproc ('ABC': 'DEFG': *OMIT   : 'NO');      
         *inlr = *on;                                           
     /end-free                                                  
    

    Notice the *OMIT value in the second CALLP.

    — Ted

    Sponsored By
    inFORM DECISIONS

    ELIMINATE THE COSTS OF PRE-PRINTED FORMS, LABOR AND POSTAGE WITH
    inFORM Decisions iDocs™ ‘Suite’

    iSeries based e-Forms, e-Checks, e-Mail, e-FAX, and Document Retrieval from the Web are available as individual modules or as a complete e-Document processing ‘Suite’.

    Click to Download the Complete Suite or Individual Modules today
    www.inFORMDecisions.com

    or call (800) 858-5544

    Share this:

    • Reddit
    • Facebook
    • LinkedIn
    • Twitter
    • Email

    Tags: Tags: mgo_rc, Volume 2, Number 86 -- November 8, 2002

    Sponsored by
    Computer Keyes

    Fax Directly from your IBM i

    KeyesFax is a full function automated IBM i fax system. Spooled files are burst by fax number and auto transmitted with overlays.  It combines both a send and receive facsimile processing system with a complete image package.

    The fax software will edit, send, receive, display, print, and track fax documents or images using any standard IBM i without additional expensive hardware, software or subscriptions.

    Computer Keyes has been developing Software Solutions since 1978!

    www.computerkeyes.com

    Share this:

    • Reddit
    • Facebook
    • LinkedIn
    • Twitter
    • Email

    Use the Full-Screen Debugger with OPM Programs Reader Feedback and Insights: Modernizing RPG II Programs

    Leave a Reply Cancel reply

MGO Volume: 2 Issue: 86

This Issue Sponsored By

    Table of Contents

    • Reader Feedback and Insights: Overlooking the Obvious
    • Odds and Ends
    • Omitting Parameters in RPG Programs and Modules

    Content archive

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

    Recent Posts

    • Power Systems Grows Nicely In Q3, Looks To Grow For All 2025, Too
    • Beta Of MCP Server Opens Up IBM i For Agentic AI
    • Sundry IBM i And Power Stack Announcements For Your Consideration
    • Please Take The IBM i Marketplace Survey
    • IBM i PTF Guide, Volume 27, Number 43
    • IBM Pulls The Curtain Back A Smidge On Project Bob
    • IBM Just Killed Merlin. Here’s Why
    • Guru: Playing Sounds From An RPG Program
    • A Bit More Insight Into IBM’s “Spyre” AI Accelerator For Power
    • IBM i PTF Guide, Volume 27, Number 42

    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