Skip to content

Bound RPG Tips for MDCMS

ILE Bound Program Management – Choosing the Right Object Attribute

The following outlines a quick way to determine the correct object attribute to use.

If you are not sure how the object was originally created then use the DSPPGM command and look at where the module was created.

There are three options you can use depending on the circumstance:

Option 1 - If you just need to rebuild the program and the modules already exist:

If you are attempting to do a bind in which one or more modules/service programs are being bound together using the CRTPGM command, you will want to use ILEPGM (or RPGPGM).  There is no source associated with this process, only object binding

Option 2: - If the module library is QTEMP:

If you are attempting to compile with the PWM member with the type RPGLE then you are using the CRTBNDRPG command then you will want to use the attribute RPGLE (if you don’t have this attribute name, look for the attribute that uses the command mentioned above.  This attribute manages source and it creates a module in QTEMP that binds the module directly into the object.  The end result is the ILE-bound program.

Option 3: - If it is an actual library name:

Add the object as a *MODULE (CRTRPGMOD) and as an ILEPGM object attribute to build the program.  This would mean you would have two entries, one for module and one for the program.

Do the following actions to see which create-object attributes and associated create commands are available:

  • Option 3 on the Settings menu.
  • Option C next to the attribute for which you want to see the associated create command

ILE Bound Program Management - CRTPGM

CRTPGM is associated with a shipped attribute named ILEPGM.  You can create any object attribute name you would like.

You will add the module and the create program separately.  They can have the same name.

If you are new to MDCMS or this is an object for which you are not sure how it was created in the past, the easiest way to determine the command is to use DSPPGM and check the modules used at the time of its creation.  If it says QTEMP, chances are you will want the CRTBNDPGM command; if not, then you will want the CRTPGM command.  However, there are exceptions to this so always be sure to test.

  1. Create an object request with the appropriate module attribute
  2. Create an object request for the bound program name with the object attribute of ILEPGM.
  3. After the request exists, right click on the new ILEPGM object request. You will see an option to select bound ILE objects.
  4. If this is a new ILEPGM you will need to identify what modules need to be bound into the program.
  5. If the object already exists you will see the modules and from there you can add new ones.
  6. If this is new you can add the modules to show what will be bound.

Modules

Regardless of the method you use, you may want to have the following object attributes—you can create others if needed:

  • CLPMOD *MODULE
  • RPGMOD *MODULE
  • RPGILEMOD *MODULE