Problem with Load Forwarded Subfile.

815 pts.
Tags:
AS/400 Subfiles
Hi,
I am new to this technology.
Below is My Load Forwarded subfile code.This is just a program to copy more than 9999 records nothing more than that. I was facing some Relational error in the program( Coded in Red colour).it was displaying only first 5 records on the screen. Kindly help me to rectify this.

Thanks

*************** Beginning of data ******************************************************
HDEBUG(*YES)                                                        
HOPTION(*NODEBUGIO)                                                 
FFILE2     IF   E           K DISK                                  
FEXP1      CF   E             WORKSTN                               
F                                     SFILE(EXP_SFL:RRN)            
F                                     INFDS(infds)                  
Dinfds            DS                                                
DRECNO                  378    379I 0                               
DNXTPGCOUNT       S              2P 0 INZ(*ZEROS)                   
DFIRSTRRN         S              4P 0 INZ(*ZEROS)                   
DLSTPGCOUNT       S              2P 0 INZ(*ZEROS)                   
                                                                    
C                   EVAL      *IN03=*OFF                            
C                   EXSR      MAIN                                  
C                   EXSR      DSPSFL                                
C                   SETON                                        LR 
                                                                    
C     MAIN          BEGSR                                           
C     *IN66         IFEQ      *ON                                   
C                   IF        *IN45=*OFF                            
C                   EXSR      NXTPG                                 
C                   EXSR      LOADSFL                               
                                                                    
C                   ENDIF                                           
C                   SETOFF                                       66 
C                   ELSE                                            
C     *IN66         IFEQ      *OFF                                  
C     *IN03         ANDEQ     *OFF                                  
C                   EVAL      FIRSTRRN=RECNO                        
C                   ENDIF                                           
C                   ENDIF                                           
C                   ENDSR                                           
                                                                    
C     NXTPG         BEGSR                                           
C                   EVAL      NXTPGCOUNT=0                          
C                   DO        SFLPAG                                
C                   READ      FILE2                                 
C                   IF        %EOF(FILE2)                           
C                   EVAL      LSTPGCOUNT=NXTPGCOUNT                 
C     *HIVAL        SETLL     FILE2                           
C                   LEAVE                                     
C                   ENDIF                                     
C                   EVAL      NXTPGCOUNT=NXTPGCOUNT+1         
C                   ENDDO                                     
C                   DO        NXTPGCOUNT                      
C                   READP     FILE2                           
C                   ENDDO                                     
C                   IF        NXTPGCOUNT                      
C                   READP     FILE2                           
C                   ENDIF                                     
C                   ENDSR                                     
                                                              
C     CLRSFL        BEGSR                                     
C                   EVAL      RRN=0                           
C                   EVAL      *IN50=*ON                       
C                   WRITE     EXP_CTL                         
C                   EVAL      *IN50=*OFF                      
C                   ENDSR                                     
C     *INZSR        BEGSR                                     
C                   DO        NXTPGCOUNT                               
C                   ENDDO                                              
C                   SETOFF                                       505152
C                   SETOFF                                       45    
C                   MOVEL     5             SFLPAG            1 0      
C                   Z-ADD     *ZEROS        RRN               4 0      
C                   EVAL      NXTPGCOUNT=SFLPAG                        
C                   EXSR      CLRSFL                                   
C     *LOVAL        SETLL     FILE2                                    
C                   EXSR      LOADSFL                                  
C                   EXSR      DSPSFL                                   
C                   ENDSR                                              
                                                                       
C     LOADSFL       BEGSR                                              
C                   EVAL      *IN45=*OFF                               
C                   EVAL      FIRSTRRN=RRN+1                           
C                   DO        SFLPAG                                   
C                   READ      FILE2                                    
C                   IF        %EOF(FILE2)                              
C                   SETON                                        45    
C                   LEAVESR                                             
C                   ENDIF                                               
C                   EVAL      NAME=NAME                                 
C                   EVAL      ID=ID                                     
C                   EVAL      GRADE=GRADE                               
C                   EVAL      TENURE=TENURE                             
C                   EVAL      ADDRESS=ADDRESS                           
C                   EVAL      DEPT=DEPT                                 
C                   ADD       1             RRN                         
C                   IF        RRN>9999                                  
C                   LEAVE                                               
C                   ENDIF                                               
C                   WRITE     EXP_SFL                                   
C                   ENDDO                                               
C                   ENDSR                                               
                                                                        
C     DSPSFL        BEGSR                                               
C                   SETON                                        5152   
C                   IF        RRN<=0                                    
C                   SETOFF                                       52     
C                   ENDIF                                                
C                   WRITE     HEADER                                     
C                   WRITE     FOOTER                                     
C                   EXFMT     EXP_CTL                                    
C                   SETOFF                                       5152    
C                   ENDSR                                                
****************** End of data ******************************************


Software/Hardware used:
Iseries

Answer Wiki

Thanks. We'll let you know when a new response is added.
Send me notifications when members answer or reply to this question.

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

Discuss This Question: 4  Replies

 
There was an error processing your information. Please try again later.
Thanks. We'll let you know when a new response is added.
Send me notifications when members answer or reply to this question.

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy
  • philpl1jb

    Your next page routine is mind bending.

    Why do you go to the bottom and then read backwards?

    49,730 pointsBadges:
    report
  • HABBIE
    This is one type of requirement. We supposed to code. I know that records are trying to read from back. Problem is  
     IF        NXTPGCOUNT                      
    C                   READP     FILE2                           
    C                   ENDIF        

    Here this is expecting some relational operator. Kindly help me to place a relational operator with out changing the code. It will work.

    Thanks 

    815 pointsBadges:
    report
  • philpl1jb

    I can't decode your logic in the next page subroutine.  Since you're happy with this logic then if you were reading backwards, which would occur whenever NXPTGCOUNT > 0 then you might want to read back one more row.

    C                   IF        NXTPGCOUNT  > 0


    49,730 pointsBadges:
    report
  • philpl1jb
    Maybe you could share the spec's with us.
    49,730 pointsBadges:
    report

Forgot Password

No problem! Submit your e-mail address below. We'll send you an e-mail containing your password.

Your password has been sent to:

To follow this tag...

There was an error processing your information. Please try again later.

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

Thanks! We'll email you when relevant content is added and updated.

Following