IBC233

Post on 05-Jan-2016

66 views 2 download

description

IBC233. Calling Programs Updated Winter 2009. Agenda. Calling Programs Lab 11. OPM (static) Call. CALL Parameters: PGM PARM. How it works. When the call statement is executed: Your authority to the program object is checked Do you have access to all the resources required? - PowerPoint PPT Presentation

Transcript of IBC233

IBC233

Calling Programs

Updated Winter 2009

Agenda

• Calling Programs

• Lab 11

OPM (static) Call

• CALL– Parameters:

PGM

PARM

How it works

• When the call statement is executed:Your authority to the program object is checked

Do you have access to all the resources required?

Gather resources

Program opened

Passing Parameters in CL (OPM)

Call program1 (‘test’ ‘new’)

then program 1must have a pgm statement that looks like this:

pgm (&parm1 &parm2)

dcl &parm1 *char 10

dcl &parm2 *char 5

Passing Parameters in CL (OPM)

pgm

dcl &var1 *char 6 value ‘IBC233’

call pgm2 &var1

call pgm(pgm3) parm(&var1)

endpgm

Pgm2 and pgm3 must have a pgm statement similar to this:

pgm parm(&parm1)

Passing Parameters CL to RPG (OPM)

pgm

call pgm2 (‘RPG’)

endpgm

RPG program must have the fixed format C spec code:

F1 Operation F2 Result

*entry plist

parmvarName

ILE (dynamic) Call

• CALLPRC

Parameters:

PRC

PARM

RTNVAL

How it works

• When the application is created, authority to modules is checked and entire application is bound

• When application is called

all resources are allocated

entire application is opened

Passing Parameters in CL (ILE)

Call appl1 (‘test’ ‘new’)

then the first *module in the application must must have a pgm statement like this:

pgm (&parm1 &parm2)

dcl &parm1 *char 10

dcl &parm2 *char 5

Passing Parameters in CL (ILE)

pgm

dcl &var1 *char 6 value ‘IBC233’

call pgm2 &var1

callprc (mod3) parm(&var1)

endpgm

mod2 and mod3 must have a pgm statement similar to this:

pgm &parm1

Passing Parameters CL to RPG (ILE)

pgm

callprc pgm2 (‘RPG’)

endpgm

RPG procedure must have the fixed format C spec code:

F1 Operation F2 Result

*entry plist

parmvarName

Advantages of OPM

• Don’t have to have all parts of the application done to test.

• Parts of the application can be changed without affecting the entire application

Disadvantages of OPM

• Integrated Language not supported

Advantages of ILE

• Integrated Language Support– Best language for the task

• You don’t have to pass all parameters to the program – previous values will be used

Disadvantages of ILE

• All modules must be in place to test application

• Version Control

What you need to know for Lab 11

SQL and RPG

• When defining a table, SQL doesn’t follow the rules that the record format name must be different than the table name.

• RPG needs the two to be different

Solve the SQL problem – F Spec change

Filename: This is where you type the pf or table name

FT (File Type): I O U C

FD (File Designation): P R S T F

(we use blank or F)

FF (File Format): F E

Record Length: blank or a number

RAT (Record Address Type): A D F K P D Z

( we use blank or K)

DEVICE: Printer, Disk, WorkStn

Solve the SQL problem – F Spec change

KEYWORDS:

RENAME(fileName:newRecName)

Defining a Spooled File

Filename: qprint or qsysprt

FT (File Type): O

FD (File Designation): blank

FF (File Format): F

Record Length: 132 (width of the FileName)

RAT (Record Address Type): blank

DEVICE: Printer

KEYWORDS: OFLIND(*INOF)

Output Specs

• Defines the report layout.

• Type E is the name of the group of record formats

• EXCEPT prints a group of record formats

eg. EXCEPT totals

prints all of the lines belonging to the

group totals

Logic for an RPG program that creates a report for all of the

records in a file

Report Logic

Initialize Variables

Report Logic

Initialize Variables

Print the report heading

Report Logic

Initialize Variables

Print the report heading

Read the first record and check for EOF

Report Logic

Initialize Variables

Print the report heading

Read the first record and check for EOF

Loop until EOF

Report Logic

Initialize Variables

Print the report heading

Read the first record and check for EOF

Loop until EOF

format the detail line

Report Logic

Initialize Variables

Print the report heading

Read the first record and check for EOF

Loop until EOF

format the detail line

update the totals

Report Logic

Initialize Variables

Print the report heading

Read the first record and check for EOF

Loop until EOF

format the detail line

update the totals

print the detail line

Report Logic

Initialize Variables

Print the report heading

Read the first record and check for EOF

Loop until EOF

format the detail line

update the totals

print the detail line

read the next record

Report Logic

Initialize Variables

Print the report heading

Read the first record and check for EOF

Loop until EOF

format the detail line

update the totals

print the detail line

read the next record

End of loop

Report Logic

Initialize Variables

Print the report heading

Read the first record and check for EOF

Loop until EOF

format the detail line

update the totals

print the detail line

read the next record

End of loop

Print the totals

Report Logic

Initialize Variables

Print the report heading

Read the first record and check for EOF

Loop until EOF

format the detail line

update the totals

print the detail line

read the next record

End of loop

Print the totals

End of program logic

Lab 11 – CLLE new commands

OVRDBF

• Allows you to use a different file instead of the one that is defined by the RPG program

OVRPRTF

• Changes attributes about the spool file.