PDM (Programming development manager) is installed as a part of the Applications Development ToolSet (ADT) on most IBM i systems today.
PDM is an environment that lets programmers and/or operators easily navigate and work with objects in libraries (aka schemas) anywhere on their IBM i Power Systems.
PDM enables users to utilize shortcuts for executing repetitive tasks.
Frmo the main STRPDM (Start PDM) Menu you will see “work with” commands for the designated levels of PDM are as follows:
- WRKLIBPDM (Library level)
- WRKOBJPDM (Object level)
- WRKMBRPDM (Member level)
Option 1 WRKLIBPDM – Work with Libraries using PDM
With this, you can clone or rename libraries and juggle all sorts of library-level wizardry.
Your options here are:
- 2=Change Type 2 to change either or both the type and the text description of a library.
- 3=Copy Type 3 to copy one or more libraries to one or more other libraries.
- 4=Delete Type 4 to delete one or more libraries.
- 5=Display Type 5 to display a list of the names and the types of all objects contained in a library.
- 7=Rename Type 7 to change the name of one or more libraries.
- 8=Display description Type 8 to display information about a library such as the date saved, date restored, date created, and date changed.
- 9=Save Type 9 to save one or more libraries on diskette or tape. If you choose to save more than one library, continue to press Enter until you return to this display.
- 10=Restore Type 10 to restore one or more libraries from diskette or tape to the system.
- Opting for a 12 at this altitude sends you plummeting to object manipulation land, which is just option 2 on the STRPDM menu’s greatest hits.
- 12=Work with Type 12 and press Enter to work with all the objects in a library. The Work with Objects Using PDM display appears, allowing you to perform operations on objects in the specified library. If you press F4=Prompt before pressing Enter, then the Specify Objects to Work With display appears, allowing you to create a subset of the list of objects.
- 13=Change text Type 13 to change the text description of a library.
Option 2, Work with Objects using PDM
Just like the WRKLIBPDM menu, this level lets you work with objects within the selected library:
Option 3, Work with Members using PDM
I’m not exaggerating by saying “every single RPG programmer in the world knows how to use WRKMBRPDM”:
With this, programmers can tweak source members with SEU, spruce up display files using SDA, or tailor printer files with RLU.
The menu options are self explanatory – so let’s play a game, leaving you to decipher my interpretation of those menu options: menu options let you save the day, restore order, flaunt descriptions, delete your worries, change for the better, work some magic, run like the wind, text-change on a dime, seek and find strings, craft a program or service program, debug like a pro, and play spot the difference.
Finally – the fantastic User Defined Options File
PDM has a filter tool (F17) which allows a user to narrow their search parameters and limit results by object, object type, attributes, a size range, or by complete or partial text.
This is seriously the most powerful and frequently under used function within PDM.
Programmers can customize these shortcuts according to their requirements.
Limited to two alphanumeric characters, these shortcuts are inputted in the field directly before the library, object, or member. For bulk operations across all entries shown on the pertinent PDM screen, these shortcuts can be applied collectively using F13.
This streamlines the process of performing routine tasks such as assigning authority, transferring object ownership, among other functions. Additionally, PDM remembers the last input parameters for each user, simplifying the processes of repetition and retrieval.
User Defined Option in Detail:
Let’s look at an example where I want to select a specific object from the WRKOBJPDM screen and see every library on the system where an object with that same name exists.
Simply create a user defined option like this:
The substitution variables &N and &T stand for OBJECT and TYPE will be filled in by PDM and updated depending on which object I select from the main PDM screen.
The full list of substitution variables:
- &A Object attribute – If you are working with objects, &A is replaced by the attribute for an object on an object list. If you are working with libraries or members, &A is replaced by *NULL.
- &B List type – If you are working with a library list (*LIBL, *USRLIBL), &B is replaced by X. If you are working with a list of libraries (*ALL, *ALLUSR), &B is replaced by L. If you are working with a list of objects, &B is replaced by O. If you are working with a list of members, &B is replaced by M.
- &C Option – &C is replaced by the user-defined option code.
- &D Member/part change date – If you are working with members, &D is replaced by the date the member was last changed. The value returned will be in the system format with separator characters. Otherwise, &D is replaced by *NULL. You must use this variable in single quotation marks (that is, ‘&D’) since the date may contain a slash (/) which is used as an operator.
- &E Run in batch – &E is replaced by *YES if Y is specified in the Run-in batch prompt on the Change Defaults display and *NO if N is specified.
- &F File name – If you are working with members, &F is replaced by the name of the file that contains these members. If you are working with user-defined part types of SYSTYPE(*MBR), &F is replaced by the name of the file that stores the part type. For all other conditions, &F is replaced by *NULL.
- &G Job description library – &G is replaced by the job description library value from the Change Defaults display.
- &H Job description name – &H is replaced by the job description value from the Change Defaults display.
- &J Job description – &J is replaced by the job description value from the Change Defaults display in the format library/job description.
- &L Library name – If you are working with libraries, &L is replaced by QSYS. If you are working with objects or members, &L is replaced by the name of the library that contains these objects or members.
- &N Item name – &N is replaced by the name of the item in the list beside which the option was typed.
- &O Object library – If you are working with libraries, objects, or members, &O is replaced by the object library from the Change Defaults display.
- &P Compile in batch – &P is replaced by *YES if Y is specified in the Compile in batch prompt on the Change Defaults display and *NO if N is specified.
- &R Replace object – &R is replaced by *YES if Y is specified in the Replace object prompt on the Change Defaults display and *NO if N is specified.
- &S Item type without ” – If you are working with libraries, &S is replaced by LIB. If you are working with objects, &S is replaced by the object type without the ”. If you are working with members, &S is replaced by the member type as is.
- &T Item type with ‘*’ – If you are working with libraries, &T is replaced by *LIB. If you are working with objects or members, &T is replaced by the object or member type as is.
- &U User-Defined Option File – &U is replaced by the user-defined option file name from the Change Defaults display.
- &V User-Defined Option Library – &V is replaced by the user-defined option library name from the Change Defaults display.
- &W User-Defined Option File Member – &W is replaced by the user-defined option file member name from the Change Defaults display.
- &X Item text – &X is replaced by the text (in single quotation marks) of the item in the list beside which the option was typed.
You can see some video samples of me playing with PDM over here
Work with IBM i on a Power System
This course is an introduction into Using and Administering your IBM i System. We will go through signing up for a free account online and logging in and going through some basic usage of the wonderful IBM-i operating system.