05
Sat, Oct
2 New Articles

Getting the Most Out of PDM

General
Typography
  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times

There's more to PDM than meets the eye.

Brief: You probably use PDM every day and take it more or less for granted. In this article you'll learn about some lesser-known features of the product that could prove very useful to you. For the uninitiated reader, the accompanying sidebar briefly touches upon the basics.

The AS/400 is often described as an advanced programmer's machine. IBM provides us with a whole toolbox full of utilities which increase programmer productivity on this platform. Managing these tools is made easier with IBM's Programming Development Manager (PDM). Just as a tool cabinet can organize and arrange tools to make a mechanic work more efficiently, PDM can help make a programmer work more efficiently with programming tools and utilities. With the features and shortcuts I'll be discussing, you can customize PDM for your programming environment and make your job easier and faster.

Quick Access: The WRKxxxPDM Commands

The Start PDM (STRPDM) command presents a menu that you already know by heart, having seen it half a million times. But, you don't

have to start PDM with STRPDM. Use one of the WRKxxxPDM commands instead! If you want to work with libraries, use WRKLIBPDM; to work with objects, use WRKOBJ-PDM; to work with members, use WRKMBRPDM. They save you time and they give you flexible selection capabilities.

The WRKxxxPDM commands have several optional parameters to let you select the items you want to work with. For example, the WRKLIBPDM command has one parameter, LIB, which lets you select what libraries you want to work with. Among the valid values, there's one that stands out for its usefulness.

More Powerful Generic Names

*Generic* is presented as a valid value. Contrary to most OS/400 commands which accept generic names with an asterisk only at the right end, all three WRKxxxPDM commands accept asterisks at either (or both) end(s) of the generic name-or even in the middle of the name! Allow me to give you examples to clarify this concept. In these examples I'll illustrate the WRKLIBPDM command, but all WRKxxxPDM commands have the same functionality.

WRKLIBPDM LIB(PROD*) uses the kind of generic name you already know. It lists all libraries that have names beginning in PROD, such as PRODFILE, PRODPGM and PROD50.

WRKLIBPDM LIB(*AB*) lists all libraries that have names with AB somewhere in the middle of the name such as ABNER, CABLE and FAB.

WRKLIBPDM LIB(*MST) lists all libraries that have names ending in MST (CUSTMST, VENDMST and PRDMST).

WRKLIBPDM LIB(C*D) lists all libraries that have names beginning in C and ending in D, with any characters in between-for example, CLOUD and CLONED.

Starting the List at Any Point

The sample in 1 shows a list of objects presented when I used the WRKOBJPDM LIB(UTILITY) command. Notice the list begins with the letter A. By default, WRKxxxPDM commands present lists in alphabetical order. If you want the list to begin on the letter K, all you need to do is move the cursor up to the "Position to" input field, key in a letter K and press Enter; PDM will reposition the list and show the objects that have a name beginning with K or with a character that is higher than K in the collating sequence (L, M, and so on).

The sample in Figure 1 shows a list of objects presented when I used the WRKOBJPDM LIB(UTILITY) command. Notice the list begins with the letter A. By default, WRKxxxPDM commands present lists in alphabetical order. If you want the list to begin on the letter K, all you need to do is move the cursor up to the "Position to" input field, key in a letter K and press Enter; PDM will reposition the list and show the objects that have a name beginning with K or with a character that is higher than K in the collating sequence (L, M, and so on).

If the library is large, I usually select *ALL (the default) items in the WRKxxxPDM command and then reposition the list because I can avoid restarting PDM this way. Of course both ways are valid; the method you choose to use may also depend on how your libraries are organized.

POWERFUL SELECTION AND PRESENTATION

All three list types support F11 (display names and types or display text), F17 (subset) and F18 (change defaults) to control how the lists are presented by PDM. WRKMBRPDM also allows F14 (display date) and F15 (sort date or sort name) to further modify the display.

Removing Text Description

By default, PDM displays the text description of the items it presents on the screen. This text is useful because it helps identify the items; but if you know the items by name, you may prefer to press F11 to remove the text, thus making room for another column of names (and option input fields) and reducing the amount of paging you need to do.

More Selection Capabilities

