61
Reboot the PC by pressing <Ctrl><Alt><Delete>at the same time. Press this key combination twice. Select the option that indicates PC Support and/or AS/400. Answer "Enter common user ID:" with your username Answer "Enter password for common user ID:" with your password. If there is a beep or a message press <Enter>to bypass the message. At this point you should have the following screen: Sign On System . . . . . : MKTAS400 Subsystem . . . . : QINTER Display . . . . . : PCnnnnS1 User . . . . . . . . . . . . . . __________ Password . . . . . . . . . . . . Program/procedure. . . . . . . . __________ Menu . . . . . . . . . . . . . . __________ Current library. . . . . . . . . __________ Type your username in the "User" blank. Press the <Tab>key. Type your password. The password will not be displayed. Press the <Enter>key. If for some reason you can not longer type, press the <Reset>key. On the Microterms or PC-VT this would be the <Esc>key then R. On PC Support/400 this would be the left <Ctrl>key. If this is the first time you signed on continue with the Changing your password section of this manual. Changing Your Password The first time you log on the AS/400 you will be forced to change your password before continuing. Press <Enter>to change your password. At the "Current Password" field, type `xx' followed by the last six digits of your social security number (ie. xx999999) NOTE: nothing you type on this screen will be displayed to ensure that no one views your password as you type it. Press <Tab>or <Field Exit>. For the "New Password" field, type the password you would like to use when you sign on to the computer. It must not exceed 10 characters, it must begin with a alphabetic character and the remaining characters may be any combination of alphabetic, numeric

AS400 tips & questions

Embed Size (px)

DESCRIPTION

AS400

Citation preview

Page 1: AS400 tips & questions

Reboot the PC by pressing <Ctrl><Alt><Delete>at the same time. Press this key

combination twice.

Select the option that indicates PC Support and/or AS/400.

Answer "Enter common user ID:" with your username

Answer "Enter password for common user ID:" with your password.

If there is a beep or a message press <Enter>to bypass the message.

At this point you should have the following screen:

Sign On

System . . . . . : MKTAS400

Subsystem . . . . : QINTER

Display . . . . . : PCnnnnS1

User . . . . . . . . . . . . . . __________

Password . . . . . . . . . . . .

Program/procedure. . . . . . . . __________

Menu . . . . . . . . . . . . . . __________

Current library. . . . . . . . . __________

Type your username in the "User" blank.

Press the <Tab>key.

Type your password. The password will not be displayed.

Press the <Enter>key.

If for some reason you can not longer type, press the <Reset>key. On the Microterms or PC-VT

this would be the <Esc>key then R. On PC Support/400 this would be the left <Ctrl>key.

If this is the first time you signed on continue with the Changing your password section of this

manual.

Changing Your Password

The first time you log on the AS/400 you will be forced to change your password before

continuing.

Press <Enter>to change your password.

At the "Current Password" field, type `xx' followed by the last six digits of your social

security number (ie. xx999999) NOTE: nothing you type on this screen will be displayed

to ensure that no one views your password as you type it.

Press <Tab>or <Field Exit>.

For the "New Password" field, type the password you would like to use when you sign on

to the computer. It must not exceed 10 characters, it must begin with a alphabetic

character and the remaining characters may be any combination of alphabetic, numeric

Page 2: AS400 tips & questions

characters. Note: Try not to make it too difficult, you will need to know it to sign on the

AS/400 again.

Press <Tab>or <Field Exit>

At the "New Password (to verify)" field, type in your new password for a second time to

make sure you have entered it correctly. If you have entered it incorrectly you will get an

