This portal is to open public enhancement requests against IBM Power Systems products, including IBM i. To view all of your ideas submitted to IBM, create and manage groups of Ideas, or create an idea explicitly set to be either visible by all (public) or visible only to you and IBM (private), use the IBM Unified Ideas Portal (https://ideas.ibm.com).
We invite you to shape the future of IBM, including product roadmaps, by submitting ideas that matter to you the most. Here's how it works:
Start by searching and reviewing ideas and requests to enhance a product or service. Take a look at ideas others have posted, and add a comment, vote, or subscribe to updates on them if they matter to you. If you can't find what you are looking for,
Post an idea.
Get feedback from the IBM team and other customers to refine your idea.
Follow the idea through the IBM Ideas process.
Welcome to the IBM Ideas Portal (https://www.ibm.com/ideas) - Use this site to find out additional information and details about the IBM Ideas process and statuses.
IBM Unified Ideas Portal (https://ideas.ibm.com) - Use this site to view all of your ideas, create new ideas for any IBM product, or search for ideas across all of IBM.
ideasibm@us.ibm.com - Use this email to suggest enhancements to the Ideas process or request help from IBM for submitting your Ideas.
The PTFs allow you to control the line length of the source file specified by the PPSRCFILE parameter for CRTBNDRPG or CRTRPGMOD when the RPG compiler is called in pre-processor mode. The most common reason for the RPG compiler to be called in pre-processor mode is when the CRTSQLRPGI command is specified with RPGPPOPT(*LVL1) or RPGPPOPT(*LVL2). In that case, the SQL precompiler calls the RPG compiler, specifying PPSRCFILE(QTEMP/QSQLPRE).
The actual record length of the file is 12 bytes longer than the line length. For example, if the line length is the default of 100, the record length is 112.
There are two separate enhancements:
1. Support for compile-time environment variable QIBM_RPG_PPSRCFILE_LENGTH. When this environment variable is specified with a value between 100 and 32754, the file specified by the PPSRCFILE parameter is created with that line length, if the file does not already exist.
2. Support for new command parameter PPMINOUTLN (Minimum output length for PPSRCFILE). You can specify a value between 100 and 32754. This parameter specifies the minimum line length for the file specified by the PPSRCFILE parameter. If the file does not exist, the RPG compiler creates the file with the maximum of the value specified by the PPMINOUTLN parameter and the longest line length in the file specified by the SRCFILE or SRCSTMF parameter, up to a length of 32754.
Warning: If you apply the PTF for the command parameter, it will cause any changed command defaults to revert to the shipped defaults. If command default changes have been made for the CRTBNDRPG or CRTRPGMOD commands, the changes will have to be made
again. If copies have been made of the QDEVTOOLS/CRTBNDRPG or QDEVTOOLS/CRTRPGMOD commands, these copies will not have the new
PPMINOUTLN parameter. If this new parameter is desired, then new copies will have to be made of the commands.
To obtain these enhancements, you need the following PTFs:
7.3:
1. PTF to support the environment variable: 5770WDS SI82184
2. PTF to support the new commad parameter: 5770WDS SI82183
7.4:
1. PTF to support the environment variable: 5770WDS SI82178
2. PTF to support the new commad parameter: 5770WDS SI82179
7.5:
1. PTF to support the environment variable: 5770WDS SI82185
2. PTF to support the new commad parameter: 5770WDS SI82186
For more information, see https://www.ibm.com/support/pages/node/6857461.
- IBM Power Systems Development
IBM Power Systems Development
We have done some investigation of the problem.
If the RPGPPOPT(*LVL2 or *LVL1) us specified and the developer didn't create QTEMP/QSQLPRE in advance, the precompiler creates the file with record length 112.
The precompiler can't scan the source in advance before doing the preprocess for *LVL1 or *LVL2 because it doesn't know what copy files will be placed in the output. So it always creates it with record length 112.
The help for the RPG preprocessor message RNF0733 says
Recovery . . . : If the CRTSQLRPGI command is used with a value of *LVL1 or *LVL2 for the RPGPPOPT parameter, create file QTEMP/QSQLPRE with a sufficiently long record length prior to using the CRTSQLRPGI command again.
So one option is to create QTEMP/QSQLPRE (and BOB might be able to do that via issue #128)
The other option would be for the precompiler to use a larger record length. A better solution would be for the precompiler to use an IFS temporary file.