F17 lets you extract some items from the list. Even if you narrowed down the list by selecting some special parameter values in the WRK-xxxPDM command, F17 can help you narrow your focus even further. For example, F17 in WRKMBRPDM allows you to select members by date of last maintenance (by entering a beginning and ending date), or to search for a character string within the text description. PDM shows the message "This is a subsetted list" when it displays the list of items. F17 saves you time by reducing the number of items you have to browse through, but it increases the time PDM needs to display the list of items.

For the Experts: Full-Screen Mode!

F18 (change defaults) lets you select between full-screen mode and normal mode. In the full-screen mode, PDM removes the lists of option numbers and function keys available, making room for more items. You should consider changing your default setting to full screen as soon as you become familiar with the option numbers and function keys.

Protect Member Type and Text

F18 also lets you enable or disable input for the member type and text. Normally, PDM provides input fields for the option number, type and text description. You can protect the member type and member description fields from accidental erasure (or change) by answering N (no) to the question "Change type and text" presented by F18. I'll be discussing various other features of F18 throughout the article.

Display or Sort Member Dates

WRKMBRPDM has two other function keys you can use to change the appearance of the list of members. F14 toggles between the member type and the member date. F15 sorts the member list by member name or last change date. This is a great feature when you want to determine what source members have been modified recently.

USER-DEFINED PDM OPTIONS

As if the numeric options provided by IBM weren't enough, PDM allows you to define your own. The difference between IBM options and user options is that only IBM options can be strictly numeric. That's hardly an inconvenience; as a matter of fact, it's probably better to use letters since they can be given a meaning. IBM's options are listed in 2.

As if the numeric options provided by IBM weren't enough, PDM allows you to define your own. The difference between IBM options and user options is that only IBM options can be strictly numeric. That's hardly an inconvenience; as a matter of fact, it's probably better to use letters since they can be given a meaning. IBM's options are listed in Figure 2.

Your options are stored in a physical file, QGPL/QAUOOPT (got that?). This file already exists so you don't have to create it yourself. If you happen to delete it by accident, enter the DDS shown in 3 and compile it into QGPL.

Your options are stored in a physical file, QGPL/QAUOOPT (got that?). This file already exists so you don't have to create it yourself. If you happen to delete it by accident, enter the DDS shown in Figure 3 and compile it into QGPL.

Getting Ready to Create Them

The very first thing you should do before creating any custom PDM options is to create a duplicate of QGPL/QAUOOPT in one of your libraries (giving it any name you want). You can even create many copies of QAUOOPT, giving a different file to each programmer; this way, each programmer can customize PDM as he or she sees fit. For instance, one programmer could create an option called EC which performs an edit and a compile, while a second programmer designs his own EC option to perform an edit and a copy. PDM is easily customizable.

For example, to create a file for user options called MYPDMOPT in library MYLIB, execute the following command:

 CRTDUPOBJ OBJ(QAUOOPT) + FROMLIB(QGPL) + OBJTYPE(*FILE) + TOLIB(MYLIB) + NEWOBJ(MYPDMOPT) + DATA(*NO) 

(If you want to copy existing options, use DATA(*YES).)

Now you can assign this file as your PDM options file by pressing F18 (change defaults) from the WRK-xxxPDM panel. Close to the bottom of the screen is a prompt for the option file, which will have QGPL/

QAUOOPT by default. Change it to MYLIB/MYPDMOPT and press Enter. PDM is now customized for you. Other programmers in your organization will not be affected by this change, since PDM customization is stored by user profile.

Creating User Options

To create your own PDM options, press F16 from the WRKxxxPDM panel. A list panel shows all the options already there. If you have just created the options file with DATA (*NO) there won't be any. See 4a.

To create your own PDM options, press F16 from the WRKxxxPDM panel. A list panel shows all the options already there. If you have just created the options file with DATA (*NO) there won't be any. See Figure 4a.

Let's say you don't like the printed output given by SEU when you use PDM Option 6 to print a source member. Another method to print a source member uses the Copy Source File (CPYSRCF) command with OUTPUT(*PRINT). So, let's create Option PM (print member).

Pressing F6 takes you to the panel shown in 4b, which you use to create a new option. Enter PM in the Option prompt and CPYSRCF in the Command prompt, then press F4; the system prompts for the CPYSRCF command.

Pressing F6 takes you to the panel shown in Figure 4b, which you use to create a new option. Enter PM in the Option prompt and CPYSRCF in the Command prompt, then press F4; the system prompts for the CPYSRCF command.

