Newsletters   Subscriptions  Forums  Store   Career  Media Kit  About Us  Contact  Search   Home 
fhg
Volume 5, Number 39 -- October 19, 2005

Admin Alert: How to Change OS/400 Command Default Parameters


by Joe Hertvik


A number of readers have recently written in and asked me how to change default parameters for OS/400 commands. While IBM does provide the Change Command Default command (CHGCMDDFT) for this purpose, there are a few wrinkles in the process that you need to understand to use CHGCMDDFT effectively.

Before you begin changing command parameters, it's always best to make a copy of each command that you want to change and only modify the copied command. This is a wise move for a number of reasons. First, you can retain IBM's original unaltered commands in case you make a mistake and want to reset the command back to its prior state. Second, if you put the changed command in a separate library, you can place that library higher in your user's library lists than IBM's QSYS command library (where most commands are kept) and your users will automatically use the changed command without having to think about it. Finally, if you place the altered command in a different non-IBM library, the changed command will remain intact after an i5/OS upgrade, giving you time to coordinate your changes with any command changes IBM may make in the new release.

Use the Create Duplicate Object command (CRTDUPOBJ) to make an alterable copy of the command in a different library. If you wanted to copy the Display Job command (DSPJOB) to the NEWCOMMAND library, for example, your CRTDUPOBJ command would look like this:

CRTDUPOBJ OBJ(DSPJOB) FROMLIB(*LIBL) OBJTYPE(*CMD) TOLIB(NEWCOMMAND)

Once the command is copied over, you can start modifying it to suit your needs. By default, the parameter to specify which information the command will display (OPTION) is set to *SELECT, which tells DSPJOB to show users a menu from which they can choose a job option to display. If you want to change the default for this parameter so that it automatically shows all job information when DSPJOB runs, you can change the parameter default to *ALL by running the following CHGCMDDFT statement.

CHGCMDDFT CMD(NEWCOMMAND/DSPJOB) NEWDFT('OPTION(*ALL)')

The New default parameter string parameter (NEWDFT) tells OS/400 to change the default parameter to *ALL. Once that happens, the next time that you run the DSPJOB command in library NEWCOMMAND, it will automatically display all information about your target job.

CHGCMDDFT is fairly straight-forward when you are changing single-value default parameters. It gets slightly more confusing when you want to change default values for parameters containing one or more list elements.

As an example, if you want to change the default parameters on the Create RPG Module command (CRTRPGMOD) so that it always uses QGPL/QRPGLESRC1 as its source file parameter (SRCFILE) and it always compiles the module into the RPGLEMOD library (the MODULE parameter), you could change CRTRPGMOD to use the following default parameters:

CHGCMDDFT CMD(NEWCOMMAND/CRTRPGMOD) NEWDFT('MODULE(RPGLEMOD/*N) SRCFILE(QGPL/QRPGLESRC1)')

When you enter and run the CRTRPGMOD command, it will give you the new defaults. Also notice that I used *N as one of the default name values in CRTRPGMOD's MODULE list parameter. When you specify *N as a default, it functions as a placeholder to tell i5/OS not to change the default for that particular element or value. *N can be used to retain default values in list parameters or it can be used to designate command parameters that do not have existing default values (such as a module name, which may change every time the command is run).

But the trickiest part about changing default command parameters occurs when you try to change a list parameter that has a single value, such as *ALL, in the first element of the list to a multi-valued list parameter such as a qualified object name. In IBM parlance, a single-value parameter is known as a SNGVAL, and there are a few bumps in the road on this one. Here's a recap of what IBM says about changing a SNGVAL in the first element of a list parameter.

First, for these parameters, the SNGVAL element can only be changed to another valid SNGVAL entry, if one exists. For example, the Message Queue list parameter (MSGQ) on the Create Device Description (Printer) command (CRTDEVPRT) has a SNGVAL default of *CTLD, which indicates that devices messages are sent to the message queue defined in the attached controller. If you attempt to change this parameter to indicate a specific message queue, complete with message queue name and qualifying library, by running a command like this:

