RPG Problems

Posted on 2008-10-20
Last Modified: 2013-11-25
I am getting compile errors.  I have taken one 8 hour class in RPG and I could use expert help with the following code/errors - I have also attached a word document - It is very hard to cut and paste from - the compiler errors are in red.

0001.00 HDATFMT(*ISO)    DATEDIT(*YMD)                                                                  
0002.00 FBADMPEU   IF   E             DISK                                                              
0003.00 FBADMPNU   IF   E             DISK                                                              
0004.00 FNAMECHG   O    E           K DISK    RENAME(NAMECHG:NCOUT)                                      
0005.00 DYEST             S               D                                        YESTERDAY VARIABLE    
0006.00 DTODAY            S               D                                        TODAY'S DATE          
0007.00 DHOSP             S              3I 0                                      HOSPITAL #            
0008.00 DCHGDT            S             10I 0                                      DATE NAME CHANGED    
0009.00 DSPID             S             20A                                        SPID                  
0010.00 DCHGBY            S              4A                                        NAME CHGED BY INITIL  
0011.00 DNEWLN            S             35A                                        NEW LAST NAME        
0012.00 DPREVFN           S             35A                                        PREVIOUS FIRST NAME  
0013.00 DPREVMN           S             35A                                        PREVIOUS MIDDLE NAME  
0014.00 DNEWFN            S             35A                                        NEW FIRST NAME        
0015.00 DNEWMN            S             35A                                        NEW MIDDLE NAME      
0016.00 DPREVLN           S             35A                                        PREVIOUS LAST NAME    
0018.00  /FREE                                                                                          
0019.00     TODAY = %date();                                                                            
0020.00     YEST = TODAY + %DAYS(-1);                                                                                        
0021.00     DOU %EOF(BADMPNU);                                                                                                
0022.00       READ PFPNR1;                                                                                                  
0023.00       IF NOT %EOF(BADMPNU);                                                                                        
0024.00          IF %DATE(PNNMDT) = YEST;                                                                                    
0025.00           chain (PNHSP : PNSPID) BADMPEU;                                                                            
0026.00              IF %FOUND(BADMPEU);                                                                                      
0027.00                 HOSP = PEHSP;                                                                                        
0028.00                 CHGDT = PNNMDT;                                                                                      
0029.00                 SPID = PNSPID;                                                                                        
0030.00                 PREVLN = PNLSTN;                                                                                      
0031.00                 PREVFN = PNFSTN;                                                                                      
0032.00                 PREVMN = PNMIDN;                                                                                      
0033.00                 NEWFN = PEFSTN;                                                                                      
0034.00                 NEWMN = PEMIDN;                                                                                      
0035.00                 NEWLN = PELSTN;                                                                                      
0036.00                 CHGBY = PNLMBY;                                                                                      
0037.00                 WRITE NAMECHG;                                                                                      
0038.00               ENDIF;                                                                                081019                  
0039.00            ENDIF;                                                                                   081019                  
0040.00         ENDIF;                                                                                    
0041.00       ENDDO;                                                                                      
0043.00    *INLR = *ON;                                                                                  
0044.00    RETURN;                                                                                        

000400  External descriptions for file NAMECHG not found; file is  
*RNF7066 00      2 000200  Record-Format PFPER1 not used for input or output.              
 *RNF7702 30    100 002500  A list of key fields is not allowed with program described      
                            file.   corresponds to line 25                                                          
 *RNF7503 30    112 003700  Expression contains an operand that is not defined. corresponds to line 37            
 *RNF7086 00      3 000300  RPG handles blocking for file BADMPNU. INFDS is updated          
                            only when blocks of data are transferred.

The file called NAMECHG had a record format of NAMECHG  if the line reads:
0004.00 FNAMECHG   O    E             DISK        

Then I get the following error:

*RNF2121 30 a      000400  Record format NAMECHG in file NAMECHG already defined;    
                           record format is ignored.                                
*RNF2109 40 b      000400  All Record Formats for externally-described file NAMECHG  
                           ignored or dropped due to error; file ignored.            

Question by:Jeanniem
1 Comment

Accepted Solution

Jeanniem earned 0 total points
ID: 22770094
I found that the main problem with the above code is that I didn't specify that the files had key fields in the F spec.

Featured Post

Optimizing Cloud Backup for Low Bandwidth

With cloud storage prices going down a growing number of SMBs start to use it for backup storage. Unfortunately, business data volume rarely fits the average Internet speed. This article provides an overview of main Internet speed challenges and reveals backup best practices.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
rpgle Arrays 3 1,959
System 36  to native AS400 conversion. USRDSPMGT in display files very slow. 5 1,570
DFSORT 4 471
SQL Error 2 548
Each year, investment in cloud platforms grows more than 20% ( as an increasing number of companies begin to…
This problem is more common than not and I will show you some things to check to solve this problem.
This tutorial gives a high-level tour of the interface of Marketo (a marketing automation tool to help businesses track and engage prospective customers and drive them to purchase). You will see the main areas including Marketing Activities, Design …
A short tutorial showing how to set up an email signature in Outlook on the Web (previously known as OWA). For free email signatures designs, visit If you want to manage em…

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question