Enter &F for the file name and &L for the library name, *PRINT in the "To file" prompt, and &N in the "From member" prompt. Press Enter-the system formats the CPYSRCF command for you, adding the parameter keywords in the proper places. Press Enter again to actually add the option to the file.

&F, &L and &N are reserved variable names you use in defining PDM options only. &F represents the name of the current file, &L is the name of the current library and &N is the name of the current item (in the case of the PM option, since it prints a member, &N is the name of the member).

Now suppose you run WRKMBRPDM for QGPL/QDDSSRC. One of the source members available is QDSIGNON, which contains the DDS for the standard sign-on display. Enter PM (your option) next to the name QDSIGNON and press Enter; PDM prints the source member by executing the CPYSRCF command as you specified. PDM automatically replaced &L, &F and &N with QGPL, QDDSSRC and QDSIGNON, respectively.

Besides creating PDM options, you can also change, copy, delete or display them from the panel presented when you press F16 on the WRKxxxPDM panel. Try it. Enter an Option 2 (change) next to PM and press Enter; PDM takes you back to the panel where you define the option. Move the cursor to the Command prompt and press Help to list the reserved variables that are available in addition to the three I have described in the previous exercise.

SHORTCUTS FOR EXPERTS

PDM provides two excellent shortcuts when you're in one of the list panels and need to execute the same option on a group of items.

The Repeat Function Key

F13 lets you repeat the same option (whether it's IBM's or yours) on all items of the list, beginning at a certain spot. Suppose you need to edit all members listed on the WRKMBRPDM panel. All you need to do is type a "2" (for Edit) next to the first member name and press F13 to repeat Option 2 all the way to the last member listed on the last page. Then you can press Enter; PDM executes each Option 2 in turn, letting you edit each source member. When you finish editing the first member with SEU, PDM takes you to the second member and restarts SEU.

F13 can also be used to repeat the same option on all items beginning with a particular item-not necessarily from the first item on the list. You can move the cursor to the sixth item, type a 5 ("Display") and press F13; PDM fills the Option column with 5's from the sixth item all the way down to the last entry.

Supplying Parameters

Option 11 performs a MOVOBJ command when you run it from the WRKOBJPDM panel. Suppose you have just finished programming a complex system in a development library and you want to move all objects to the production library, which is called PRODLIB.

You start by typing an 11 on the first object and pressing F13 to repeat the same option, as I've explained above. You could then press F4 to have PDM prompt you for the MOVOBJ command so you can enter the name of the library where you want to move the objects. The problem is that PDM will prompt you for each object, and you'll have to retype PRODLIB each time-tedious and prone to error.

There's a better way! Instead of pressing F4, move the cursor to the command line shown at the bottom and type TOLIB(PRODLIB), then press Enter. PDM interprets this as a parameter to the MOVOBJ command (which is what PDM runs in this case). Since no parameters are missing, PDM doesn't prompt you or stop after each object-it performs the MOVOBJ command on all objects without pause.

Of course, you must know what command PDM executes for each option (those are listed in 2) and the syntax of the command in question.

Of course, you must know what command PDM executes for each option (those are listed in Figure 2) and the syntax of the command in question.

PERSONALIZING PDM

WRKxxxPDM uses F18 to let you change your personal defaults when using PDM. We have seen some of them already. Now let's see them in detail. When you press F18, PDM presents the panel shown in 5.

WRKxxxPDM uses F18 to let you change your personal defaults when using PDM. We have seen some of them already. Now let's see them in detail. When you press F18, PDM presents the panel shown in Figure 5.

Customizing Option 14 (Compile)

The first two fields relate to compiles executed by running Option 14 from the WRKMBRPDM panel. First, you can indicate that all compiled objects be placed in a specific library so you don't have to keep prompting for the command and changing the default values. For instance, if all your compiled objects go to PRODLIB, you can enter PRODLIB into the first field. *SRCLIB places the object in the same library that contains the source code, while *CURLIB places the compiled object in the current library; if you don't have a current library assigned to your job (verify with DSPLIBL), *CURLIB places the compiled object in QGPL.