CHGCMDDFT CMD(NEWCOMMAND/CRTDEVPRT) NEWDFT('MSGQ(QGPL/DEVICEQ)')

You will receive the following message:

CPD6266 -- Qualifier changed, but SNGVAL at higher level


What this appears to mean is that, since you can only replace a SNGVAL list parameter with another SNGVAL, IBM will store the qualifier part of the parameter change with the command, but the command will not automatically use the qualifier unless the message queue name (the first item in the list) is manually changed when the command is entered. So you would still need to manually put in your message queue name but, once you do, i5/OS will specify that the device should look in the QGPL library to find that message queue. In my testing, I have not found a way around this limitation.

As another example, IBM also provides a software technical document (click here to read it) that explains what happens when you try to change the Restart Options parameter (RESTART) on the Power Down System command (PWRDWNSYS) from its SNGVAL default of *NO to *YES with a Restart type of *FULL. This change will also not work as expected because of the SNGVAL problem, and IBM recommends working around the issue because there is no good solution to changing both PWRDWNSYS list parameter elements.

The second thing you need to be aware of is that a SNGVAL cannot be used as a new default value if the current default value is not a SNGVAL. The same limitation that prevents you from replacing a SNGVAL with a qualified list item works in reverse, as well.

The end result is that, yes, you can change the default parameters in many different i5/OS commands, but you have to be aware of the limitations.


RELATED RESOURCES

iSeries Information Center, CHGCMDDFT (Change Command Default) Command Description, IBM

IBM Software Technical Document, CHGCMDDFT of RESTART Parameter on PWRDWNSYS Does Not Work in V4R1/V4R2/V4R3, IBM

Sponsored By
DRV TECHNOLOGIES

Oct 19th Web Seminar: Distributing iSeries Reports
as PDF and Excel by email, efax, and efiling.

DRV Technologies is pleased to invite you to a new Web-based seminar
discussing our iSeries document and report management solutions that
will bring your green screens into the 21st Century.

On October 19th, we'll host a live Webinar about FormFlex iSeries forms software
that enables you to print forms and checks on standard HP-compatible
laser printers using plain cut sheet paper, and to automatically email, fax, and electronically file as PDF, based on variables and your business rules.

Finally, there's affordable forms software that lets you project the
professional image your company deserves without breaking the bank.

If you would like to attend either Webinar, just point your browser to
http://www.drvtech.com/registernow.htm
or call 866 378-3366 for more information.


Technical Editors: Howard Arner, Joe Hertvik, Ted Holt,
Shannon O'Donnell, Kevin Vandever
Contributing Technical Editors: Joel Cochran, Wayne O. Evans, Raymond Everhart,
Bruce Guetzkow, Marc Logemann, David Morris
Publisher and Advertising Director: Jenny Thomas
Advertising Sales Representative: Kim Reed
Contact the Editors: To contact anyone on the IT Jungle Team
Go to our contacts page and send us a message.


THIS ISSUE
SPONSORED BY:

ProData Computer Svcs
iTera
DRV Technologies


Four Hundred Guru

BACK ISSUES

TABLE OF
CONTENTS
Find the Length of a Character String in CL

Bugged by the Interactive Debugger

Admin Alert: How to Change OS/400 Command Default Parameters


The Four Hundred
The "P" Word

IBM Gives Rebates and Trade Ins to Push the i5 520 in Q4

Why i for the Casino Industry?

Stop Arguing About Cars and Start Managing Fleets

Four Hundred Stuff
SEA and RevSoft End Partnership for OS/400 Utilities

BCD Aims to Streamline Report Writing with Clover

Tango/04 Looks for Database Changes with New Tool

Web Services and SOA Isn't Just Hype--It's Real, Magic Says

Four Hundred Monitor


Copyright © 1996-2008 Guild Companies, Inc. All Rights Reserved.
Guild Companies, Inc. (formerly Midrange Server), 50 Park Terrace East, Suite 8F, New York, NY 10034
Privacy Statement