Compiler Errors – RPGLE Tutorial

Advertisements

In this tutorial we focuses on compiler errors in RPGLE, how to find compiler errors using spooled files and correct them.

This is the second tutorial of the set of RPGLE Free format Tutorial. If you have not completed first tutorial of Hello World RPGLE Tutorial, I strongly suggest you to go through it because this part is linked with it.

Previous Tutorial


Lets edit our source again, and change it as follows instead of displaying ‘Hello World’, it tries to display a variable called “name“. This is an undefined variable and generates a compiler error.

edited source with undefined variable
edited source with undefined variable

Delete the old version of the program by using the DLTPGM command

Delete Program - DLTPGM command menu
Delete Program – DLTPGM command menu

Make sure to put your library to library list or set it as current library. otherwise you have to specify which library your program is in. Learn more about library list >> Library List

Advertisements

Compile the program again. It fails with a severity 30 compiler error.

Compilation stopped error. Severity 30 errors found in program
Compilation stopped error. Severity 30 errors found in program

If you are using IBM RDi, for edit RPGLE click the RNF7030 error in the Error List Window. It highlights the line that tried to display the “name” variable.

Advertisements

If you are using SEU, use the WRKSPLF command to see the list of spooled files. use F18 (SHIFT + F6) to go to the bottom of the list.

List of Spooled Files in AS400
List of Spooled Files in AS400

If you are not familiar with spooled files, go through WRKSPLF – Work with Spooled Files. It explains all about spooled files with examples.


Advertisements

Find Compiler errors in Spooled Files

Use option 5 on the HELLO spooled file and use the B command to go to the end of the listing.

End of Spooled File for HELLO Program
End of Spooled File for HELLO Program

Page up a bit until you find the list of the compiler errors , then take note of the error message id with the highest severity. In this example it’s RNF7030

Spotting Msg id of highest severity error in spooled file
Spotting Msg id of highest severity error in spooled file

Return to the beginning (command T on control) of the file and enter RNF7030 on the search line, then hit F16 (SHIFT + F4) to locate the compiler errors in the listing.

RNF7030 error with error message and statement id
RNF7030 error with error message and statement id

The compiler error message has a statement number (statement 2) and the error message is “The name or indicator NAME is not defined“.

Advertisements

Page back in the listing to find statement 2 (on the left side of the listing). It is the line that tried to display the “name” variable.

Source Specification inside the Spooled file
Source Specification inside the Spooled file

The compiler error message indicates that NAME is not defined. To correct it, you have to add a definition for a variable called NAME. RPG IV is not case-sensitive for variable names, so variable “name” is the same as variable “NAME“. The uppercase form of the name appears in the listing in error messages and the cross-reference.


Advertisements

Correct compiler errors and compile program

Move back to Program Development Manager (PDM) pressing F12 twice or using WRKMBRPDM command.

If you want to learn most useful AS400 commands, you can follow this article which list 23 most useful AS400 commands.

Open program in SEU using option 2 and add the following dcl-s statement to the beginning of your program to define variable “name“. Remember to code only between columns 8 – 80.

dcl-s name char(10) inz('Corona');
Edit Source adding dcl-s statement to add variable name
Edit Source adding dcl-s statement to add variable name

Warning: SEU gives errors for every free-form H, F, D, or P statement Therefore RPG syntax checker used by SEU was last updated in 6.1, so it does not understand the new syntax. If you still want to use SEU, you have to exit with errors after you save your source.

If you got an error like An assignment operator is expected with the EVAL operation that because SEU does not understand the new syntax of RPGLE free format. you have to exit with errors after you save your source. anyway the compiler will not give any errors and it will run without errors.

Recompile the program and call it again. It puts up a message saying “DSPLY Corona“.

Output of Program
Output of Program

That is the end of compiler errors – RPGLE tutorial. In next chapter we can focus on debugging RPGLE programs.

Advertisements

Source : IBM Developer Portal

Advertisements