error message and your initial password will still be `xx' followed by the last four digits

of your social security number.

Press <Enter>

Upon completion, the following message will be displayed:

Password changed successfully

Read the following screens, pressing <Enter>to exit each one, until you reach the AS/400

Main Menu screen.

Later on when you want to change your password, type CHGPWD on the command line and go

through the same steps.

Signing Off of the AS/400

Press <F3>until you see a command prompt, ===>.

At the command prompt type SIGNOFF.

Getting Online Help

AS/400 provides extensive On-line help, and a simple method of accessing the help information.

On-line help information is provided for all system displays. The type of help provided depends

on the location of the cursor.

For all displays, the following information is provided:

What the display is used for

How to use the display

How to use the command line if there is one

How to use the entry fields and parameter line if any

What function keys are active and what they do.

If the <Help>key is pressed when the cursor is in an area where specific on-line help information

is available, the help text for that area of the display is shown.

If the <Help>key is pressed when the cursor is in an area for which no specific information is

available, information for the entire display is shown. Then you can page forward or backward

through the information for the entire display and for each area.

If the <Help>key is pressed while a help display is shown, a description of the types of help that

are available on the displays, and how to get each type of help is shown.

Page 3: AS400 tips & questions

The <Help>key on the PC Support stations is labeled <Scroll Lock>. On the VT-100 or PC-VT

stations the key sequence for < Help>is <ESC>h.

If <F11>=Search index is shown at the bottom of the display, you can press <F11>to see the

Search Help Index display. On that display, you can request information about any topic you

specify.

STRSCHIDX

The start search index command is used when you would like to get help on a specific or general

topic. To use the index search facility type STRSCHIDX and hit <Return>. Type your subject

topic, or topics on the bottom subject line. When you hit <Return>again your topic will be

searched for and the topics found will be displayed on the screen above the topic line. To display

the information you are looking for type 5 in the option field by the topic line press <Return>. To

get out of the index search facility press <F3>until exited.

CD-ROM Manuals

If you are attached to the AS/400 using PC Support/400 you have the ability to look at a

hypertext version of a subset of the complete AS/400 manual set. To start the hypertext book

reader type the command MANUALS at any AS/400 prompt. This guide is laid out like a library.

The library contains bookshelves. These bookshelves contain books. For example our library

contains a bookshelf name Languages. We select the bookshelf by using the arrow keys to place

the highlighted cursor over it and press <Enter>. On this bookshelf there are several books on

languages. One of the books is titled "COBOL/400 Reference". Once again we use the arrows

and cursor to select the item. Now that we have the book it opens up a "Table of Contents" for

the book. By using this search and select procedure you can look through the book like a book

you'd check out at the library.

More Help

There are three ways to get help on the READ/DOS book reader (AS/400 command

MANUALS):

Start the book reader and select the bookshelf entitled BookManager READ/DOS.

Press <F1>anywhere you're in question about your current options.

Press <Alt>h (or <F10>h) and select the appropriate help selection for your current

problem.

Using the Prompt Facility

AS/400 provides interactive command prompting for any command supplied with the system or

created by the user. On the command entry screen notice the option F4 = Prompt at the bottom of

the screen. You can type the command name only, and press <F4>to see the prompt display for

the command. Usually, a command may require many parameters before it can be executed. The

prompt displays provide a convenient method of supplying that parameter information. For

Page 4: AS400 tips & questions

example, type SNDMSG on any command line and press <F4>. The following prompt display is

shown:

Send Message (SNDMSG)

Type choices, press Enter.

Message text . . . . . . . . . . ________________________________________

__________________________________________________________________________

__________________________________________________________________________

__________________________________________________________________________

__________________________________

To user profile . . . . . . . . . __________ Name , *SYSOPR, *ALLACT...

F3=Exit F4=Prompt F5=Refresh F10=Additional parameters F12=cancel

F13=How to use this display F24=More keys

To execute the command, supply the required information for Message text and user profile and

press <Enter>. Most of the parameters used on commands have default values that are used if no

other value is specified. You may change the default values if you desire to do so.

If <F4>= Prompt is shown on the prompt display, you can press < F4>to request a list of

predefined values (such as *SYSOPR and *ALLACT in the above display) that are permitted in

the field where the cursor is currently positioned.

In relation to the SNDMSG command, you can use DSPMSG at any time to display messages in

your message queue.

Organization of OS/400 Objects

Objects

On the AS/400, everything that can be stored or retrieved is stored in an object. Examples of

objects are libraries, files, executable programs, queues, and more. Objects share some common

attributes such as name, type, size, description, date created, and owner. The concept of an object

allows the system to perform certain standard operations, such as authorization management, on

all objects types. The object types that we will be primarily concerned with in this manual are:

*LIB Libraries

*FILE Files

*PGM Compiled programs

*OUTQ Output queues

Page 5: AS400 tips & questions

Libraries

Every object is contained in a library. A library is an object, of type *LIB, that contains a group

of objects. It is similar to the "root" or top-level directory on Unix, MS-DOS, and VAX/VMS.

However, unlike these systems, a library cannot "contain" other libraries (with the exception of

QSYS, the system master library, which "contains" all libraries on the system). An interesting

implication of the non-hierarchical nature of libraries is that two users cannot have libraries with

the same name. There are basically three general categories of libraries:

1. QSYS - the library that contains all other libraries,

2. System supplied libraries NOTE:all IBM-supplied library names begin with the letter "Q"

or "#"

3. User-created libraries.

Files

A file is an object, of type *FILE, that contains data in the form of a database, device data, or a

group of related records that are handled as a unit. In this manual, we are primarily concerned

with database files. There are two types of database files:

1. physical files

2. logical files.

A physical file contains actual data stored on the system. It has a fixed-length record format. In

this manual, we are primarily interested in two kinds of physical files:

1. data physical files

2. source physical files.

A data physical file (*FILE PF-DTA) contains data that cannot be compiled, such as an input file

to a program. In conventional terms, a data physical file is a data file, for example an employee

master file. A data physical file normally has a record format. This record format is defined using

Data Description Specifications (DDS is a language that is used to describe database files to the

system). This description is then compiled to produce a *FILE object with attribute PF-DTA.

A source physical file (*FILE PF-SRC) contains source statements, for example the source

statements of a Pascal or COBOL program. A source physical file has the attribute "PF-SRC". It

is usually created using the "Create Source Physical File" (CRTSRCPF) command (more

information about this command will be given later). A source physical file is actually a special

type of data physical file. The CRTSRCPF command creates a physical file with attributes

appropriate for source physical files. For example, the default record length is 92 (80 for the

source data field, 6 for the sequence number field, and 6 for the date field. Refer to the section on

the SEU editor for the meanings of these fields.)

Page 6: AS400 tips & questions

The data records in a data physical file can be grouped into members. A data physical file may

contain one or more members. These members are not objects themselves but subsets of an

object. This implies that all members of an object share the same basic characteristics with the

other members in the object such as ownership and security. In a PF-SRC file, each member

contains source statements for a program or DDS source. Members have an attribute associated

with them, which in the case of PF-SRC members, determines how the various systems programs

(such as the editor and compilers) on the AS/400 treat the member. This attribute is specified

when creating the member, and allows compilation to be totally automatic. Once, for example, a

member has been specified as having an attribute of CBL (for COBOL program,) the AS/400

editor, SEU, will format the program as a COBOL program, and when PDM (Program

Development Manager) is given the instruction to compile the file, it "knows" that it should

invoke the COBOL compiler. An example of a PF-SRC file and its members is shown below (we

will explain how to get to this screen in the section on PDM):

Work with Members Using PDM

File . . . . . . SRCFILE___

Library . . . . YOURLIB___ Position to . . . . __________

Type options, press Enter.

2=Edit 3=Copy 4=Delete 5=Display 6=Print

7=Rename 8=Display description 9=Save 13=Change text ...

Opt Member Type Text

__ NAMEEMP LF Sample DDS Source for a Logical File

__ CLPROG CLP Sample Control Language Source Program

__ RPGPROG RPG Sample RPG Source Program

__ EMPMAST PF Sample DDS Source for a Physical File

__ SCRNMBR DSPF Sample DDS Source for a Display File

Parameters or command

===> ___________________________________________________________

F3=Exit F4=Prompt F5=Refresh F6=Create

F9=Retrieve F10=Command entry F23=More options F24=More keys

The name of the source physical file is SRCFILE, and it is contained in the library YOURLIB.

Although, in the above example, source members of different types are stored in the same source

physical file, you will probably want to store source programs of the same type in a separate

source physical file. For example, you may want to keep all your RPG source programs in a PF-

SRC file called, for example, "RPGSRC" and DDS source in a PF-SRC file called, for example,

"DDSSRC". You may also use the standard IBM-supplied names such as "QRPGSRC",

"QDDSSRC", and "QCLSRC" for the various PF-SRC files. However, you may choose to

include source members of different types belonging to the same application in the same PF-SRC

file, as in the above example.

Page 7: AS400 tips & questions

In a data physical file (PF-DTA), the member(s) contains data for use by programs. Normally, a

PF-DTA file will only have one member (by default, the member's name is the same as the file

name). However, it is possible to include multiple members in a single PF-DTA file. For

example, you may want to group the records in a sales transactions file so that each member

contains data for each month. In this way, each month's data can be processed separately by

processing one member at a time. It is important to understand, at this point, the difference

between "source" and "data" in regards to data physical files. In the "Work with Members using

PDM" screen above, the "PF" member, "EMPMAST", contains DDS source that defines a

physical file. When this source member is compiled (using CRTPF or option 14 in the "Work

with Members using PDM" screen), it will produce a *FILE object with attribute PF-DTA. This

compiled object is the actual file that is used to hold data records.

A data logical file (*FILE LF-DTA) is a data file that contains no actual data, but provides a

different method of viewing the data of an accompyning data physical file(s) which it internally

references. It is similar to the concept of a "view" in SQL. A data logical file is described to the

system using DDS. When the DDS source is compiled, a *FILE object with the attribute LF-

DTA is produced.

Another *FILE object type that you may encounter in your programming courses is the device

file. A device file contains a description how data is to be presented to a program from a device

or vice versa. Two common types of device files are printer files (*FILE PRTF) and display files

(*FILE DSPF). A printer file describes the attributes that printed output will have, such as the

length and width of a printed page. A printer file can be created using the "Create Printer File"

(CRTPRTF) command. A display file describes what information is to be displayed and where it

is to be displayed on the screen of a display station. One way of defining and creating a display

file is with the Screen Design Aid (SDA) utility.

Other Object Types

A program object (*PGM) is a compiled program. The attribute for a *PGM object indicates the

language the program was written in. For instance, when a COBOL source program is compiled,

it produces an object with a type of *PGM with the attribute CBL.

An important object type on the AS/400 is the output queue (*OUTQ). On the AS/400, whenever

something is printed, the output goes to an output queue and it stays there as a spooled file. A

spooled files, like a member, is not an object itself but a subset of an object. The spooled file

stays in the output queue until it is directed to a printer or removed. An output queue has already

been created for you with the creation of your user profile. The name of the output queue is

normally the same as that of your user profile. Refer to the section "Printing Procedure" in this

manual for more information on printing spooled files.

Page 8: AS400 tips & questions

The relationships between the various objects that have been discussed in this section are as

follows:

QSYS (*LIB)

[special library]

|

| contains

|

Library (*LIB)

|

| contains

|

.------------------+----^-----------------.--------.

| | | |

Programs (*PGM) Outqueues (*OUTQ) Files (*FILE) Other

[Executable] | | objects

| contains |

Spooled Files |

[Output intended for Printer] |

|

.----------------^--.

| |

Physical Data Logical

file file

(PF) (LF-DTA)

| ^ contains

.------^-----. Member(s)

| | [Reorginized data]

Source Data

Physical Physical

File File

(PF-SRC) (PF-DTA)

| |

contains | | contains

| |

Member(s) Member(s)

[Program source] [Actual Data]

Creating a Library

A library has already been created for during user profile creation. The name of this library is

normally the same as that of your user profile. In this section, we will create another library and

use this library as an example throughout the manual. Note that you can use your default library,

i.e. the library that has the same name as that as your user profile, to store all your application

objects.

To create a library, type the CRTLIB ("Create Library") on a command line and press <F4>to

prompt on it. Type in the name of the library and enter a brief description for the library. Leave

the library type as *PROD (a production library is one that is used for normal processing).

Page 9: AS400 tips & questions

Create Library (CRTLIB)

Type choices, press Enter.

Library . . . . . . . . . . . . YOURLIB__ Name

Library type . . . . . . . . . . *PROD____ *PROD, *TEST

Text 'description' . . . . . . . Sample_Library__________________

F3=Exit F4=Prompt F5=Refresh F10=Additional parameters F12=Cancel

F13=How to use this display F24=More keys

Press <Enter>. You should see a message at the bottom of the screen saying "Library ... created".

If you see the message "Library ... already exists", it means that some other user already has a

library by the same name. Note: All libraries are on the same "level" with only QSYS above

them. If you get this message, try another name for the library. Other commands that operate on

libraries are:

DSPLIB (Display Library)

DLTLIB (Delete Library)

WRKLIB (Work with Library).

Creating a Source Physical File

Now, let's create a source physical file in the library that we have just created. To create a source

physical file, type CRTSRCPF and press <F4> to prompt on it. Supply the names for the source

file and the library that will hold it. Below, we show the display for creating a source file called

"SRCFILE" in the library "YOURLIB". Press < Enter> and you should see the message "File ...

created in library ..." at the bottom of your screen.

Create Source Physical File (CRTSRCPF)

Type choices, press Enter.

File . . . . . . . . . . . . . . SRCFILE___ Name

Library . . . . . . . . . . . YOURLIB___ Name, *CURLIB

Record length . . . . . . . . . 92_______ Number

Member, if desired . . . . . . . *NONE_____ Name, *NONE, *FILE

Text 'description' . . . . . . . Sample_Source_File___________________

F3=Exit F4=Prompt F5=Refresh F10=Additional parameters F12=Cancel

F13=How to use this display F24=More keys

Library Lists

Page 10: AS400 tips & questions

You may have noticed in the previous screen that the "Library" field defaults to the value

*CURLIB, meaning the current library. The current library is tied closely to the concept of a

library list. Before we discuss what the current library is, we first explain what a library list is. A

library list is similar in concept to the "PATH" in Unix and MS-DOS. It specifies which libraries

are to be searched and the order in which they are searched when the system looks for an object.

A library list is identified by the value *LIBL. A default library list is automatically created by

OS/400 for each job started by a user. Your default library, that is the library that has the same

name as that as your user profile, is automatically included in your library list. You can display

your library list by typing DSPLIBL and press <Enter> on a command line. The following is the

library list for the user "JOHNDOE".

Display Library List

System: MKTAS400

Type options, press Enter.

5=Display objects in library

Opt Library Type Text

__ QSYS SYS System Library

__ QHLPSYS SYS

__ QUSRSYS SYS *IN USE

__ JOHNDOE CUR JOHN DOE's default library

__ QTEMP USR

__ QGDDM USR

__ QGPL USR GENERAL PURPOSE LIBRARY

__ QMSU USR MSU generated commands and programs

__ QPAS USR

__ MBNLQ USR Common Library for MBNLQ ..

__ ONLINE USR COLLECTION - created by SQL

F3=Exit F12=Cancel F17=Top F18=Bottom

Note that you may not have all the libraries in the above list. As you can see, a library list is

divided into three parts:

system portion

which consists of the libraries that are required to run system functions

current library

which by default, is the library that has the same name as your user profile (in this case,

the library "JOHNDOE"). The current library is the first user library that is searched

before the rest of the user libraries in the list.

user portion

which consists of libraries that holds user objects. Some user libraries, such as QTEMP,

QGPL, and QGDDM come with the system while others are locally supplied. In addition,

the user can create their own libraries and add them to their library list.

Page 11: AS400 tips & questions

If a user does not specify a library name when requesting an operation on an object, the libraries

in the library list are searched for the object (starting with the system libraries, the current

library, and the user libraries). For example, assume that the user "JOHNDOE" has an executable

program (*PGM object) called "TESTPROG" in the library "YOURLIB". User "JOHNDOE"

wants to run the program (using the CALL command) and issues the command CALL TESTPROG.

A message will appear stating that the program is not found in the library list. This is because

"YOURLIB" is currently not in the library list. If, however, "TESTPROG" is qualified by

"YOURLIB" as CALL YOURLIB/TESTPROG then the program can be found and executed.

To add a library to the library list, type the "Add Library List Entry" (ADDLIBLE) command,

followed by the library name (or prompt on the command) ADDLIBLE YOURLIB.

If "JOHNDOE" now issues the the unqualified CALL command, the program can now be

located and executed since the library that contains the program is now in the library list. You

can edit your library list using the EDTLIBL command and remove a library list entry using the

RMVLIBLE command. "YOURLIB" can be made the current library by typing CHGCURLIB

YOURLIB.

Some commands automatically default to the current library (*CURLIB), such as the

CRTSRCPF command. Note, however, that both commands (ADDLIBLE and CHGCURLIB)

are only effective for a particular session. Next time, when "JOHNDOE" signs on, "YOURLIB"

will no longer be in their library list and hence, no longer the current library. In the section

"Steps in Developing a Program", we will create an "initial program" that will automatically run

these commands when a user signs on the system.

Using the Program Development Manager (PDM)

The Program Development Manager (PDM) is a set of utilities under OS/400 designed to

simplify the creation and development of software. It automates file and member creation,

editing, compilation and program execution, and allows the programmer to manage their

environment from a set of standard menus.

Starting PDM

PDM may either be started using the command STRPDM (for Start PDM,) which will produce a

menu of options for the level on which the user wishes to work (libraries, objects, or members,)

or using one of three commands which indicate the level at which the user would like to work:

WRKLIBPDM -- Work with libraries using PDM

WRKOBJPDM -- Work with objects using PDM

WRKMBRPDM -- Work with file members using PDM

Work with Objects

Page 12: AS400 tips & questions

One of the most commonly used commands to start PDM is WRKOBJPDM. This allows the user

to work with objects inside a library. Type WRKOBJPDM and press <F4> to prompt on it.

Work with Objects Using PDM (WRKOBJPDM)

Type choices, press Enter.

Library . . . . . . . . . . . . *PRV______ *PRV, name, *CURLIB

Object . . . . . . . . . . . . . *ALL______ *PRV, name, *generic...

Object type . . . . . . . . . . *ALL______ *PRV, *ALL, *ALRTBL, *AUTL..

Object attribute . . . . . . . . *ALL______ *PRV, attribute, *generic...

F3=Exit F4=Prompt F5=Refresh F12=Cancel F13=How to use this display

F24=More keys

The *PRV value on the "Library" field indicates that the default is to work on the library the user

last worked with. These may be replaced with the name of a specific library. The "Object" and

"Object type" options allow the user to limit which objects will be displayed. Type WRKOBJPDM

and prompt with <F4>.

Work with Objects Using PDM (WRKOBJPDM)

Type choices, press Enter.

Library . . . . . . . . . . . . YOURLIB___ *PRV, name, *CURLIB

Object . . . . . . . . . . . . . *ALL______ *PRV, name, *generic*...

Object type . . . . . . . . . . *ALL______ *PRV, *ALL, *ALRTBL, *AUTL..

Object attribute . . . . . . . . *ALL______ *PRV, attribute, *generic...

F3=Exit F4=Prompt F5=Refresh F12=Cancel F13=How to use this display

F24=More keys

The screen resulting from command WRKOBJPDM, with the library specified as YOURLIB,

and *ALL on the other options, is shown below.

Work with Objects Using PDM

Library . . . . . YOURLIB___ 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

Page 13: AS400 tips & questions

__ SRCFILE *FILE PF-SRC Sample Source File

Bottom

Parameters or command

===> ________________________________________________________________

F3=Exit F4=Prompt F5=Refresh F6=Create

F9=Retrieve F10=Command entry F23=More options F24=More keys

Presently, there should be just one object in the library, the source physical file "SRCFILE" that

you have just created.

PDM Options

Options are displayed across the top of the screen (for a list of all the options available in PDM,

see Table 1 at the end of this section.) Each option is an action which may be performed on an

object by placing its number on the "Opt" line next to the object and pressing the < Enter> key.

This method of specifying actions on a form listing the objects available is consistent throughout

PDM.

There are two important special features which this method of specifying actions offers: First,

the options support the prompting facility, and second, multiple objects may be operated on in

succession. To use the prompting facility, simply press <F4> while an option number is on one

of the "Opt" lines. PDM will present the prompt screen for the command associated with that

option number. Multiple objects may be operated on sequentially by placing numbers on more

than one Opt line. For example, assume we have two source files in "YOURLIB". You can type

"5" (Display) against one and type "7" (Rename) against the other. Pressing <Enter> causes

PDM to process each option in turn.

More on PDM levels

Moving down levels in PDM is accomplished using the "12" (Work With...) option. At the

WRKOBJPDM screen, the action of this option depends on the file type. Placing a 12 on the line

next to an item on this display will:

If the item is of type *FILE, go to the WRKMBRPDM display for that file (there are

different types of WRKMBRPDM displays for source and data files.)

If the item is of type *OUTQ, go to the "Work With Output Queue" display, allowing the

user to work with spooled files.

If the item is of type *PGM, present a display allowing the user to call the program,

change its attributes, etc. (programs may also be called from the WRKOBJPDM screen

by using the 16 option.)

When this method of changing levels is used, pressing <Enter> or <F12> (cancel) with no

options on the screen returns to the previous level.

Page 14: AS400 tips & questions

Work with Members

The WRKMBRPDM display is the bottom level of PDM. When working with a source physical

file at this level, option 2 runs the STRSEU command to begin editing a member and 14 calls the

compiler for a program of that type (if specific compiler options are needed, for instance the

*DEBUG option to include debugging information in the program, remember that the prompting

facility may be invoked on any PDM option.) When working with a physical data file, the

"2=change" option is no longer valid. However, the "18" option may be invoked to modify the

file using DFU (Data File Utility).

Type "12" against "SRCFILE" to work with it. The following "Work with Members using PDM"

screen appears:

Work with Members Using PDM

File . . . . . . SRCFILE___

Library . . . . YOURLIB___ Position to . . . . __________

Type options, press Enter.

2=Edit 3=Copy 4=Delete 5=Display 6=Print

7=Rename 8=Display description 9=Save 13=Change text ...

Opt Member Type Text

(No members in file)

Parameters or command

===> ________________________________________________________________

F3=Exit F4=Prompt F5=Refresh F6=Create

F9=Retrieve F10=Command entry F23=More options F24=More keys

Presently, there are no members in "SRCFILE". Let's create a member. To do that, press <F6>

(Create). This will automatically invoke the SEU editor. Enter the name of the new source

member and for its source type, enter "TXT" (i.e. the source member will contain only plain

text). Press <Enter> .

Start Source Entry Utility (STRSEU)

Type choices, press Enter.

Source file . . . . . . . . . . > SRCFILE___ Name, *PRV

Library . . . . . . . . . . . > YOURLIB___ Name, *LIBL, *CURLIB, *PRV

Source member . . . . . . . . . SRCMBR____ Name, *PRV, *SELECT

Source type . . . . . . . . . . TXT_______ Name, *SAME, BAS, BASP, C...

Text 'description' . . . . . . . Sample_Source_Member____________________

Page 15: AS400 tips & questions

Bottom

F3=Exit F4=Prompt F5=Refresh F12=Cancel F13=How to use this display

F24=More keys

You will now be inside the SEU editor. For now, press <F3> to quit and type "Y" in the

"Change/Create member" field to save the source member. Later on, in the section on SEU we

will use this source member. On return to the WRKMBRPDM screen, you will notice that

"SRCMBR" is now in "SRCFILE".

The "Work with Members using PDM" screen can be accessed directly using the

WRKMBRPDM command. Type this command and press <F4> to prompt on it. To work with

the member that we have just created, enter the names of the library and file as shown below. If

you have many members in your file, you can use the "Member" and/or "Member Type" fields to

narrow down the number of members to work with.

Work with Members Using PDM (WRKMBRPDM)

Type choices, press Enter.

File . . . . . . . . . . . . . . SRCFILE___ *PRV, name

Library . . . . . . . . . . . YOURLIB___ *PRV, name, *LIBL, *CURLIB

Member . . . . . . . . . . . . . *ALL______ *PRV, name, *generic...

Member type . . . . . . . . . . *ALL______ *PRV, type, *generic...

F3=Exit F4=Prompt F5=Refresh F12=Cancel F13=How to use this display

F24=More keys

Work with Libraries

Briefly, the WRKLIBPDM command lets you work with a library or libraries. You will probably

use this command least among the three PDM commands. You can work with the contents of a

library by typing 12 against it. This will bring up the "Work with Objects using PDM" screen for

that library.

Table 1: Options in PDM (Some options may not be valid at some levels.)

2: Change Modify an object or edit a source member

3: Copy Duplicate an object

4: Delete Remove an object from storage

5: Display Display the contents of an object

6: Print Copy a source member to an output queue

7: Rename Change an object's name

8: Display Descrip. Show summary information about an object

9: Save Save an object to offline storage

10: Restore Retrieve an object from offline storage

11: Move Move an object to another library

Page 16: AS400 tips & questions

12: Work With Perform operations on the contents of an object

13: Change Text Change the text description line for an object

14: Compile Compile a source physical file member

15: Copy File Copy a *FILE object (has special options)

16: Run Run an object of type *PGM

17: Change Using SDA Change a screen design (in a PF-SRC) using SDA

18: Change Using DFU Use DFU to change a PF-DTA member

25: Find String Find a string of characters in an object

Table 2: Function Keys in PDM

F1: Help Obtain help on an area of PDM

F3: Exit Exit PDM or current operation

F4: Prompt Display prompt screen for options on screen

F5: Refresh Redraw the screen with updated information

F6: Create Create a library, file, or member

F9: Retrieve Recall a previous command to the command line

F10: Command Entry Display an OS/400 command entry screen

F11: Display Toggle Switch to/from brief display mode

F12: Cancel Cancel an operation

F13: Repeat Copy an option number to all lines

F14: Source Type Toggle Switch between date and type display in PF-SRC

F15: Sort Change member list sort criteria

F16: User Options Specify user-defined commands to PDM

F17: Subset Limit the list on the screen to certain types

F18: Change Defaults Change PDM user settings

F21: Print List Print the object list on the screen

F23: More Options Display more PDM option numbers, if available

F24: More Keys Display more function keys, if available

Control Language Command Syntax

The purpose of this section is to provide a more formal presentation of CL commands. As you

would probably know by now, a CL command is a way of of invoking functions and calling

system services. A CL command is made up of two parts: (1) a command name and (2)

parameters.

Command Structure

First, let's consider the command name. A command is made made up of two components:

1. a VERB and

2. a SUBJECT. The verb consists of three characters and is the "action" component of the

command. Some common verbs and their meanings are shown below:

o ADD - Add Item

o CHG - Change

o CPY - Copy

o CRT - Create

o DLT - Delete

o DSP - Display item

Page 17: AS400 tips & questions

o END - Stop a program which was started with a STR

o GRT - Grant

o MOV - Move

o RMV - Remove item

o RST - Restore

o RTV - Retrieve

o RVK - Revoke

o SET - Set

o SND - Send

o STR - Start (a program or utility)

o WRK - Work with

The subject component of the command specifies the item that the verb acts on. Some examples

of verb/subject combinations are:

CRTSRCPF - Create Source Physical File

WRKOBJPDM - Work with Objects Using PDM

STRPDM - Start PDM

ADDLIBLE - Add Library List Entry

CL commands can be found in several ways. The command GO CMDxxx can be used to get a

menu of commands related to xxx (where xxx can be a verb or subject). Another way of finding

commands is to press <F4> on any command line. This will bring up the "Command Grouping

Menu" where each option represents a group of related commands. The first option SLTCMD

("Select Command by Name") can be used to obtain a list of commands using a wildcard

character (e.g. SLTCMD CR* will list all commands starting with CR).

Parameters

A CL command can have zero, one, or more parameters. A command may have some parameters

that are required and some that are optional. A system-defined default value (prefixed by "*") is

usually assigned to an optional parameter if the user does not specify a value for it.

So far in this manual, we have been using the <F4> prompt facility for specifying parameters.

Another way of specifying parameters is the free format or command line method. You may

want to use this method if you remember exactly what parameter information is needed for a

command. Using this method, parameters can be specified in:

1. keyword form,

2. positional form, or

3. a combination of both.

A parameter that is specified in keyword form will have a keyword followed immediately by a

value (or list of values). For example, WRKOBJPDM LIB(YOURLIB) OBJ(SRCFILE) There must

not be any blanks between the keyword and the left parenthesis. Parameters in keyword form can

be specified in any order.

Page 18: AS400 tips & questions

In the positional form, parameters are specified without keywords. The parameter values must be

positionally matched with the keywords in the parameter set for that command. The above

example can be specified in positional form as follows WRKOBJPDM YOURLIB SRCFILE.

Positional parameters are often limited to the first three or four parameters. If you do not want to

specify a value for one of the parameters, the system-defined value, *N, can be entered in the

position of that parameter. For example, the following command will display all objects of type

*FILE in the library YOURLIB. WRKOBJPDM YOURLIB *N *FILE *N will map to the default

value for that parameter, which in this case is *ALL. Note that when using the WRKMBRPDM

command, the file name and library name fields are actually one parameter (a file name plus a

library qualifier). If the reference is to a file in a specific library, the file name must be qualified

with a slash, "/", character in both keyword and positional forms WRKMBRPDM YOURLIB/SRCFILE SRCMBR WRKMBRPDM FILE(YOURLIB/SRCFILE) MBR(SRCMBR)

If only the file name is specified, as in the following statement WRKMBRPDM SRCFILE the library

qualifier will default to the library list (*LIBL).

A CL command can use a combination of both positional and keyword parameters, for example

WRKMBRPDM YOURLIB/SRCFILE MBRTYPE(TXT). Note that the "Member" parameter, which is in

between the second and third parameters in the parameter set, is omitted. One restriction of this

mixed form of specifying parameters is that positional parameters cannot follow keyword

parameters. For example, the following is invalid WRKOBJPDM LIB(YOURLIB) SRCFILE.

Using the SEU Editor

Introduction

The IBM AS/400 provides an integrated set of Application Development Tools (ADT) to design,

develop and maintain applications. One such tool is the Programming Development Manager

(PDM) that offers the following:

Integrated application development environment.

List-oriented selection of items for development or maintenance.

Extendable interface to tools through user-defined options.

Another tool is the Source Entry Utility (SEU) that offers a full screen editor providing syntax

checking of source statements. PDM is one tool that may be used to access the SEU.

In this SEU tutorial, we will use the source member we created in the previous section.

Starting the Editor

Type STRPDM (Start Program Development Manager) on any command line, and press <Enter> .

The PDM menu is displayed. Choose option 3 to Work with members. The "Work with

members" screen shows up. You can also reach this screen by typing WRKMBRPDM (Work with

Page 19: AS400 tips & questions

members using PDM) on any command line and pressing <F4> . In either case, supply the

necessary source file (SRCFILE) and library (YOURLIB) information and press Enter.

Type 2 on the "Opt" line to edit the source member "SRCMBR".

Press <Enter> . You are now in the full-screen EDIT mode.

Columns . . . .: 1 80 Edit

SEU==>_______________________________________________________ SRCMBR

FMT ** ...+... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5...+... 6 ...+.

*************** Beginning of data ********************************

'''''''

'''''''

'''''''

'''''''

'''''''

'''''''

'''''''

****************** End of data ***********************************

F3=Exit F4=Prompt F5=Refresh

F10=Top F11=Bottom F24=More keys

If you press <Enter> without typing anything, the screen readjusts as shown:

Columns . . . .: 1 80 Edit

SEU==> _______________________________________________________ SRCMBR

FMT ** ...+... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5...+... 6 ...+.

*************** Beginning of data *********************************

****************** End of data ************************************

F3=Exit F4=Prompt F5=Refresh

F10=Top F11=Bottom F24=More keys

Type I (for insert) on the first line as shown and press <Enter> .

Columns . . . .: 1 80 Edit

SEU==> _______________________________________________________ SRCMBR

FMT ** ...+... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5...+... 6 ...+. I

*************** Beginning of data *********************************

****************** End of data ************************************

Page 20: AS400 tips & questions

Now, you may start typing in the desired text. Below, we show a sample TEXT document that

will be used in the next section for illustrating the use of various SEU line commands.

Columns . . . .: 1 80 Edit

SEU==> _________________________________________________________ SRCMBR

FMT ** ...+... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5...+... 6 ...+.

*************** Beginning of data *********************************

0001.00 THIS IS A TEXT DOCUMENT.

0002.00

0003.00 Begin First Block.

0004.00 Text for the first block ...

0005.00 End First Block.

0006.00

0007.00 Begin Second Block.

0008.00 Text for second block ...

0009.00 End Second Block.

0010.00

****************** End of data ************************************

Notice the sequence numbers of records at the extreme left. The sequence number field of a

record is used to specify the line commands. For more information on line commands see 'Using

SEU line commands'.

To save the current member and exit SEU follow the following procedure 'Exiting the Editor.'

Exiting the Editor

To exit SEU press <F3>. The exit display shows up:

Exit

Type choices, press Enter.

Change/create member . . . . . . . Y Y=Yes, N=No

Member . . . . . . . . . . . . . SRCMBR____ Name

File . . . . . . . . . . . . . . SRCFILE___ Name

Library . . . . . . . . . . . . YOURLIB___ Name

Text . . . . . . . . . . . . . . Description_for_the_member._____

Resequence member . . . . . . . . Y Y=Yes, N=No

Start . . . . . . . . . . . . . 0001.00___ 0000.01 - 9999.99

Increment . . . . . . . . . . . 01.00____ 00.01 - 99.99

Print member . . . . . . . . . . . N Y=Yes, N=No

Page 21: AS400 tips & questions

Return to editing . . . . . . . . . N Y=Yes, N=No

Go to member list . . . . . . . . . N Y=Yes, N=No

F3=Exit F5=Refresh F12=Cancel

If you wish to save the changes you have made, you may simply press < Enter> .

The default values supplied for most of the options above are self-explanatory. However, note

the following:

If you have decided not to quit the editor, press <F12> to cancel the exit display. This

returns you back to the editing mode.

The default value for 'Change/create member' is Y, if the member is modified, otherwise

N. Type N in this field only if you do not want to save changes made to your member.

The default value for 'Return to editing' option is N, if your member did not have any

syntax errors. However, if syntax errors do persist, the system supplies Y in this field and

returns back to the editing mode ( unless you explicitly type N and force it to exit ).

Using Line Commands

SEU supports various line commands that guide us in editing an existing member. For example,

command C is used to copy lines, command M for moving lines and so on. The SEU line

commands are entered over the digits that make up the sequence number of a record. In the

following discussion, a sample TEXT document is used to illustrate the use of the various

commands. Note: If you type a line command, and then you decide to cancel it, use <F5> to

refresh the screen.

To edit a member that has already been created,

Use the command WRKMBRPDM as explained in the previous section, reach the 'Work

with members using PDM' display.

Use the tab keys to position the cursor at the desired member, and type option 2. The

screen for editing that member will show up.

For example, to edit the member SRCMBR created before, type WRKMBRPDM YOURLIB/SRCFILE

on any command line, and press < Enter> . From the "Work with members using PDM" display,

type option 2 in front of member SRCMBR and press <Enter> . The edit display for this member

is shown:

Columns . . . .: 1 71 Edit YOURLIB/SRCFILE

SEU==> _________________________________________________________ SRCMBR

FMT CB

......-A+++B++++++++++++++++++++++++++++++++++++++++++++++++++++++

*************** Beginning of data ********************************

Page 22: AS400 tips & questions

0001.00 THIS IS A TEXT DOCUMENT.

0002.00

0003.00 Begin First Block.

0004.00 Text for the first block ...

0005.00 End First Block.

0006.00

0007.00 Begin Second Block.

0008.00 Text for second block ...

0009.00 End Second Block.

0010.00

****************** End of data ***********************************

F3=Exit F4=Prompt F5=Refresh

F10=Top F11=Bottom F24=More keys

Inserting a line

To insert a line after a particular record, type I (insert) on the sequence number field of that

record, and press <Enter> .

*************** Beginning of data ********************************

I001.00 THIS IS A TEXT DOCUMENT.

0002.00

0003.00 Begin First Block.

0004.00 Text for the first block ...

0005.00 End First Block.

0006.00

0007.00 Begin Second Block.

0008.00 Text for second block ...

0009.00 End Second Block.

0010.00

****************** End of data ***********************************

F3=Exit F4=Prompt F5=Refresh

F10=Top F11=Bottom F24=More keys

The screen adjusts as shown below. Type in the line to be inserted and press <Enter> .

Columns . . . .: 1 71 Edit YOURLIB/SRCFILE

SEU==> ________________________________________________________ SRCMBR

FMT CB

......-A+++B+++++++++++++++++++++++++++++++++++++++++++++++++++++ +

*************** Beginning of data ********************************

0001.00 THIS IS A TEXT DOCUMENT.

''''''' PROGRAM-ID. SAMPLE.

0002.00

0003.00 Begin First Block.

0004.00 Text for the first block ...

0005.00 End First Block.

Page 23: AS400 tips & questions

0006.00

0007.00 Begin Second Block.

0008.00 Text for second block ...

0009.00 End Second Block.

0010.00

****************** End of data ***********************************

F3=Exit F4=Prompt F5=Refresh

F10=Top F11=Bottom F24=More keys

Copying a line

To copy the "Begin First Block" line to the end of the program, type C (copy) in the sequence

number field, and press Enter. Note the message on the top that indicates a pending Copy line

command.

Columns . . . .: 1 71 Edit YOURLIB/SRCFILE

SEU==> _________________________________________________________ SRCMBR

FMT CB

......-A+++B++++++++++++++++++++++++++++++++++++++++++++++++++++++

*************** Beginning of data ********************************

0001.00 THIS IS A TEXT DOCUMENT.

0001.01 It illustrates the use of SEU line commands.

0002.00

C Begin First Block.

0004.00 Text for the first block ...

0005.00 End First Block.

0006.00

0007.00 Begin Second Block.

0008.00 Text for second block ...

0009.00 End Second Block.

0010.00

****************** End of data ***********************************

Type A (after) on the last line as shown, and press Enter. This results in the pending line to be

copied after the line you have indicated.

Columns . . . .: 1 71 Edit YOURLIB/SRCFILE

SEU==> __________________________________________________________ SRCMBR

FMT CB

......-A+++B++++++++++++++++++++++++++++++++++++++++++++++++++++++

*************** Beginning of data********************************

0001.00 THIS IS A TEXT DOCUMENT.

0001.01 It illustrates the use of SEU line commands.

0002.00

C Begin First Block.

0004.00 Text for the first block ...

0005.00 End First Block.

0006.00

Page 24: AS400 tips & questions

0007.00 Begin Second Block.

0008.00 Text for second block ...

0009.00 End Second Block.

A010.00

****************** End of data ************************************

The program looks as shown below, after the copy. To move a single line, use the command M

(move) and follow the procedure as explained above for copy.

*************** Beginning of data ********************************

0001.00 THIS IS A TEXT DOCUMENT.

0001.01 It illustrates the use of SEU line commands.

0002.00

0003.00 Begin First Block.

0004.00 Text for the first block ...

0005.00 End First Block.

0006.00

0007.00 Begin Second Block.

0008.00 Text for second block ...

0009.00 End Second Block.

0010.00

0011.00 Begin First Block.

****************** End of data ***********************************

Deleting a line

To delete a line, type D (delete) in front of it and press <Enter> . The line that was just copied

may be deleted as shown below:

*************** Beginning of data*****************************

0001.00 THIS IS A TEXT DOCUMENT.

0001.01 It illustrates the use of SEU line commands.

0002.00

0003.00 Begin First Block.

0004.00 Text for the first block ...

0005.00 End First Block.

0006.00

0007.00 Begin Second Block.

0008.00 Text for second block ...

0009.00 End Second Block.

0010.00

D011.00 Begin First Block.

****************** End of data ***********************************

Block Move

Page 25: AS400 tips & questions

To move a block, type MM at the beginning and the end of the block, and press <Enter> . Now,

the target for the move has to be specified. The Block Move is illustrated below; the first block

of text being moved after the second one.

*************** Beginning of data ********************************

0001.00 THIS IS A TEXT DOCUMENT.

0001.01 It illustrates the use of SEU line commands.

0002.00

MM Begin First Block.

0004.00 Text for the first block ...

0005.00 End First Block.

MM

0007.00 Begin Second Block.

0008.00 Text for second block ...

0009.00 End Second Block.

0010.00

****************** End of data ***********************************

Type A on the last line to move the block to the end of the program.

*************** Beginning of data ********************************

0001.00 THIS IS A TEXT DOCUMENT.

0001.01 It illustrates the use of SEU line commands.

0002.00

MM Begin First Block.

0004.00 Text for the first block ...

0005.00 End First Block.

MM

0007.00 Begin Second Block.

0008.00 Text for second block ...

0009.00 End Second Block.

A010.00

****************** End of data ***********************************

Here is the member after the move:

*************** Beginning of data ********************************

0001.00 THIS IS A TEXT DOCUMENT.

0001.01 It illustrates the use of SEU line commands.

0002.00

0007.00 Begin Second Block.

0008.00 Text for second block ...

0009.00 End Second Block.

0010.00

0011.00 Begin First Block.

0012.00 Text for the first block ...

0013.00 End First Block.

0014.00

Page 26: AS400 tips & questions

****************** End of data ***********************************

Block Copy

Enclose the block to be copied within CC commands, and specify the target. The block copy

resembles the block move explained above. Note below, that B is specified as the target, to copy

the block before the indicated line.

*************** Beginning of data ********************************

0001.00 THIS IS A TEXT DOCUMENT.

0001.01 It illustrates the use of SEU line commands.

0002.00

CC Begin Second Block.

0008.00 Text for second block ...

0009.00 End Second Block.

CC

0011.00 Begin First Block.

0012.00 Text for the first block ...

0013.00 End First Block.

B

****************** End of data ***********************************

Block Delete

To delete a block, enclose it within DD commands and press <Enter> . The block that was just

copied may be deleted as shown:

*************** Beginning of data ********************************

0001.00 THIS IS A TEXT DOCUMENT.

0001.01 It illustrates the use of SEU line commands.

0002.00

0007.00 Begin Second Block.

0008.00 Text for second block ...

0009.00 End Second Block.

0010.00

0011.00 Begin First Block.

0012.00 Text for the first block ...

0013.00 End First Block.

DD Begin Second Block.

0013.02 Text for second block ...

0013.03 End Second Block.

DD

0014.00

****************** End of data ***********************************

The source member looks as follows, after our experimentation with the above line commands:

Page 27: AS400 tips & questions

*************** Beginning of data ********************************

0001.00 THIS IS A TEXT DOCUMENT.

0001.01 It illustrates the use of SEU line commands.

0002.00

0007.00 Begin Second Block.

0008.00 Text for second block ...

0009.00 End Second Block.

0010.00

0011.00 Begin First Block.

0012.00 Text for the first block ...

0013.00 End First Block.

0014.00

****************** End of data ***********************************

To get a complete list of commands for SEU place the cursor on the sequence number list and

press the help key.

SEU Commands

SEU commands are entered in the "SEU==>" field at the top of the screen.

FIND

Search for an occurrence of a character string. If the string contains embedded blanks,

apostrophes, or quotation marks, it should be enclosed in quotation marks. Several direction

parameters are available: N (Next), P (Previous), F (First), L (Last), and A (All). The scope of

the search can be specified using search parameters: X (excluded records) and NX (non-excluded

records). The syntax of FIND is FIND string [N,P,A,F,L] [X,NX] [column parameter].

Examples:

F XYZ

F 'hello there'

F *ERR A find all syntax errors

F "'XYZ'"

Use the F16 "Repeat Find" key to find the next occurrence of a string.

CHANGE

Find all occurrences of a character string and replace it with another string. The syntax is CHANGE fstring cstring [N,P,A,F,L] [X,NX] [column parameter]

TOP

Go to the first page of the work screen.

BOTTOM

Page 28: AS400 tips & questions

Go to the last page of the work screen.

SAVE

Save changes and continue editing. SAVE [ [ [ library/ ] file ] member ]

FILE

Save changes and exit from edit session. FILE [ [ [ library/ ] file ] member ]

CANCEL

Cancel session and exit session.

SET

See the IBM SEU manual for more information.

Function Keys in SEU

When a member is being edited, the Edit display supports a diverse set of function keys that

allow you to perform specific tasks.

_____________________________________________________________________________

_

Key Name Function

_____________________________________________________________________________

_

F1 Help Press the help key for details about the display.

F3 Exit End the current task, returns to previous entry

point.

F4 Prompt Provides assistance for the options selected

in the list or a command on a command line.

PDM will fill in the default values.

F5 Refresh Refresh the current display. Rebuilds display and

shows it again.

F10 Cursor Moves the cursor from the data area to the SEU

command line, and from the SEU command line to

the data area.

F11 Previous Record Places the previous record in the prompt.

F13 Change Session Go to the Change Session Defaults Defaults

display.

F14 Find/Change Options Go the Find/Change Options display.

F15 Browse/Copy Options Go the Browse/Copy Options display.

F16 Repeat Find Perform find or repeat current find.

F17 Repeat Change Perform change or repeat current change

function.

F18 DBCS Conversion Perform DBCS conversion.

F19 Left View the info. to the left of the current display.

F20 Right View the info. to the right of the current display.

F23 Select Prompt Go to the Select Prompt display. SEU returns

Page 29: AS400 tips & questions

to the EDIT Session and displays the prompt

after you make a selection.

F24 More keys View the other function keys available for the

current display.

Summary of Line Commands

The Sequence_number field displays the sequence number of the record and is used for entering

SEU line commands. To use a line command, type the command over the digits that make up the

sequence number.

The following is a list of all the valid commands:

A=After Move or copy records after this record.

An=After with repeat n times Move or copy records after this record and repeat these

records n times.

B=Before Move or copy records before this record.

Bn=Before with repeat n times Move or copy records before this record and repeat these

records n times.

C=Copy Line Copy this line to a specified target.

Cn=Copy n lines Copy this line plus the next n-1 lines to the specified target.

CC=Block Copy Copy all lines between the boundaries formed by the two CC commands

CR=Copy records and retain command Copy this record to the specified targets and keep

this command on the display.

CRn=Copy n records and retain command. Copy n records to the specified targets and

keep this command on the display.

CCR=Copy block records and retain command Copy the block of records defined by a

pair of CCR commands to the specified targets and keep this command on the display.

D=Delete Delete the current line.

Dn=Delete n lines Delete the current line and the next n-1 lines.

DD=Block Delete Delete all lines between the two DD boundaries.

F=Display format line

Display a format line.

I=Insert a line Insert a blank line after the current record.

In=Insert n lines Insert n blank lines after this record.

IP=Insert line and prompt Insert a blank line and display the line in a prompt.

L=Shift data 1 char left Shift data in this record one character position to the left without

losing data.

Ln=Shift data n chars left Shift data in this record n character positions to the left without

losing data.

LL=Shift block 1 char to the left Shift data defined by the boundary between and

including the two LL line commands one character position to the left without losing

data.

LLn=Shift block n chars to the left Shift data defined by the boundary between and

including the LLn and LL line commands n character positions to the left.

M=Move a line Move a line to a specified target.

Mn=Move n lines Move the current line and the following n-1 lines to a specified target.

Page 30: AS400 tips & questions

MM=Block Move Move all records between and including the boundaries defined by the

MM line commands to a specified target.

O=Overlay Overlay the current line with the first line defined by the move, copy, or copy

repeated line command.

On=Overlay n lines Overlay this line and the following n-1 lines with the first n lines

defined by the move, copy, or copy repeated line command.

OO=Block overlay Overlay all the records between and including the boundaries defined

by two OO line commands with the lines defined by the move, copy, or copy repeated

line command.

P=Display prompt Type P to display this line in a prompt.

R=Shift data 1 char right Shift data in the current record one character position to the

right without losing data.

Rn=Shift data n chars right Shift data in the current record n character positions to the

right without losing data.

RR=Block shift 1 char to the right Shift data defined by the boundary between and

including the two RR line commands one character position to the right without losing

data.

RRn=Block shift n chars to the right Shift data defined by the boundary between and

including the RRn and RR line commands n character positions to the right, without

losing data.

RP=Repeat line Repeat the current line once before the following line.

RPn=Repeat line n times Repeat the current line n times before the following line.

RPP=Block repeat Repeat all lines defined by the boundary between the two RPP line

commands.

RPPn=Block repeat Repeat all lines defined by the boundary between the two RPP line

commands n times.

SF=Show first record Show the first record of the exclude group.

SFn=Show first n records Show the first n records of the exclude group.

SL=Show last record Show the last record of the exclude group

SLn=Show last n records Show the last n records of the exclude group.

W=Display member from column 1 Display the member beginning in column 1.

Wn=Display member from column n Display the member beginning in column n.

X=Exclude Exclude the current record from the display.

Xn=Exclude plus Exclude the the current record and the next n-1 records.

XX=Block Exclude Exclude all lines between the boundaries formed by the two XX line

commands.

+ (plus sign)=Roll member forward 1 line Roll the member forward one line.

+n=Roll member forward n lines Roll the member forward n lines.

- (minus sign)=Roll member backward 1 line Roll the member backward one line.

-n=Roll member backward n lines Roll the member backward n lines.

n=Absolute Positioning Position the line identified by the sequence number(n) as the first

record on the display.

Steps in Developing a Program

Page 31: AS400 tips & questions

In this section, we are going to use a simple Control Language (CL) program to illustrate the

steps in developing, compiling, and running a program on the AS/400. We will also demonstrate

how to find compilation errors when they occur, and how to obtain information about certain

compilation and runtime errors. The intention here is not to teach CL programming.

The CL program is very simple; all it does is make the library that you have created (in my case,

YOURLIB) the current library while retaining the existing current library on the library list.

First, let's create a source physical (PF-SRC) file called QCLSRC (the IBM-supplied name for a

CL source physical file). The command line form of issuing CL commands will be used in this

section (you may want to use the <F4>prompt facility to assist you if you are not familiar with

the commands). The following creates a PF-SRC file in the library ALIBRARY. ALIBRARY

represents the library that has the same name as your user profile or your other library, that is the

one you created in an earlier section.

CRTSRCPF FILE(ALIBRARY/QCLSRC)

Once the PF-SRC file has been created, work with the file by typing:

WRKMBRPDM FILE(ALIBRARY/QCLSRC)

Then create a source member called TEST in QCLSRC by pressing <F6> . This will start the

SEU editor. Enter TEST for the name of the source member, CLP for the source type (to see

what source types are available, put the cursor on the "Source type" field and press <F4> ), and a

brief description of the source member. Once you have entered all the necessary information,

press <Enter> . You will enter a SEU editing session. Type in the following program:

*************** Beginning of data ********************************

0002.00 PGM

0003.00 DCL VAR(&OLDCURLIB) TYPE(*CHAR) LEN(10)

0004.00 RTVJOBA CURLIB(&OLDCURLIB)

0005.00 CHGCURLIB CURLIB(&YOURLIB) /* intentional error */

0006.00 ADDLIBLE LIB(&OLDCURLIB)

0007.00 ENDPGM

****************** End of data ***********************************

You can use the SEU line command, IP (insert line and prompt), to help you in selecting a CL

command. Also, note that CL programs are "free format" in that components of CL statements

do not have to be placed in particular columns on the screen (some source types, such as RPG,

are "fixed-format"; the IP line command can help enormously in coding such programs).

A CL program begins with the PGM command, which is optional if the CL program does not

receive any parameters. (Aside: If a CL program has a parameter named &MYVAR, the PGM

statement is coded as: PGM PARM(&MYVAR). The ampersand symbol, "&", denotes that

&MYVAR is a variable. In this case, &MYVAR will be used to hold the parameter's value.

Moreover, the variable &MYVAR has to be declared using the DCL command.) For more

information, the reader is referred to the IBM "CL Programmer's Guide" or the online education

Page 32: AS400 tips & questions

modules: "AS/400 Control Language Programming" in the "Tutorial Support System" course,

and the modules "Creating a Control Language Program" and "How to Use Error Handling

Facilities" in the "Facilities and Implementation" course.

The second statement declares a CL variable called &OLDCURLIB. This variable will be used

to save the name of the existing current library. The variable will be used to hold a character

string with a maximum length of 10. Note that SEU provides syntax checking for CL programs.

Remove the parameters of DCL so that the statement contains only "DCL", and press <Enter> .

SEU will highlight that statement, indicating that there is a syntax error. SEU will not let you

exit an editing session that has syntax errors unless you explicitly specify that you want to exit in

the exit screen. Put the parameters back on the DCL statement.

The RTVJOBA command, on the third statement, is used to retrieve the name of the job's

existing current library, saving it in the variable &OLDCURLIB. The reason for this step will be

explained shortly.

The CHGCURLIB command, on the fourth statement, is used to make YOURLIB the new

current library (where "YOURLIB" is any existing library that you have access to). Notice that

we have intentionally introduced an error in this statement. We have mistakenly prefixed

YOURLIB with "&", that is we really want CHGCURLIB CURLIB(YOURLIB) instead of

CHGCURLIB CURLIB(&YOURLIB).

A name with "&" as its prefix denotes that it is a CL variable. This is an error because if we

intended &YOURLIB to be a variable, it must be declared in a DCL statement. Note that SEU

cannot detect this kind of error. This error will be detected during compilation.

The ADDLIBLE command, on the fifth statement, adds the name of the former current library

(which we saved in the variable &OLDCURLIB in the RTVJOBA statement) to the library list.

This step is needed if we want this library to stay on the library list. This is because when the

CHGCURLIB command is executed, the "old" current library will not be retained on the library

list. Hence, the need to use RTVJOBA to save the name of that library, and to add it back on the

library list using ADDLIBLE. The last statement, ENDPGM, indicates the end of the CL

program. Now, exit and save the program as it is (i.e. with the error).

Compiling a Program

In the "Work with Members using PDM" screen, enter option 14 to compile the member that

contain the CL source program. Option 14, in this case, will invoke the CRTCLPGM (Create CL

Program) command. Option 14 will invoke a different "create program" command for a different

source type (e.g. if the source type is CBL, it will invoke the CRTCBLPGM command). If you

prompt on the option (ie. press <F4> when you use option 14), you will see the following screen:

Create CL Program (CRTCLPGM)

Type choices, press Enter.

Program . . . . . . . . . . . . > TEST Name, *PGMID

Library . . . . . . . . . . . > ALIBRARY Name, *CURLIB

Page 33: AS400 tips & questions

Source file . . . . . . . . . . > QCLSRC Name

Library . . . . . . . . . . . > ALIBRARY Name, *LIBL, *CURLIB

Source member . . . . . . . . . > TEST Name, *PGM

Generation severity level . . . 29 0-29

Text 'description' . . . . . . . *SRCMBRTXT

Additional Parameters

Replace program . . . . . . . . > *YES *NO, *YES

Bottom

F3=Exit F4=Prompt F5=Refresh F10=Additional parameters F12=Cancel

F13=How to use this display F24=More keys

The "Program" field specifies the name of the *PGM object that will be created if the

compilation is successful. This name defaults to name of the source member. The "Library" field

specifies the library that will contain the *PGM object. The default is the library that contains the

source member. You can change these default values. Unless you want to rename the *PGM

object or put it in another library, accept the defaults.

On pressing <Enter> , you will see a message at the bottom of the screen saying that the

compilation job has been submitted to QBATCH, which is the job queue for batch jobs. If there

are no compilation errors, you will receive a message saying that the job completed normally.

Since there is an error in the above program, a message will return saying that the job has ended

abnormally, meaning there are compilation errors. Press <Enter>to continue.

Finding Compilation Errors

To find out the cause of the compilation error, type WRKSPLF to see what's in your output

queue. There should be a spooled file with the same name as your source member (the compiler

listing) and a job log (QPJOBLOG). Type 5 against QPJOBLOG to display it. There should be a

message stating that the program was not created because of compilation error. The message will

refer you to the compiler listing of the program. Press <Enter> to exit this display. Type 5 to

display the contents of the compiler listing of the program. A segment of that listing is presented

here:

200- PGM

300- DCL VAR(&OLDCURLIB) TYPE(*CHAR) LEN(10)

400- RTVJOBA CURLIB(&OLDCURLIB)

500- CHGCURLIB CURLIB(&YOURLIB)

* CPD0727 40 Variable '&YOURLIB ' is referred to but not declared.

600- ADDLIBLE LIB(&OLDCURLIB)

700- ENDPGM

* * * * * E N D O F S O U R C E * * * *

*

5738SS1 V2R1M1 920306 Control Language YOURLIB/TEST

Cross Reference

Page 34: AS400 tips & questions

Declared Variables

Name Defined Type Length References

&OLDCURLIB 300 *CHAR 10 400 600

* CPD0791 00 No labels used in program.

* * * * * E N D O F C R O S S R E F E R E N C E

*

5738SS1 V2R1M1 920306 Control Language YOURLIB/TEST

Message Summary

Severity

Total 0-9 10-19 20-29 30-39 40-49 50-59 60-69 70-79 80-89 90-

99

2 1 0 0 0 1 0 0 0 0 0

Program TEST not created in library YOURLIB. Maximum error severity 40.

There are two errors in the listing (errors are marked with "*" in column 1): the first with a

severity of 40 and the second with severity of 0. The second error is only an information

message; it is not the cause of the compilation failure. The meaning of first error is evident; it is

the cause of the failure. You can use the DSPMSGD (Display Message Description) command to

get more information about a compilation error. For example, to get more details about the error

CPD0727 DSPMSGD RANGE(CPD0727) MSGF(QCPFMSG) where QCPFMSG is the system message

file and CPD0727 is the message ID. Let's go back to the source member and fix the problem.

Using SEU to Find Compilation Errors

You may want to use SEU to view your compiler listing instead of the way discussed above,

especially if the compiler listing is too lengthy to scan by eye. SEU provides special support for

locating compilation errors. To view a spooled file while you are in SEU, press <F15>

(Browse/Copy). Enter 2 in the selection field. Place the cursor on the "Browse/copy spool file"

field and press <F4>. Select the appropriate spool file. On return to the editing session, you

should see a split screen with the member you are editing on top and the spooled file on the

bottom. To find compilation errors, in the bottom screen type FIND *ERR on the SEU command

line (or simply, F *ERR). An advantage of using SEU for this purpose is that you can see both

the source member and the compiler listing on the same screen, and make the corrections to the

source member on the spot.

Using SEU, edit the source member to remove the ampersand, "&", from YOURLIB. The

program should compile normally after this change. To make the situation more interesting, let's

introduce another type of error. In the ADDLIBLE statement, specify some library name that you

do not own or one that you are not authorized to use. In our example, we specify a nonexistent

library called DOGNAP, that is ADDLIBLE DOGNAP. The rest of the source remain the same as

before (except for removing the ampersand character). Compile the source member (you will

probably be asked if you want to delete the existing *PGM object. Respond with a "Y"). The

program should compile normally. The *PGM object will be created in the library that contains

your source file unless you specified otherwise.

Page 35: AS400 tips & questions

Running a Program

Use the WRKOBJPDM command to work with the library that contain the *PGM object that

was created. Type 16 against the *PGM object to run/execute it. Alternatively, you can run the

program by using the CALL command (in fact, option 16 invokes the CALL command). If the

library that contains the *PGM object is in your library list, type CALL TEST on a command line.

If the library is not in your library list, you can still run the program by qualifying it with the

library name CALL ALIBRARY/TEST The example program used here does not take any input

parameters. But if you created a program that requires an input parameter(s), you can pass the

parameter value(s) by prompting on either the option 16 or the CALL command. If your program

takes more than one input parameter, type '+' on the "Parameters" field and press <Enter> . This

will bring another screen that allows you to enter multiple parameters. You can also us pass

parameters using the command line method. For example, CALL MYPROG PARM(parameter1 parameter2 ...)

Diagnosing Runtime Errors

In any case, when you run the program, you will get a runtime or object error message similar to

the one below:

Display Program Messages

Job 287471/T03/DSP02 started on 07/20/92 at 13:48:44 in subsystem QINTER

CPF2110 received by TEST at 600. (C D I R)

Type reply, press Enter.

Reply . . . ________________________________________________________

F3=Exit F12=Cancel

To find out the cause of the error, place the cursor on the message id (in this case CPF2110) and

press <F1>. You see a screen similar to the one below. The message text, in this case, indicated

clearly what the problem is, i.e. the library DOGNAP was not found. Sometimes you can obtain

additional messages by pressing <F10> to display messages in the job log.

Additional Message Information

Message ID . . . . . . : CPA0701 Severity . . . . . .: 99

Message type . . . . . : INQUIRY

Date sent . . . . . . . : 07/20/92 Time sent . . . . .: 14:00:05

From program . . . . . : QCLXERR Instruction . . . .: 0000

Page 36: AS400 tips & questions

To program . . . . . . : *EXT Instruction . . . .: 0000

Message . . . . : CPF2110 received by TEST at 600. (C D I R)

Cause . . . . . : Control language (CL) program TEST inlibrary YOURLIB

detected an error at statement number 600. Message text for CPF2110 is:

Library DOGNAP not found.

Recovery . . . : This inquiry message can be avoided bychanging the

program. Monitor for the error (MONMSG command) and perform error

recovery within the program. To continue, choose a reply value.

Possible choices for replying to message . . . . . . . . . . . . . . . :

C -- Cancel the CL program.

D -- Dump the CL program variables and cancel the CL program.

I -- Ignore the failing command.

More...

Press Enter to continue.

F3=Exit F10=Display messages in job log F12=Cancel

Again, the DSPMSGD ("Display Message Description") command can be used to obtain more

information about the error. For example, DSPMSGD RANGE(CPF2110) MSGF(QCPFMSG) where

QCPFMSG is the system message file and CPF2110 is the message ID.

Press <Enter> to cancel the program. Go back to the source member, fix the error, and

recompile. The next time you run the program, it should run without any problems. Type

DSPLIBL to check whether the library has been added and whether it has been made the current

library.

Creating an Initial Program

An initial program is similar to the AUTOEXEC.BAT file in MS-DOS. It is executed when the

user logs on. The initial program has to reside in your default library (i.e. the library with the

same name as your user profile) and it has to be named INITIALPGM. For instance, you can

make the above CL program your initial program. Rename the source member to INITIALPGM

and recompile it. If you created the source member in a another library, when you recompile it

using the option 14, press < F4>to prompt on it. Specify your default library as the library where

the *PGM object is to be stored.

Understanding Object Authorities

Introduction

To maintain security of data and/or program objects the AS/400 offers a variety of options

available to limit access to object. These authorities must be set to secure object to the level of

security required. Likewise, if objects are to be shared or used between users, the object

Page 37: AS400 tips & questions

authorities must be relaxed correctly to maintain object integrity. This section is designed to help

users maintain correct authorities and to understand the authorities on the objects that they own.

Authorities and their meanings

Object Authorities

Object authority is used to control access to an object including the ability to see an object

description, control read and write access to an object, or control an object's existence.

*OBJMGT

provides the authority to specify the security (grant/revoke object authority), move or

rename the object, and add members to database file.

*OBJEXIST

provides the authority to control the object existence and ownership. The user with this

authority can delete, save, and transfer ownership of the object.

*OBJOPR

provides the authority to look at the description of an object and use the object as

determined by the data authority that the user has to the object.

Data Authorities

Data authority is the authority to access data contained in an object, for example records in a

database file. This includes the ability to view, update, add, or delete records.

*READ

provides the authority to get the contents or an entry in an object or to run a program.

*ADD

provides the authority to add entries to an object.

*UPD

provides the authority to change the entries in an object.

*DLT

provides the authority to remove entries from an object.

Combinations of Object and Data Authorities

These are keywords, each representing predefined combination of object and data authorities.

They reduce the time required to assign specific authorities to users.

*ALL

allows the user to perform all authorized operations (object and data) on the object.

*CHANGE

provides *OBJOPR authority and all data authority.

*USE

provides *OBJOPR authority and data read authority.

*EXCLUDE

authority prevents the user from accessing the object even if *PUBLIC is authorized.

Page 38: AS400 tips & questions

In addition to these, users can create customized combinations of object and data authorities.

Changing authorities with EDTOBJAUT

We use an example here to illustrate the use of some of the types of authorities discussed above.

In this example, we want to allow a certain user to copy a member from the file "SRCFILE"

which is stored in the library "YOURLIB". First of all, we need to allow the user to have access

to the library "YOURLIB". To do that, we use the "Edit Object Authority", EDTOBJAUT,

command to edit the authority on "YOURLIB". (Note that your default library, i.e. the library

that has the same name as your user profile, is normally owned by your security officer so you

cannot change its authorities). Type EDTOBJAUT on a command line and press <F4>. Fill in

the blanks for object, library, and object type (*LIB) and press <Enter> .

Edit Object Authority (EDTOBJAUT)

Type choices, press Enter.

Object . . . . . . . . . . . . . > YOURLIB Name

Library . . . . . . . . . . . *LIBL Name, *LIBL, *CURLIB

Object type . . . . . . . . . . > *LIB *ALRTBL, *AUTL, *CFGL...

To see the detail screen as shown below, press <F11>. Note that the owner of "YOURLIB" has

*ALL authority on the object.

Edit Object Authority

Object . . . . . . . : YOURLIB Object type . . . . : *LIB

Library . . . . . : QSYS Owner . . . . . . . : JOHNDOE

Type changes to current authorities, press Enter.

Object secured by authorization list . . . . . . . . . . . .: *NONE

Object ----Object----- ----------Data-----------

User Authority Opr Mgt Exist Read Add Update Delete

JOHNDOE *ALL X X X X X X X

*PUBLIC *EXCLUDE _ _ _ _ _ _ _

F3=Exit F5=Refresh F6=Add new users F10=Grant with reference object

F11=Nondisplay detail F12=Cancel F17=Top F18=Bottom

Press <F6> to add a user to the list of users authorized to this object. Type in the name of the

user and *USE for the object authority. Press <Enter> to return to the previous screen. Notice

that *USE gives the user *OBJOPR and *READ authorities on "YOURLIB". (Note: If you want

Page 39: AS400 tips & questions

to edit a specific authority, type "X" in the position relating to that authority to grant authority or

a space to delete that authority.)

Next, we need to allow the user access to the file "SRCFILE". Use EDTOBJAUT to edit the

authority on the file "SRCFILE". Type EDTOBJAUT OBJ(YOURLIB/SRCFILE) OBJTYPE(*FILE)

or use the prompt to fill in the parameters. Press <F6> to add the user to the authorization list

with *USE authority. This will allow them to do perform various operations on "SRCFILE"

including copying members from the file. To allow them to copy the entire file (i.e.

"SRCFILE"), *OBJMGT must be granted. To do that, type "X" under "Mgt" in the detail screen

for that user. Note that the object authority changes from *USE to USER DEF (meaning a

customized authority).

Changing Authorities with GRTOBJAUT and RVKOBJAUT

To use GRTOBJAUT and RVKOBJAUT type the command and prompt <F4>. Fill in the library

name, object name, object type along with the user you are granting authorities and the

respective authority being granted. At any time press <F1> for more help.

Sending and Receiving Network Files

Users can send and receive network files to and from each other. The "Send Network File"

(SNDNETF) command can be used to send a member of a physical database file (PF-DTA or

PF-SRC) to another user. In the example shown below, the member "SNDMBR" of the physical

database file "SNDFILE" (which is contained in the library "SNDLIB") is to be sent to the user

"RCV". "MKTAS400" is the address of the AS/400 at Minnesota State University, Mankato.

When the network file arrives at its destination, a message is sent to both the sender and receiver.

Send Network File (SNDNETF)

Type choices, press Enter.

File . . . . . . . . . . . . . . > SNDFILE___ Name

Library . . . . . . . . . . . > SNDLIB____ Name, *LIBL, *CURLIB

User ID: _

User ID . . . . . . . . . . . > RCV_______ Character value

Address . . . . . . . . . . . > MKTAS400__ Character value

+ for more values _

Member . . . . . . . . . . . . . > SNDMBR____ Name, *FIRST

Additional Parameters

To file type . . . . . . . . . . *FROMFILE_ *FROMFILE, *DATA

VM/MVS class . . . . . . . . . . A A, B, C, D, E, F, G, H, I

Send priority . . . . . . . . . *NORMAL__ *NORMAL, *HIGH

F3=Exit F4=Prompt F5=Refresh F12=Cancel F13=How to use this display

F24=More keys

Page 40: AS400 tips & questions

The receiver will have to run the "Work with Network Files" (WRKNETF) command to inspect

their network files.

Work with Network Files (WRKNETF)

User . . . . . . . . . . . . : RCV_______

User ID/Address . . . . . . : RCV_______ MKTAS400

Type options, press Enter.

1=Receive network file 3=Submit job 4=Delete network file

5=Display physical file member

File -------From-------

----Arrival----

Opt File Member Number User ID Address Date Time

__ SNDFILE SNDMBR 1 SENDER MKTAS400 08/26/92 16:37

F3=Exit F4=Prompt F5=Refresh F9=Retrieve F11=Display type/records

F12=Cancel

Type 1 in the "Opt" blank in front of the network file to receive and press <F4>to prompt. The

following screen will show up.

Receive Network File (RCVNETF)

Type choices, press Enter.

From file . . . . . . . . . . . > 'SNDFILE'__ Character value

To data base file . . . . . . . *FROMFILE__ Name, *FROMFILE

Library . . . . . . . . . . . *LIBL____ Name, *LIBL, *CURLIB

Member to be received . . . . . > 'SNDMBR'__ Character value, *ONLY

To member . . . . . . . . . . . *FROMMBR____ Name, *FROMMBR, *FIRST

F3=Exit F4=Prompt F5=Refresh F10=Additional parameters F12=Cancel

F13=How to use this display F24=More keys

Fill in the "To data base file", "Library", and "To member" blanks with the appropriate receiving

file, library and member names and press <Enter>. Note that the receiving file must already exist

before trying to receive members.

Printing Procedure

When programs on the AS/400 produce output intended to be printed the material does not go

directly to the printer. Instead the output is bundled together with other output in an object called

an "output queue" (*OUTQ). These sub objects are called "spooled files." To send these spooled

Page 41: AS400 tips & questions

files to a printer, first you must work with your output queue; then, change the attributes of the

desired spooled file, specifying the correct print device name.

There are several ways by which spooled files are generated. Here are some:

From the WRKMBRPDM display, option 6 in front of the desired member will generate

a spooled file that is your program member.

Pressing the Print Screen key (<Shift><Print Screen>on the PS/2 running PC-Support or

<Ctrl>p on the ASCII connections) will generate a spooled file of the current display.

Note that if you do a print screen, you will have to press the <Reset>key to clear the

message at the bottom of the screen in order to continue your session.

The system automatically generates spooled files in some cases like presenting job log,

information on processed records for a database file and abnormal job end conditions.

Moving a Spooled File to a Writer

To get a physical copy of a spooled file on your output queue, two facts must be true. First, the

spooled file must be placed on a started writer and second, the spooled file must have a status of

released. To work with your spooled files on your output queue type WRKSPLF and press <Enter>.

This screen allows you to do many things with your spooled files.

Note: If this is the first time that you are using the WRKSPLF command, you should change the

"assistance level" for this screen. To do this press <F21>and change the assistance level from

"basic" to intermediate". This will gives you more features on the screen. Try pressing the

<F10>or <F11>keys to obtain different views of your spooled files.

Typing 2 in the option field of spooled file in the WRKSPLF screen will change the spooled

file's attributes. The attributes that you will be interested in are the "Print device" and "Save file".

By changing the attribute "Print device" from "*OUTQ" to a valid printer (use the WRKWTR

command to find out which printers are available), you will move your spooled file from your

output queue to a printer writer. The printer writer names at MSU are:

Printer Name Width/Paper Printer Type Location

PRT01 132 Col. 11" Line Printer Morris Hall

VAXPRTS2 132 Col. 11" Line Printer MSU ACC

PS/2 printers 132/80 8.5" Dot Matrix MSU ACC Lab Rooms

If "Save file" is changed from "*NO" to "*YES" the spooled file will not be deleted after the file

has been printed.

Typing 3 in the option field of spooled file in the WRKSPLF screen will keep the spooled file

from printing if placed on a printer writer and change the status to *HLD.

Typing 4 in the option field of spooled file in the WRKSPLF screen will delete the spooled file

from your output queue. Spooled files should be deleted as soon as they are not needed to reduce

clutter in your output queue.

Page 42: AS400 tips & questions

Typing 5 in the option field of spooled file in the WRKSPLF screen will allow you to view your

spooled file.

Typing 6 in the option field of spooled file in the WRKSPLF screen will will release a file that is

held to become available to print and will change its status to *RDY.

If you printed to VAXPRTS2, your printouts can be picked up in the ACC printer area at any

time. VAXPRTS2 is a printer that is connected to VAX1. The printer will never say it is started

although it actually is. Normally you will not be authorized to print to writer PRT01. This printer

is the system printer.

Printing to a PS/2 Printer

To see which PS/2 printers are available for printing from the AS/400, type WRKWTR ("Work with

Writers"). The name of the printer is: "PC0" (i.e. "P" + "C" + zero) + the number of the PS/2 to

which the printer is connected + "S2" (e.g. PC0614S2). Make sure that the printer you want to

print to has been started. For the printer to be started, the PS/2 workstation that is connected to

the printer must be signed on to the AS/400. Also, make sure that the printer is ready for

printing. Press <Alt><Esc>on the computer that is attached to the printer to display the status of

the printer; make sure it says "Ready". If not, select the "stop" option and then select "start". Also

make sure the printer's status is "ONLINE".

Step by Step Printing Example

Type WRKSPLF { or OQ } Press <Enter>.

This will allow you to work with your spooled files.

Use the <Field EXIT>key or <Tab>to move to the desired spool file.

This will move us to the correct spool file option field.

Type 5 in the option field.

This will mark the spool file for displaying.

Press <Enter> .

This will display the spool file.

Press <Enter>.

This will bring you back to the work with spool file screen.

Press 2 <Enter>.

This will permit you to change the spool file attributes.

Type in the name of the printer <Enter>.

This will move the file to the printer writer.

Press the <F5>key.

This will refresh the screen to show you the current status of your spooled files.

If the STS (status) is RDY or WTR the printer will print your spooled file. If the status is HLD

then release it by typing a 6 in the option field of the spooled file and press <Enter>.

More Printing Help

For more help on printing type STRSCHIDX <Enter>then type SPOOLED QUEUES <Enter>.

Page 43: AS400 tips & questions

Common Problems

Note that the command keys used in this section are those of the PS/2 running PC Support.

Stopping Infinite Loops/Ending a Previous Request

If you have issued a command and it is taking too long finish it may be an infinite, endless, loop.

To stop your infinite loop:

Press <Left Ctrl> (this will reset any keyboard errors)

Press <Alt><Print Screen>(this sequence is call "System Request")

Type 2. (This is the option on System Request to end a previous request.)

Press <Enter> . Note: You can also press <Alt><Print Screen>and press <Enter>to

display a menu of system requests, and then select the appropriate command.

Ending Disconnected Jobs with Infinite Loops

If for some reason you have been disconnect from the system while executing an infinite loop

request the job may continue to execute. This will cause the system to run very slowly. To end

the disconnected job:

On a command line, type the "Work with Active Jobs" command: WRKACTJOB and

press <Enter> . The locally-defined alias for WRKACTJOB, AJ, can also be used.

On the "Work with Active Jobs" display, type option 4 (End) against the job that is

causing the loop and press <F4>to prompt on the option. In the "How to end" field, type

in *IMMED i.e. to end the job immediately.

Press <Enter>.

Out of Storage Quota Errors

Depending on the specific class that requires use of the AS/400 there is a maximum storage

quota allocated to your user profile. You can see this information by typing: DSPUSRPRF

username. Because OS/400 retains every version of a *PGM object that results from a

compilation, your storage can be used up very quickly. When you have exceeded (or nearly

exceeded) your storage quota and you try to start, for example, SEU, you may get an error

message "Error found on SEU command". To deal with this problem, you must clear the *PGM

objects from library QRPLOBJ. To do this type WRKOBJPDM QRPLOBJ. You may get an authority

problem do to the fact that you do not own all of the object in that library. The command will

clear your objects out regaurdless of the error.

DDS and Data Files on the AS/400

Creating a data file

Page 44: AS400 tips & questions

The following discussion assumes that you already have a source physical file in your current

library. We will continue to use SRCFILE in library YOURLIB for explanation. The reader must

substitute the appropriate names for source physical file and library, where applicable.

The first step is to to reach the 'Work with members using PDM' display. This can be done by

typing WRKMBRPDM YOURLIB/SRCFILE on any command line.

To create a data file member, you have to start the Source Entry Utility. Press <F6> from the

'Work with members using PDM' display or type STRSEU on any command line and press

<F4>. The following screen shows up:

Start Source Entry Utility (STRSEU)

Type choices, press Enter.

Source file . . . . . . . . . . *PRV______ Name, *PRV

Library . . . . . . . . . . . __________ Name, *LIBL, *CURLIB, *PRV

Source member . . . . . . . . . *PRV______ Name, *PRV, *SELECT

Source type . . . . . . . . . . *SAME_____ Name, *SAME, BAS, BASP,

C...

Option . . . . . . . . . . . . . *BLANK____ *BLANK, ' ', 2, 5, 6

Text 'description' . . . . . . . *BLANK_________________________________

The Source type for a data file must be specified as PF, this type denotes aPhysical File. For

example, to create a data file called TESTDATA in the source file SRCFILE in library

YOURLIB, fill in the fields as shown:

Start Source Entry Utility (STRSEU)

Type choices, press Enter.

Source file . . . . . . . . . . SRCFILE___ Name, *PRV

Library . . . . . . . . . . . YOURLIB___ Name, *LIBL, *CURLIB, *PRV

Source member . . . . . . . . . TESTDATA__ Name, *PRV, *SELECT

Source type . . . . . . . . . . PF________ Name, *SAME, BAS, BASP,

C...

Option . . . . . . . . . . . . . *BLANK____ *BLANK, ' ', 2, 5, 6

Text 'description' . . . . . . . Your_description_for_the_member_...______

The Edit display shows up. It is convenient to use the prompt facility for defining the DDS

source. The prompter helps you to supply the source information in the correct format. Press

<F4> to invoke the prompter and <F12>to cancel it.

When the prompter is invoked, the screen looks as shown:

Page 45: AS400 tips & questions

Find . . . _____________________________________________________

TESTDATA

FMT PF

.....A..........T.Name++++++RLen++TDpB......Functions++++++++++++++++++

*************** Beginning of data

*************************************

0001.00

****************** End of data

****************************************

Prompt type . . . PF Sequence number . . . 0001.00

Name Data Decimal

Type Name Ref Length Type Positions Use

_ _____ _ ______ _ ___ _

Functions ___________________________

F3=Exit F4=Prompt F5=Refresh F10=Top

F11=Bottom F12=Cancel F24=More keys

An explanation of the different fields shown above follows: The fields marked with * are not

commonly used, so for normal applications you may conveniently ignore them.

Name_Type

Choose one of the following:

Blank

Leave the field blank to indicate a field name.

R

Type R in column 17 to indicate a record format name.

K

Type K in column 17 to indicate a key field name.

Name

Type a record format, field, or key field name in this position. The maximum length

allowed is 10 characters, beginning in column 19.

Reference (*)

Type R in this field to use the reference function to copy attributes of a previously

defined named field to the field you are now defining.

Length

Type a value to indicate the number of characters in a character field or the number of

digits in a numeric field. For example, for Character type the range is 1-32766, for

Packed decimal the range is 1-31 digits and so on.

Data_Type

Choose one of the following:

A

for character data.

P

for packed decimal data.

Page 46: AS400 tips & questions

S

for zoned decimal data.

B

for zoned binary data.

F

for floating point data.

H

for hexadecimal data.

Decimal_Positions

Type a value from 0 through 31 to indicate the number of decimal positions to the right

of the decimal point within a packed decimal, a zoned decimal, a floating point, or a

binary field.

Use (*)

Type B or leave the field blank to indicate a field used for both input and output.

Functions (*)

Type in keyword entries valid for defining physical files in positions 45 through 80 of

this field.

The DDS source for TESTDATA is shown below. RECFMT1 is the record format name. There

are two fields in the data file, FIELD1 and FIELD2. FIELD1 is of character data type with length

10, and FIELD2 is a packed decimal of length 5 with 2 decimal positions. The last line of the

member declares FIELD1 to be the key field.

Find . . . __________________________________________________________ TST1

FMT PF

.....A..........T.Name++++++RLen++TDpB......Functions++++++++++++++++++

*************** Beginning of data

*************************************

0000.01

0001.00 R RECFMT1

0002.00 FIELD1 10A

0003.00 FIELD2 5P 2

0004.00 K FIELD1

0005.00

****************** End of data

****************************************

F3=Exit F4=Prompt F5=Refresh

F10=Top F11=Bottom F24=More keys

Press <F3>and hit <Enter>to save the member TESTDATA. For more details about exiting SEU

refer to the section 'How to exit SEU'.

The member TESTDATA that was just created contains only the definition of the data file and

hence our the next step is to actually create the file. This can be done by compiling the member

we have just created. From the 'Work with members using PDM' display, position the cursor at

Page 47: AS400 tips & questions

member TESTDATA, and choose option 14 (compile). If the compilation is successful, the file

TESTDATA will be created in YOURLIB. Otherwise, look into your spooled file (WRKSPLF)

and identify the problem.

Loading a data file

To load a data file, use the command UPDDTA (Update Data Area). Type UPDDTA on any

command line and press <F4>. The following screen shows up:

Update Data with Temp Program (UPDDTA)

Type choices, press Enter.

Data base file . . . . . . . . . __________ Name

Library . . . . . . . . . . . *LIBL_____ Name, *LIBL, *CURLIB

Member . . . . . . . . . . . . . *FIRST______ Name, *FIRST

Bottom

F3=Exit F4=Prompt F5=Refresh F12=Cancel F13=How to use this display

F24=More keys

Supply the values for the data base file to be loaded and the library it is contained in, and press

<Enter>. For example, to populate our file TESTDATA we would fill in the values as shown:

Update Data with Temp Program (UPDDTA)

Type choices, press Enter.

Data base file . . . . . . . . . TESTDATA__ Name

Library . . . . . . . . . . . YOURLIB__ Name, *LIBL, *CURLIB

Member . . . . . . . . . . . . . *FIRST____ Name, *FIRST

Bottom

F3=Exit F4=Prompt F5=Refresh F12=Cancel F13=How to use this display

Enter the values for different fields and press Enter>. To stop the process of loading the data file,

press <F3>and press < Enter>.

Screen Design Using SDA

To aid in the creation of user interfaces on the AS/400, the operating system includes a utility

called SDA (Screen Design Aid). This system allows a programmer to "paint" screens and

menus used by a program from within a simple editor, defining input and output fields and

special text attributes. These screens may then be called from an application program, allowing

Page 48: AS400 tips & questions

the program to have all the features of the AS/400 user interface without direct programming of

the appearance of the interface.

This section will only cover those aspects of screen design not related to interfacing with

applications. For information on this area, see the manual for the language of the application

source.

Starting SDA

The first steps in creating a set of screens for a program are the same as those for creating a

program source member. A source physical file must be created (or one already in existence may

be used) and a member must be created in the PF-SRC to hold the screens.

To create the screen design member, issue the command STRSDA (for STaRt SDA) from a

command line. A menu of options will appear which allow you to create a screen, create a menu,

or test a design. Choosing the first option brings the following screen:

Design Screens

Type choices, press Enter.

Design option . . . . . . _ 1=Select file keywords

2=Select record keywords

3=Select subfile keywords

4=Select subfile control keywords

5=Define screen image (fields)

6=Save DDS source, create object

Record . . . . . . . . . __________ Name, F4 for Record list

Additional records . . . __________ Name

(to be displayed on Work Screen)

Source file . . . . . . . QDDSSRC___ Name

Library . . . . . . . . *LIBL_____ Name, *LIBL, *CURLIB

Member . . . . . . . . . __________ Name, F4 for Member list

Source type . . . . . . . __________ DSPF,

Blank for default

F3=Exit F4=Prompt F12=Cancel

Since no screen design exists yet, it is necessary to first create one using the "5" option on the

"Design option line". Also, a source file must be provided, and a member specified. If the

member does not yet exist, it will be created. Finally, a record name must be given. Since each

member can have several records, a single screen design member could contain any number of

screens, with each one given a distinct record name. Once the information is entered, the screen

should look like this:

Design Screens

Page 49: AS400 tips & questions

Type choices, press Enter.

Design option . . . . . . 5 1=Select file keywords

2=Select record keywords

3=Select subfile keywords

4=Select subfile control keywords

5=Define screen image (fields)

6=Save DDS source, create object

Record . . . . . . . . . SCREEN1___ Name, F4 for Record list

Additional records . . . __________ Name

(to be displayed

on Work Screen)

Source file . . . . . . . SRCFILE___ Name

Library . . . . . . . . YOURLIB___ Name, *LIBL, *CURLIB

Member . . . . . . . . . SCRNMBR___ Name, F4 for Member list

Source type . . . . . . . __________ DSPF,

Blank for default

F3=Exit F4=Prompt F12=Cancel

The "SOURCE TYPE" field may be left blank. It will default to the proper type for SDA.

These options will start SDA on a screen named SCREEN1 in the member SCRNMBR of file

SRCFILE in library YOURLIB. Pressing <Enter> will bring up the main SDA display. This is

simply a blank "pasteboard" on which you may place text and fields.

Using The Work Screen

Use the Work Screen to design the display you are creating. On the Work Screen you can add

fields and constants, place fields you have selected from a database, move, copy, shift, and

remove fields, and add or remove attributes and colors. You can also perform additional

operations, such as requesting extended field definition.

You can use the following function keys on the Work Screen:

F1=Help

Press <F1> to show the same information as the help key. <F1> is active on all displays

but does not appear in the function key area.

F3=Exit

Press <F3> to have the Design Screens display appear.

F4=Prompt

Press <F4> to have the Work with Fields display appear.

F6=Condition

Press <F6> to have the Condition Work Screen display appear.

F10=Database

Press <F10> to have the Select Data Base Files display appear.

F11=Switch

Page 50: AS400 tips & questions

Press <F11>to display a list of selected database fields on the bottom row of the Work

Screen. Press <F11>to switch back and forth between the list of selected data base fields

and the list of not selected database fields.

F12=Cancel

Press <F12>to save your work and continue to the Design Screens display.

F14=Ruler

Press <F14>to place a vertical and horizontal ruler on the Work Screen where you

position the cursor. The ruler does not interfere with your data. Press <F14>to remove the

ruler. Defining fields on the ruler may cause unpredictable results.

F15=Subfile Prompt

Press <F15>to Display a prompt on the bottom row of the Work Screen that allows you

to change the subfile line (SFLLIN) and subfile page (SFLPAG) sizes that were in effect

for the current record being defined.

F17=Print

Press <F17> to Print the current contents of the Work Screen.

Adding Fields

To add a user-defined field, type + followed by I (input), O (output), or B (both) for alphabetic

fields, or followed by 3 (input), 6 (output), or 9 (both) for numeric fields and press Enter. To add

a floating point field, add a numeric field followed by E (single-precision) or D (double-

precision) and press Enter. You can use uppercase or lowercase letters. You indicate the length

of a field by the number of characters following +, or by the length specified in brackets after the

first character.

The following examples illustrate user-defined fields:

+BBB or +b(3)

Three-character, alphabetic, both (input and output) field.

+66.66 or +6(4,2)

Four-character, numeric, input field with two decimal positions (set by an edit word).

+3.33E or +3(3,2)e

Single-precision, input, floating-point field with three significant digits and two decimal

positions.

+99.999d or +9(5,3)D

Double-precision, both (input and output), floating-point field with five significant digits

and three decimal positions.

Adding Constants

To add a new constant or change an existing constant:

Type a constant. A blank character ends the constant.

Type constants with single quotation marks to define separate constants for each

character string (word) that is followed by a blank.

Surround a character string with single quotation marks to define a single constant.

Page 51: AS400 tips & questions

Surround several constants with single quotation marks to redefine them as one constant.

Use a double quotation mark to end one constant and start a new constant while taking up

only one position.

To add a MSGCON (MeSsaGe CONstant) field, type + followed by M. To work with a

MSGCON field, type ? in front of the field. When you press Enter, the Define Message

Constant display appears. Press < F12>to return to the Work Screen.

To add system date or time fields, type *DATE or *TIME.

Use the at sign (@) in pairs to delimit a DBCS (Double Byte Character Set) constant.

SDA will replace each pair with a shift in and a shift out pair when you press <Enter>.

You can then type DBCS data between the delimiters. You cannot use a DBCS insert key

on the Work Screen.

The following examples illustrate constant fields:

'xxx"YYY'

Defines two constant fields.

'xxx YYY zzz'

Combines three constant fields into one field.

+MMM or +(M3)

The Define Message Constant display appears.

Adding Fields from a Data Base File

The fields you select from a database file, appear on the bottom row of the Work Screen. You

move fields from the bottom line to your display by typing & followed by the field number, if

you are in multiple mode, and the column heading position and pressing Enter. The fields begin

in the position where you type &. The following examples illustrate moving fields to your

display:

Symbol

Single Field Multiple Field Field

Mode Mode Meaning

& &n Places field. Does not add column heading.

&L &nL Places field. Adds a column heading to the

left of the field.

&R &nR Places field. Adds a column heading to the

right of the field.

&C &nC Places field. Adds a column above the field.

Left-aligns column heading for an alphabetic

field and right-aligns column heading for a

numeric fields.

&P &nP Places the column heading only.

Adding or Removing Attributes and Colors

Page 52: AS400 tips & questions

To add or remove display attributes or colors on the Work Screen, type one of following

commands (in uppercase or lowercase) in the position preceding the field (the attribute byte of

the field):

Command Command

Add Remove Attribute Add Remove Color

H -H High intensity CB -CB Blue

R -R Reverse image CG -CG Green

S -S Column CP -CP Pink

separators

B -B Blink CR -CR Red

N -N Nondisplay CT -CT Turquoise

U -U Underscore CW -CW White

-A Remove all -CA Remove all

attributes colors

You can carry out the above operations by typing * in the position preceding the field (the

attribute byte of the field), pressing < Enter>, and working with the field keyword displays that

appear.

Moving, Copying, and Shifting Fields

Reposition fields on the Work Screen by typing one of the following and pressing <Enter>:

-, =

Type - in the position preceding the field (the attribute byte of the field) and type = where

you want the field to appear.

-, ==

Type - in the position preceding the field (the attribute byte of the field) and type ==

where you want a copy of the field to appear.

-, -, ==

Type - in any position preceding the field, type - in any position after the last field, and

type == where you want a copy of the group of fields to appear.

<<<, >>>

Type <<< in the position preceding the field (the attribute byte of the field), or type >>>

after the field (over the first attribute byte), to shift the field left or right as far as the signs

extend.

Removing Fields

Remove fields from the Work Screen by typing one of the following and pressing <Enter>DO

NOT use the <Delete>key to delete items on the work screen:

Page 53: AS400 tips & questions

Blanks

Type a blank in the position preceding the field (the attribute byte of the field), and over

the entire field.

D

Type D in the position preceding the field (the attribute byte of the field).

Additional Features

Extended field definition

Type * in the position preceding the field (the attribute byte of the field) to add field-level

attributes and keywords.

Display field length and description

Type ? in the position preceding the field to display field length and text or column heading

description on the last row of the Work Screen. You can rename the field by changing the name

on the last row.

Display MSGCON field definition

Type ? in the position preceding the field to show the Define Message Constant display. You can

change the message number, file, and library.

Date and time keywords

Type *DATE or *TIME to define special constants on the display where the system date and

time will be automatically substituted.

Subfile Field Definition

You can define fields for a subfile similar to nonsubfile fields with the following considerations:

You can modify fields on the first record of the subfile. Anything you type is assumed to

be a definition of the first record.

To modify the values of the SFLPAG (number of records on the display) and SFLLIN

(number of spaces between fields), press < F15>to display the subfile prompt line.

<F15>is allowed only for subfile records.

Any field that you define for the subfile will appear the number of times specified by the

SFLPAG keyword.

Compiling And Testing Screens

Once the screen design is complete and <F3>is pressed, PDM returns to the "Design Screens"

menu shown above. Choosing the "6" option on the Design Option line saves the source file for

the screen and compiles it into a screen file which may be used by a program. IF THIS OPTION

IS NOT CHOSEN AFTER THE SCREEN DESIGN IS COMPLETE, THE MODIFICATIONS

Page 54: AS400 tips & questions

WILL NOT BE SAVED. Note that it isn't necessary to save a file after every RECORD created;

Several screens from a single member can be created before compilation. However, the file must

be compiled before exiting SDA. Using the "6" option for a screen produces the following

display:

Save DDS - Create Display File

Type choices, press Enter.

Save generated DDS source . . . . . . . Y Y=Yes

Source file . . . . . . . . . . . . . SRCFILE___ Name

Library . . . . . . . . . . . . . . YOURLIB___ Name, *LIBL ...

Member . . . . . . . . . . . . . . . . SCRNMBR___ F4 for list

Replace existing member . . . . . . . Y Y=Yes

Create display file . . . . . . . . . . Y Y=Yes

(CRTDSPF) F4 for prompt

Display file . . . . . . . . . . . . . SCRNFIL___ Name

Library . . . . . . . . . . . . . . YOURLIB___ Name, *LIBL ...

If create fails, display listing . . . Y Y=Yes

Replace existing file . . . . . . . . Y=Yes

Create file if DDS message severity

(GENLVL) is less than . . . . . . . 20 0, 10, 20, 30

Submit create job in batch . . . . . . . Y Y=Yes

Job description . . . . . . . . . . . QBATCH____ Name

Library . . . . . . . . . . . . . . QGPL______ Name, *LIBL ...

F3=Exit F12=Cancel

These options will compile all the screen records in member SCRNMBR of file SRCFILE in

library YOURLIB to a *FILE object called SCRNFIL in YOURLIB. That file may then be used

by user programs.

It may be advantageous to test screen designs before using them with programs. This can be

accomplished using the "Test Display Files" option from the initial SDA menu. The screen test

program will request the name of a screen and display file (created using the compilation

procedure above,) followed by a prompt screen for values for the output fields. SDA displays the

screen with the values supplied.

Debugging Programs on the AS/400

In addition to the utilities provided for creating, editing, and compiling programs, the AS/400

provides a facility to aid in the debugging of programs as they are running. Called the EPM

(Extended Program Model) debugger, this tool allows the user to view and change the values of

variables and step through the program by using breakpoints which interrupt program execution

and return control to the debugger.

Starting the debugger

Page 55: AS400 tips & questions

Before using the debugger, the source program must be compiled with the *DEBUG and

*SOURCE options. These will, respectively, include debugging information in the executable

program (so the debugger has access to variable and routine names) and produce a source output

listing from the compiler. This source output should be printed before starting the debugger, as

the compiler adds its own line numbers to the source which will be necessary in referencing

specific lines while using the debugger. The source output is also useful as a hardcopy reference

while the program is executing, since the debugger does not list source lines as the program

executes.

To specify these options at compilation time, first prompt on the compile option on the Work

with Members Using PDM display (or on the CRT___PGM command for the language of the

source file) by pressing < F4>(PROMPT) with the "14" (COMPILE) option on the options line

of the file you wish to compile. This will show the initial options screen for the compiler. To

enter the compiler options, it is necessary to prompt for more options by pressing <F10>, which

reveals the following screen:

Create Pascal Program (CRTPASPGM)

Type choices, press Enter.

Program . . . . . . . . . . . . > TEST______ Name

Library . . . . . . . . . . . > YOURLIB___ Name, *CURLIB

Source file . . . . . . . . . . > SRCFILE___ Name

Library . . . . . . . . . . . > YOURLIB___ Name, *LIBL, *CURLIB

Source member . . . . . . . . . > TEST______ Name, *PGM

Text 'description' . . . . . . . *SRCMBRTXT_____________________________

Additional Parameters

Compiler options . . . . . . . . *DEBUG____ *LIST, *NOLIST, *CHECK...

+ for more values *SOURCE___

Language level . . . . . . . . . *EXTENDED__ *EXTENDED, *ANSI83,

*SYSTEM

String temporary threshold . . . 2046____ 256-32767

F3=Exit F4=Prompt F5=Refresh F12=Cancel F13=How to use this display

F24=More keys

The above example is from a Pascal source member. However, other languages will have similar

prompt displays.

Placing the *DEBUG and *SOURCE options on the "Compiler options" lines will cause the

compiler to produce a source listing and place it in the output queue and will include debugging

information in the output program. Pressing <Enter>once all options are entered will submit the

compilation. After the member has been compiled (assuming there are no errors in compilation,)

the source listing should be printed and used with the next steps.

Using the debugger

Page 56: AS400 tips & questions

The process of Debugging essentially consists of four phases:

1. Start the Debugger

2. Add breakpoints

3. Call the program to be debugged and

4. End the Debugger

These phases are discussed in detail below:

Phase 1 (Start the Debugger)

The command to start the debugger is:

===> strdbg YOURLIB/TEST

where TEST is the program in library YOURLIB, that you intend to debug.

Phase 2 (Add Breakpoints)

A Breakpoint is a place in a program where the system stops the processing of that program and

gives control to the display station user or to a specified program. The command ADDBKP is

used to set breakpoints. The simplest form of ADDBKP takes the following form:

===> addbkp stmt(n1 n2 ... n10) where n1, n2 ... n10 are the statement numbers where the

breakpoint is to occur. You may specify 1 to 10 statement numbers where the breakpoint should

occur. For example, ' addbkp stmt(10 20 30) ' will set the breakpoints at statements 10, 20 and

30. The program breaks before processing a statement specified as a breakpoint.

Phase 3 (Calling the Program)

Once the breakpoints are set, the next step is to run the program using the CALL command.

===> call YOURLIB/TEST

You will notice that the program stops execution when the breakpoint is reached. From the

'Display Break Point' screen, you can check the values of the program variables as explained

below:

Press <F10>(command entry) on the 'Display Breakpoint' screen.

This will take you to the command entry screen. Display the program variables with

DSPPGMVAR command:

===> dsppgmvar VARNAME

where VARNAME is the variable name you intend to display.

Page 57: AS400 tips & questions

Using the above command, you can check for as many variables as you want to from the

command entry screen. To exit the command entry press <F3>. Control is transferred

back to the breakpoint.

Press <Enter>to resume execution of the program. The program will stop at the next

breakpoint if any, or will terminate.

Ending the Debugger

Once you are done with debugging, it is very important that you end the Debugger, before you

issue any other command. The command to do it is:

===> enddbg

APPENDIX A - Terminal Setup

PC-VT 9.0 Terminal Setup Instruction

The following should assist you in setting up PC-VT V9.0 for use with the IBM AS/400 via a

port selector connection.

Confirm that your copy of PC-VT is V9.0. This may be confirmed by starting PC-VT and noting

the version number on the initial screen or by entering the setup A screen. Versions prior to V9.0

will not support the cursor keys during an AS/400 session.

1. Start PC-VT and immediately go into the setup by pressing CTRL-F1.

2. Select option 5, 'Go to SETUP B'.

3. You should now change the feature switches, the blocks of 4 characters at the bottom of

the screen, so that they match those given below. This may be done by placing the cursor

above each feature switch you wish to change and pressing the 6 key to toggle the switch

to the correct value. 4. Feature switch settings: 5. 1 2101 2 0X11 3 0000 4 1110 5 0001 6 0110 7 1X10 8 000X 9 XXXX

0 XXXX

6. You should next set the modem speed to 9600. This may be done with menu option 7,

Select Modem Speed.

7. Next set the data bits to 8 and the stop bits to 2. This may be done with menu option P,

Select Data/Parity Bits.

8. Finally, save the changes you have made to the SETUP so that you will not have to repeat

this setup the next time you use PC-VT. This may be done by pressing the S key.

9. You may use the <ESC>key to exit the setup mode and return to the emulator mode from

which you may access the port selector.

APPENDIX B - VT-100 to PS/2 (PC Support) Keyboard

Mapping

PS/2 Key Nam Micro-Term Key Sequence Typical use

Page 58: AS400 tips & questions

<F1> <ESC>1 Help

<F2> <ESC>2 Switch View

<F3> <ESC>3 Exit

<F4> <ESC>4 Prompt

<F5> <ESC>5 Refresh Screen

<F6> <ESC>6

<F7> <ESC>7 Roll Down

<F8> <ESC>8 Roll Up

<F9> <ESC>9 Get Previous Cmd

<F10> <ESC>0 Move to top

<F11> <ESC>- List Toggle

<F12> <ESC>+ Cancel

<F13> <ESC>! or <ESC><SHIFT>1 User support

<F14> <ESC>@ or <ESC><SHIFT>2

<F15> <ESC># or <ESC><SHIFT>3

<F16> <ESC>$ or <ESC><SHIFT>4 Main menu

<F17> <ESC>% or <ESC><SHIFT>5

<F18> <ESC>+ or <ESC><SHIFT>6

<F19> <ESC>& or <ESC><SHIFT>7 Scroll left

<F20> <ESC>* or <ESC><SHIFT>8 Scroll right

<F21> <ESC>( or <ESC><SHIFT>9

<F22> <ESC>) or <ESC><SHIFT>0

<F23> <ESC>_ or <ESC><SHIFT>- Scrl Option

<F24> <ESC>= or <ESC><SHIFT>= Scrl Menu

<DEL> <DEL> Delete character

<Shift><Insert> <CTRL>d Duplicate

<Enter> <RETURN> Send screen

<Backspace> <ESC>i

<Right Ctrl> <LINEFEED> or <CTRL>j Field exit

<Home> <ESC>H

<Insert> <ESC><DEL> Insert mode

<Page up> <ESC>u

<Page down> <ESC>d

<Shift><Pt Scn> <CTRL>p Print Screen

<Tab> <TAB> Next field

<Shift><Tab> <ESC><TAB> Previous field

<ESC> <ESC>a or <CTRL>a Attention

<Alt><F7> <ESC>(grave accent) Ins. Special Char

<ESC><CTRL>w Indicator Toggle

<ESC><CTRL>a Refresh screen

<Left Ctrl> <ESC>r or <CTRL>r Reset term. err.

<Alt><Pt Scn> <ESC>s System Request

APPENDIX C - Using On-line Education (EDU)

Introduction

Online education is a facility provided by IBM to assist the user in learning about the AS/400.

This facility is set up for the user to work through any topic he/she is interested in. This facility is

self-paced so the user can work the modules when it is convenient, using the bookmark utility to

keep track of where the user has left off, so the next time he/she is using education, the system

will automatically return the user to the place where they left off. There is a quiz at the end of

Page 59: AS400 tips & questions

most modules, which gives feedback on how much information the user retained from that

module.

Getting Started

1. From any command line type ==>STREDU <Enter> STREDU is an abbreviation for Start

Education.

2. Select 5, Select course <Enter>

3. There are several courses in online education but the most useful ones in terms of using

the AS/400 are:

o Tutorial Support System

o Facilities and Implementation

o Application Design and Development Tools

Type 1 to select the desired course <Enter>. To display a description about a course

select 8 in front of that particular course.

4. Select 4 to select an audience path for the course <Enter>. You can select all modules or

one of the listed categories. The COMS 175---Command Language audience path is

customized for the CS175 class. Type 1 to select one of them <Enter>.

5. Next, you can either select 1 to start the first module in the selected audience path of the

course or 3 to select any module < Enter>within the selected course.

6. Follow the directions and read each screen carefully.

7. To exit in the middle of a module press <F3> where this option is available. This will

give you a choice of exiting the module, exiting and setting a bookmark, exiting and

marking it complete or go to a topic/subtropic menu for the module.

At the end of most modules, there is a quiz.

This can consist of questions from the module or examples that you walk through, or a

combination of both. For the CS175 class, when you are finished with the quiz, obtain a screen

print of the screen that tells you how many you answered correctly on the first try. If you forget

to get a screen print, you need to go through the quiz again to get to that screen.

To Obtain a Screen Print Press the <SHIFT>and PRINT SCREEN key (towards the upper right

hand corner of your keyboard) at the same time. When the screen has been captured you will see

a message at the bottom of your screen, which tells you that it has been sent to the default printer

device.

Press the <Reset>(at the bottom left hand corner of the keyboard), to clear this message and

continue your session.

Exit online education by pressing a series of <F3>keys until you have reached a command line.

To check your screen print type WRKSPLF (work with your spool files). Your most recent screen

print will be located at the bottom of the list and it will be titled QSYSPRT.

Page 60: AS400 tips & questions

To assign it to a printer, type a 2, change, and press <Enter>. This will change the status from not

assigned to a printer, to assigned to a printer.

At the Printer to use prompt, type the name of the printer you would like to send your printout to

and press <Enter>. To see a list of all started printers, press <F4>on this line. This will give you

a list of all started printers and from here you can select one by typing a 1 on the line before the

desired printer. Press <Enter> to select this printer. You will return to the screen where you

pressed <F4>. Press <Enter>again to accept this printer.

For more information on printing, see the section "Printing Procedure" in this manual.

APPENDIX D - How to program on an AS/400

The following outline details the basic steps of program development on the AS/400. Since there

may be multiple ways to complete a task, some more appropriate than others depending on the

situation, various ways of doing essentially the same thing are shown under each outline heading.

1. Log in.

2. Setup area for source

1. Create a library (optional) - CRTLIB

2. Create a source physical file (optional) - CRTSRCPF

3. Type source into physical file member.

1. Start source entry utility - STRSEU

2. Work in program development manager

STRPDM

WRKLIBPDM

WRKOBJPDM

WRKMBRPDM

3. In PDM: <F6> - create a member.

4. Compile the source member to attain object and compiled. spool file.

o Option 14 from the PDM lines.

o CRT___PGM - where ___ can be CBL, PAS, C, PAS, BAS, etc....

Wait for compilation to complete.

Display message to see if completed successfully - DSPMSG

Check spool file to see if any Fatal errors or warnings.

0. WRKSPLF

1. Choose option 5 - DISPLAY.

2. Page to bottom of file.

3. Note if there are any warnings or errors or fatal errors.

4. If there are errors or fatal errors go to to step III and correct.

5. If there are any warnings determine if they are important and if deemed so go to

step III and correct.

Check for dependencies.

o Does program need data files - if so create or attain them.

o Does program need other programs - if so create or attain.

Execute the program.

Page 61: AS400 tips & questions

o CALL library/programname

o Option 16 from a WRKOBJPDM screen.

If program gives a run-time error.

0. Move cursor to error description - hit <F1> (help)

1. Look for error and statement number.

2. Cross reference statement number with source line number with spool file -

WRKSPLF

3. Correct error.

4. Go to step III.

Log off.