• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2659
  • Last Modified:

RPG Problems

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.            

1 Solution
JeanniemAuthor Commented:
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: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

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.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now