The second field instructs PDM either to replace or not to replace an existing object having the same name as the object you're compiling. If you select Y, PDM replaces the item without asking any questions; if you select N, PDM warns you that there's another item already in existence and gives you a chance to proceed or back out. The system automatically moves all replaced objects to library QRPLOBJ.

Option 14 (compile) from WRK-MBRPDM is also affected by the next default setting: compile in batch. If you key in Option 14 to compile and press Enter or F4, this value determines whether the compile is run interactively (N) or in batch (Y). Batch mode is recommended unless the compile depends on file overrides or objects in QTEMP; in those cases, compile interactively.

Customizing Option 16 (Run)

The next field (run in batch) applies when you select Option 16 to run a program (CALL command) or a REXX or OCL36 procedure. Again, N makes it run interactively, while Y submits it to batch.

The previous two fields can cause jobs to be submitted to batch; the following field tells PDM what job description to use for the batch job. Job descriptions are entirely up to you, but you're urged to create a separate job description for each programmer. This way, each programmer can customize his or her own programming environment.

Other Customization Options

F18 also gives you the ability to make the member type and text description input-capable or protect it, change your custom PDM options file, and select between full-screen mode and regular, as already explained.

FINDING STRINGS WITH PDM

One of the nicest features of PDM is the Find String with PDM (FNDSTRPDM) command. You can run this command manually, without ever starting PDM, from the command line. Alternatively, you can start it by selecting Option 25 from either the WRKOBJPDM or the WRKMBRPDM panels. The difference is that when 25 is selected from WRKMBRPDM it scans only one member of the file (the member next to which you entered Option 25), while if selected from WRKOBJPDM it scans the whole file (all members). FNDSTRPDM can be used on database files or source files with equal ease, although it is mainly geared for source files.

Let's put FNDSTRPDM to work. Assume you have a source file called QRPGSRC in MYLIB and you want to obtain a list of all members that use the new SELEC operation code. Run the following command:

 FNDSTRPDM STRING(SELEC) + FILE(MYLIB/QRPGSRC) + MBR(*ALL) + OPTION(*NONE) + COL(28 32) + PRTMBRLIST(*YES) 

