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

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Suggested Solutions

Many businesses neglect disaster recovery and treat it as an after-thought. I can tell you first hand that data will be lost, hard drives die, servers will be hacked, and careless (or malicious) employees can ruin your data.
When it comes to protecting Oracle Database servers and systems, there are a ton of myths out there. Here are the most common.
Email security requires an ever evolving service that stays up to date with counter-evolving threats. The Email Laundry perform Research and Development to ensure their email security service evolves faster than cyber criminals. We apply our Threat…

860 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