OPALE - 10.0 - Usage
Repaginating an IBM i spooled file
Sommaire
Introduction
The objective of this use case is to explain how to repaginate an IBM i spooled file.
To do this, two commands need to be used: MAPSORTPAG and MAPRUNRPT (M-Connect). MAPSORTPAG puts the content of the spooled file into a physical file, and then MAPRUNRPT reads the physical file and recreates a spooled file with the desired pagination.
Example: A page break every 20 lines passed as a parameter in MAPRUNRPT.
Commands
MAPSORTPAG
As explained above, in this case MAPSORTPAG is used to put the content of the file into a database file.
As an example, here is a spooled file we want to repaginate:
Spooled file name . . . . . . . > A000000002 Spooled file number . . . . . . > 3 Job name . . . . . . . . . . . . > QPADEV0008 Job number . . . . . . . . . . . > 487312 User . . . . . . . . . . . . . . > JDIEU
Run this command:
MAPSORTPAG SPLF(A000000002) SPLNUM(3) JOB(QPADEV0008) JOBNUM(487312) USER(JDIEU) KEYLINE(1) KEYCOL(1) KEYLGN(1) CREATE(*NO) LIB(MAP$$SORT) NAME(MYPF)
The spooled file content is now added to physical file MAP$$SORT/MYPF in the database
MAPRUNRPT
This command runs a Connect which reads the physical file MYPF and creates a spooled file with the new pagination information.
Connect Project
Creating the Connect project
- Create a new Connect project
- Change the name of the format. Click on Properties and call it NEWPAG
- Click on Insert table (.def)
- Browse to the .def file created previously on Opale Server (this will create a Connect table automatically)
- Click on the Spooled file button (on the vertical bar on the left)
- Click on New Block
- Call the block MYBLOCK
- Drag and drop the field PRTDTA from the MYPF table on to the block
- Create 2 variables in the DB table: LINE# and TOTLINE (TOTLINE should be defined as an Input Parameter)
- In the actions of the MYPF table, enter the actions to get the result below:
- Click on Preview , enter 10 for the value of DB.TOTLINE and check that the content of the PF is written with the expected number of lines
Preview:
As you can see, the newly generated spooled file has only 10 lines (value specified in parameter TOTLINE when generating the preview)
General Connect project
DB table window (the content of ACTION will be executed when the Connect is run)
MYPF table window (the content of MYPF will be executed when the Connect is run at the Execute MYPF level)
The Read MYPF instruction reads the first line of the MYPF physical file. For the current line, the Connect engine will:
- Write block MYBLOC via the Write MYPF : MYBLOC instruction (Connect block containing the value of current record MYPF)
- Increment the number of lines counter (DB.LINE# variable declared in DB table)
- Check the value: If the current line number is equal to the value passed as a parameter for the desired number of lines, then Connect inserts a page break instruction and then the counter is reset to 0.
- Read the next record in MYPF using the Next Read instruction
Executing Connect on the server
After the Connect has been generated and imported on to the Opale Server, you can run the command below:
MAPRUNRPT RPTNAM(NEWPAG) SPOOLFILE(MYREPORT) OUTQ(LIBOUTQ/MYOUTQ)PARM('DB.TOTLINE=10')
This command reads the content of physical file MYPF and creates a new spooled file (MYREPORT) with a page break every 10 lines.
Note: To have a page break every 20 lines, set the value of TOTLINE to 20.
Execution on the Server
To automate execution on the server, an action must be created in the rules including both commands as seen previously:
MAPSORTPAG SPLF(&SPLF) SPLNUM(&SPLNUM) JOB(&JOB) JOBNUM(&JOBNUM) USER(&USER) KEYLINE(1) KEYCOL(1) KEYLGN(1) CREATE(*NO) LIB(MAP$$SORT) NAME(MYPF) MAPRUNRPT RPTNAM(NEWPAG) SPOOLFILE(MYREPORT) OUTQ(LIBOUTQ/MYOUTQ)PARM('DB.TOTLINE=10')