FNDSTRPDM will search for the string SELEC in columns 28-32 (that's where you enter the operation codes in the C-specs). FNDSTRPDM scans all members in MYLIB/

QRPGSRC, and prints a list of members where it finds a match. Notice that we cannot tell FNDSTRPDM to list only C-spec occurrences of SELEC; there's no room to narrow down the scan to records that have a 'C' in column 6. Don't think that MBR(*ALL) is all you can ask for. FNDSTRPDM lets you enter *ALL, any kind of generic name (with the asterisk at either or both ends, or in the middle), or even a list of specific member names.

FNDSTRPDM can do much more than that. Execute the following command:

 FNDSTRPDM STRING(SELEC) + FILE(MYLIB/QRPGSRC) + MBR(*ALL) + OPTION(*DSP) + COL(28 32) 

Instead of getting a printed list, FNDSTRPDM displays each member where it finds SELEC in columns 28-32, by actually running SEU in browse mode and positioning the cursor at the first occurrence of SELEC. While in SEU, you can press F16 to find the next occurrence, of course, or press Enter to exit- which returns control to FNDSTRPDM, continuing the search on the following members of the file.

You've seen what OPTION(*DSP) does. The OPTION parameter can have many other values to perform different actions on the members where FNDSTRPDM finds a match. You can use *EDIT (to edit with SEU), *COPY (to copy the member), *DLT (delete), *DSP (display), *PRT (print), *RNM (rename), *DSPD (display description), *SAVE (save the member), *CHGT (change text), *CMPL (compile), *RUNP (run REXX or OCL36 procedure), *SDA (change with SDA), *DFU (change with DFU) or *RLU (change with RLU). You can even use your own user-defined PDM options.

The last parameter, PARM, lets you enter parameters for the action described in OPTION. For instance, suppose you want to recompile all members that use a file name of CUSTMAST, using TGTRLS(*PRV) to support another AS/400 which runs under an older release of OS/400. Here's what you do:

 FNDSTRPDM STRING(FCUSTMAST) + FILE(MYLIB/QRPGSRC) + MBR(*ALL) + OPTION(*CMPL) + COL(6 14) + PARM('TGTRLS(*PRV)') 

FNDSTRPDM looks for 'FCUSTMAST' in columns 6-14 (since 'F' falls on column 6, it scans the F-specs only). When it finds a match, it compiles the member using all parameter defaults except TGTRLS(*PRV).

That's Not All, Folks!

There's another value you can place in the OPTION parameter, *PROMPT, which forces FNDSTRPDM to prompt for the command it executes when it finds a match. It defaults to *NOPROMPT, but suppose you change it to *PROMPT:

 FNDSTRPDM STRING(FCUSTMAST) + FILE(MYLIB/QRPGSRC) + MBR(*ALL) + OPTION(*CMPL *PROMPT) + COL(6 14) + PARM('TGTRLS(*PRV)') 

FNDSTRPDM does the same thing, but this time it stops with the command prompter for CRT-RPGPGM, already filled out with default values [and TGTRLS(*PRV)], to let you change some parameter values. When you press Enter, FNDSTRPDM compiles the source member and continues the search.

So far you've seen examples that show how FNDSTRPDM can search for a string in a specific (and fixed) part of the record. Actually, FNDSTRPDM can perform the search dynamically with equal ease. Instead of supplying specific values for beginning and ending columns in the COL parameter, leave the default values of 1 and *RCDLEN (record length). Then FNDSTRPDM will scan the whole record. This is great when you must scan for a variable name you need to change, but you realize it can be either in Factor 1, Factor 2, or the Result field, or even in I- or O-specs. It is also useful in free-format languages like CL or COBOL.

Normally, FNDSTRPDM ignores the case. "A" and "a" are the same. You can override this behavior if you are interested in finding either exclusively uppercase or exclusively lowercase occurrences. In this case, make sure you surround the string with single quotes and indicate CASE (*MATCH) instead of *IGNORE, which is the default.

One Final Note

You have seen how you can use PDM in your everyday work. PDM has extensive help support. No matter where you are, you can count on the Help key to give you instant assistance.

Don't let the P (Programming) in PDM make you believe that this tool can be used only by programmers. You can use any of the three list types any way you want. In many cases, PDM offers more flexibility than the standard OS/400 commands, so you can take advantage of PDM's extensive selection capabilities to find and perform work on libraries, objects and members. Also remember that WRKMBRPDM can be used on non-source files with the same ease.

All in all, PDM is a great programming and operational tool. The more you know about it and use it, the more you'll like it.

PDM for the Uninitiated

PDM is not part of OS/400. It is part of a licensed program called Application Development Tools (5738-PW1) which is separately priced. PDM greatly simplifies the programmer's job by presenting lists of items and allowing entry of quick and short options in order to manipulate libraries, objects and file members.

The purpose of PDM is to give the programmer a consistent interface to all of his tools. Just as programmers standardize function keys based on IBM standards, IBM applies standards to the tools supplied for the AS/400. Some of these are part of the SAA standard, but PDM takes this concept further. Why, for example, should you concern yourself with what type of source is being compiled? When you select Option 14 for any source member, PDM attempts to run the appropriate Create (CRT) command with default values based on the member type, your user profile and library list and values set in PDM.

Similarly, whenever you choose Option 2 (edit), PDM starts SEU with all of the appropriate defaults.

Three Modes of Operation

Although PDM always presents lists of similar items, PDM works with three major list types: libraries, objects, or file members. The Start PDM (STRPDM) command presents a menu which shows the three list types for you to select from. In addition, you can work with each list type directly with the corresponding "work with ... PDM" command: WRKLIBPDM for libraries, WRKOBJPDM for objects, and WRKMBRPDM for file members. The article refers to these three commands collectively as WRKxxxPDM.

One of the greatest features of PDM is its consistency. No matter what list type you're working with, PDM presents similar displays. For instance, look at 1 (page 29), which shows a sample of the WRK-OBJPDM command.

One of the greatest features of PDM is its consistency. No matter what list type you're working with, PDM presents similar displays. For instance, look at Figure 1 (page 29), which shows a sample of the WRK-OBJPDM command.

The top of the panel has input fields to select different libraries or files and to reposition the list. Then there is a list of numeric options (provided by IBM). These options are practically the same whether you're using libraries, objects or members. The list of items is presented next, with an input field to the left where you can enter the options listed above (or even your own!). A command line and a list of function keys complete the panel.

Option Numbers

PDM comes complete with a set of numeric options that are fully consistent with SAA. For instance, when you run the WRKSPLF command, you know that Option 5 means "display." Option 5 in PDM also means "display."

Sometimes the wording of the option is changed (and sometimes it's not appropriate), but the purpose is always clear. For example, Option 4 means "delete" in all three list types; yet, a more proper word would have been "remove" in the case of the WRKMBRPDM panel, since you don't delete a member, but you remove it. It's a minor point of semantics, but after using PDM for a while, a programmer may start looking for the Delete Member command which, of course, doesn't exist.

Rather than boring you with a complete description of each option number, I'll refer you to 2 (page 30), which contains a table listing all of them, broken down by type of list. If an option is available in a list type, I've inserted the QSYS command that PDM executes when you select the option. The absence of a command name on the list means that the option is not available. Since source and non-source files are treated differently by the WRKMBRPDM command, I've broken up WRKMBRPDM in two separate columns.

Rather than boring you with a complete description of each option number, I'll refer you to Figure 2 (page 30), which contains a table listing all of them, broken down by type of list. If an option is available in a list type, I've inserted the QSYS command that PDM executes when you select the option. The absence of a command name on the list means that the option is not available. Since source and non-source files are treated differently by the WRKMBRPDM command, I've broken up WRKMBRPDM in two separate columns.

For example, look up Option 10. Under WRKLIBPDM, Option 10 shows the RSTLIB command; under WRKOBJ-PDM, it's the RSTOBJ command; under WRKMBRPDM there's no command because Option 10 is not available there.

An important point to remember is that if you key in an option and press Enter, the associated command is executed immediately; if you press F4 instead of Enter, PDM invokes the command prompter to let you change some of the parameter values.

If you're new to PDM, I suggest you practice the basic operations for a while before you attempt to learn and use the more advanced concepts and techniques presented in this article.


Getting the Most Out of PDM

Figure 1 Sample of WRKOBJPDM

 Figure 1: Sample of WRKOBJPDM Work with Objects Using PDM EDTDSP05 Library . . . . . UTILITY--- Position to . . . . . . . . ---------- Position to type . . . . . ---------- Type options, press Enter. 2=Change 3=Copy 4=Delete 5=Display 7=Rename 8=Display description 9=Save 10=Restore 11=Move ... Opt Object Type Attribute Text -- ADDDATE *PGM PLI Add days to a date -- ADDPTR *PGM PLI Add to Pointer -- ADDTIM *PGM RPG Add times in hhmmss format -- AID2FKEY *PGM RPG Convert AID byte to Function Key -- ALL001CL *PGM CLP CPP for RGZALLPF command -- ALL002CL *PGM CLP CPP for RCLALLSTG command -- BIN001RG *PGM RPG CPP for CVTBINDEC command -- BREAK- *PGM PLI Break string at first blank space More... Parameters or command ===> ------------------------------------------------------------------------ F3=Exit F4=Prompt F5=Refresh F6=Create F9=Retrieve F10=Command entry F23=More options F24=More keys 
Getting the Most Out of PDM

Figure 2 Table of available options

 Figure 2: Table of Available Options WRKLIBPDM WRKOBJPDM WRKMBRPDM WRKMBRPDM (Source) (Non-Source) 2=Change CHGLIB CHGxxx STRSEU (2) 3=Copy CPYLIB CRTDUPOBJ CPYSRCF CPYF 4=Delete DLTLIB DLTxxx RMVM RMVM 5=Display DSPLIB DSPxxx STRSEU (5) DSPPFM 6=Print STRSEU (6) 7=Rename RNMOBJ RNMOBJ RNMM RNMM 8=Dsp Descr DSPOBJD DSPOBJD (Program) (Program) 9=Save SAVLIB SAVOBJ SAVOBJ SAVOBJ 10=Restore RSTLIB RSTOBJ 11=Move MOVOBJ 12=Work With WRKOBJPDM WRKMBRPDM 13=Chg Text CHGOBJD CHGOBJD CHGPFM CHGPFM 14=Compile CRTxxx 15=Copy File CPYF 16=Run CALL STRREXPRC or STRS36PRC 17=Chg w/SDA STRSDA 18=Chg w/DFU UPDDTA 19=Chg w/RLU STRRLU 25=Fnd String FNDSTRPDM FNDSTRPDM 
Getting the Most Out of PDM

Figure 3 DDS for QGPL/QAUOOPT

 Figure 3: DDS for QGPL/QAUOOPT .... ....1.... ....2.... ....3.... ....4.... ....5.... ....6.... ....7 A R QPDMOPT A OPTION 2 TEXT('USER OPTION') A COMMAND 250 TEXT('COMMAND') To compile: CRTPF FILE(QGPL/QAUOOPT) SRCFILE(QGPL/QDDSSRC) 
Getting the Most Out of PDM

Figure 4A First panel to Create Options

 Figure 4a: First Panel to Create Options Work with User-Defined Options EDTDSP05 File . . . . . . . : MYPDMOPT Member . . . . . . : QAUOOPT Library . . . . : MYLIB Type options, press Enter. 2=Change 3=Copy 4=Delete 5=Display Opt Option Command (No user-defined options in file) Command ===> ------------------------------------------------------------------------ F3=Exit F4=Prompt F5=Refresh F6=Create F9=Retrieve F10=Command entry F24=More keys 
Getting the Most Out of PDM

Figure 4B Second panel to Create Options

 Figure 4b: Second Panel to Create Options Create User-Defined Option EDTDSP05 Type option and command, press Enter. Option . . . . . . . . . -- Option to create Command . . . . . . . . . ------------------------------------------------- ------------------------------------------------------------------------------ ------------------------------------------------------------------------------ ----------------------------------------- F3=Exit F4=Prompt F12=Cancel 
Getting the Most Out of PDM

Figure 5 Change Defaults panel

 Figure 5: Change Defaults Panel Change Defaults EDTDSP05 Type choices, press Enter. Object library . . . . . . . *SRCLIB--- Name, *CURLIB, *SRCLIB Replace object . . . . . . . N Y=Yes, N=No Compile in batch . . . . . . Y Y=Yes, N=No Run in batch . . . . . . . . N Y=Yes, N=No Job description . . . . . . *USRPRF--- Name, *USRPRF, F4 for list Library . . . . . . . . . ---------- Name, *CURLIB, *LIBL Change type and text . . . . N Y=Yes, N=No Option file . . . . . . . . MYPDMOPT-- Name Library . . . . . . . . . MYLIB----- Name, *CURLIB, *LIBL Member . . . . . . . . . . . QAUOOPT--- Name Full screen mode . . . . . . Y Y=Yes, N=No F3=Exit F4=Prompt F5=Refresh F12=Cancel 
BLOG COMMENTS POWERED BY DISQUS

LATEST COMMENTS

Support MC Press Online

$

Book Reviews

Resource Center

  • SB Profound WC 5536 Have you been wondering about Node.js? Our free Node.js Webinar Series takes you from total beginner to creating a fully-functional IBM i Node.js business application. You can find Part 1 here. In Part 2 of our free Node.js Webinar Series, Brian May teaches you the different tooling options available for writing code, debugging, and using Git for version control. Brian will briefly discuss the different tools available, and demonstrate his preferred setup for Node development on IBM i or any platform. Attend this webinar to learn:

  • SB Profound WP 5539More than ever, there is a demand for IT to deliver innovation. Your IBM i has been an essential part of your business operations for years. However, your organization may struggle to maintain the current system and implement new projects. The thousands of customers we've worked with and surveyed state that expectations regarding the digital footprint and vision of the company are not aligned with the current IT environment.

  • SB HelpSystems ROBOT Generic IBM announced the E1080 servers using the latest Power10 processor in September 2021. The most powerful processor from IBM to date, Power10 is designed to handle the demands of doing business in today’s high-tech atmosphere, including running cloud applications, supporting big data, and managing AI workloads. But what does Power10 mean for your data center? In this recorded webinar, IBMers Dan Sundt and Dylan Boday join IBM Power Champion Tom Huntington for a discussion on why Power10 technology is the right strategic investment if you run IBM i, AIX, or Linux. In this action-packed hour, Tom will share trends from the IBM i and AIX user communities while Dan and Dylan dive into the tech specs for key hardware, including:

  • Magic MarkTRY the one package that solves all your document design and printing challenges on all your platforms. Produce bar code labels, electronic forms, ad hoc reports, and RFID tags – without programming! MarkMagic is the only document design and print solution that combines report writing, WYSIWYG label and forms design, and conditional printing in one integrated product. Make sure your data survives when catastrophe hits. Request your trial now!  Request Now.

  • SB HelpSystems ROBOT GenericForms of ransomware has been around for over 30 years, and with more and more organizations suffering attacks each year, it continues to endure. What has made ransomware such a durable threat and what is the best way to combat it? In order to prevent ransomware, organizations must first understand how it works.

  • SB HelpSystems ROBOT GenericIT security is a top priority for businesses around the world, but most IBM i pros don’t know where to begin—and most cybersecurity experts don’t know IBM i. In this session, Robin Tatam explores the business impact of lax IBM i security, the top vulnerabilities putting IBM i at risk, and the steps you can take to protect your organization. If you’re looking to avoid unexpected downtime or corrupted data, you don’t want to miss this session.

  • SB HelpSystems ROBOT GenericCan you trust all of your users all of the time? A typical end user receives 16 malicious emails each month, but only 17 percent of these phishing campaigns are reported to IT. Once an attack is underway, most organizations won’t discover the breach until six months later. A staggering amount of damage can occur in that time. Despite these risks, 93 percent of organizations are leaving their IBM i systems vulnerable to cybercrime. In this on-demand webinar, IBM i security experts Robin Tatam and Sandi Moore will reveal:

  • FORTRA Disaster protection is vital to every business. Yet, it often consists of patched together procedures that are prone to error. From automatic backups to data encryption to media management, Robot automates the routine (yet often complex) tasks of iSeries backup and recovery, saving you time and money and making the process safer and more reliable. Automate your backups with the Robot Backup and Recovery Solution. Key features include:

  • FORTRAManaging messages on your IBM i can be more than a full-time job if you have to do it manually. Messages need a response and resources must be monitored—often over multiple systems and across platforms. How can you be sure you won’t miss important system events? Automate your message center with the Robot Message Management Solution. Key features include:

  • FORTRAThe thought of printing, distributing, and storing iSeries reports manually may reduce you to tears. Paper and labor costs associated with report generation can spiral out of control. Mountains of paper threaten to swamp your files. Robot automates report bursting, distribution, bundling, and archiving, and offers secure, selective online report viewing. Manage your reports with the Robot Report Management Solution. Key features include:

  • FORTRAFor over 30 years, Robot has been a leader in systems management for IBM i. With batch job creation and scheduling at its core, the Robot Job Scheduling Solution reduces the opportunity for human error and helps you maintain service levels, automating even the biggest, most complex runbooks. Manage your job schedule with the Robot Job Scheduling Solution. Key features include:

  • LANSA Business users want new applications now. Market and regulatory pressures require faster application updates and delivery into production. Your IBM i developers may be approaching retirement, and you see no sure way to fill their positions with experienced developers. In addition, you may be caught between maintaining your existing applications and the uncertainty of moving to something new.

  • LANSAWhen it comes to creating your business applications, there are hundreds of coding platforms and programming languages to choose from. These options range from very complex traditional programming languages to Low-Code platforms where sometimes no traditional coding experience is needed. Download our whitepaper, The Power of Writing Code in a Low-Code Solution, and:

  • LANSASupply Chain is becoming increasingly complex and unpredictable. From raw materials for manufacturing to food supply chains, the journey from source to production to delivery to consumers is marred with inefficiencies, manual processes, shortages, recalls, counterfeits, and scandals. In this webinar, we discuss how:

  • The MC Resource Centers bring you the widest selection of white papers, trial software, and on-demand webcasts for you to choose from. >> Review the list of White Papers, Trial Software or On-Demand Webcast at the MC Press Resource Center. >> Add the items to yru Cart and complet he checkout process and submit

  • Profound Logic Have you been wondering about Node.js? Our free Node.js Webinar Series takes you from total beginner to creating a fully-functional IBM i Node.js business application.

  • SB Profound WC 5536Join us for this hour-long webcast that will explore:

  • Fortra IT managers hoping to find new IBM i talent are discovering that the pool of experienced RPG programmers and operators or administrators with intimate knowledge of the operating system and the applications that run on it is small. This begs the question: How will you manage the platform that supports such a big part of your business? This guide offers strategies and software suggestions to help you plan IT staffing and resources and smooth the transition after your AS/400 talent retires. Read on to learn: