IBM AS/400 Returning from a Subprocedure, Returning from a Called Program or Procedure, without

Models: AS/400

1 489
Download 489 pages 47.95 Kb
Page 178
Image 178

Returning from a Called Program or Procedure

¹

All

files

that are open are closed.

 

 

 

 

 

 

¹

Any

data

areas

locked by the procedure are

unlocked.

 

 

 

 

¹

If

the

main

procedure ended because of a

cancel reply to an in

 

then it was a function check that caused the

abnormal

end.

In

thi

 

function check is percolated to the caller. If it ended

because

 

routine ending with '*CANCL', then escape message

RNX9001

is

issued

 

 

directly

to

the caller. Otherwise the caller

will see

whatever

exc

 

the

abnormal

end.

 

 

 

 

 

 

On

the next

call

to the procedure, a fresh copy is

available

for

p

more information

on

exception handlers, see “Using

RPG-Specific

Handlers”

page

226.)

 

 

 

 

 

 

 

 

 

Returning

without

Ending

 

 

 

 

 

 

 

 

 

 

A

main

procedure

can return

control

to

the calling

procedure

without

en

none of

the

LR

or H1

through

H9

indicators

are

on and one

of the

f

¹

The

RETURN

operation

(with

a

blank

factor

2)

is

processed.

 

¹ The RT indicator is on and control reaches the *GETIN part of the in which case control returns immediately to the calling procedure. (

information

on

the

RT

indicator,ILE seeRPG

forthe AS/400 Reference)

 

If

you

call

a

main procedure and it returns without ending, when you

dure

again,

all

fields,

indicators, and

files in the procedure will

ho

they

did

when

you

left

the procedure. However, there are three

e

¹This is not true if the program is running in a *NEW activation group

activation

group is

deleted when the program returns. In that case

time

you

call

your

program will be the same as if

you

had

ended

¹ If

you

are

sharing

files, the state of the file

may

be

differ

held

when

you

left

the procedure.

 

 

 

¹If another procedure in the same module was called in between, th results are unpredictable.

You can use either the RETURN

operation (with a blank factor 2) or

cator in conjunction with the LR

indicator

and the

H1

through

H9

indic

aware of the testing sequence

in the RPG

program

cycle

for

the

RETU

tion, the

RT

indicator, and the

H1 through H9 indicators. A

return will

if the LR indicator or any of

the halt

indicators

is

on

and either

conditions

is

true:

 

 

 

 

 

 

 

¹ A RETURN operation is done

¹The RT would cause a return without an end

Returning from a Subprocedure

A subprocedure returns normallywhen a RETURN operation is performed suc- cessfully or when the last statement in the procedure (not a RETURN o

processed.

However,

other

than

the removal

of

the

subprocedure

from

stack

no termination actions

are

performed

until

the

main procedure

of

ends. In other words, all

the actions listed for the normal end of a

take

placeonly

for the

main

procedure.

 

 

 

 

154 ILE RPG for AS/400 Programmer's Guide

Page 178
Image 178
IBM AS/400 manual Returning from a Subprocedure, Returning from a Called Program or Procedure, without