IBC233
description
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.