CA-IDMS LRF擦除

时间:2017-12-15 09:14:18

标签: mainframe erase

我有一个OBTAIN FIRST,接着是一个循环。在循环中,我有一个ERASE语句和一个OBTAIN NEXT。

PERFORM LEES-LC4DP-LC4DP-DAT-GE-E              
PERFORM UNTIL LR-STATUS NOT = 'LC4DP-AANW' OR  
              LC4DP-KALDAG > H-AL0726-IN-DATTOT
  IF LC4DP-KALDAG >= H-AL0726-IN-DATVAN AND    
     LC4DP-KALDAG <= H-AL0726-IN-DATTOT AND    
     LC4DP-KUMDAG-KOD = H-AL0726-IN-KUMDAG-KOD 
  THEN                                         
    PERFORM ERASE-LC4DP                        
  END-IF                                       
  PERFORM LEES-LC4DP-LC4DP-DAT-GE-V            

在某个时刻,我删除了SET 中的最后一条记录。之后,我的OBTAIN NEXT语句返回一个&#39; LR-NOT-FOUND&#39;虽然我期待0326。

为什么它会返回LR-NOT-FOUND?

LRF:

SELECT  FOR KEYWORD LC4DP-DAT-GE                         
        OBTAIN FIRST LC4JRDR-02                             
            WHERE CALCKEY EQ LC4JR02-KEYJR OF LR            
            ON 0000 NEXT                                    
            ON 0326 RETURN LC4JR-NIET-AANW                  
        COMPUTE LC4DP-KUMDAG-KOD OF LR = '.'                
            ON 0000 NEXT                                    
        OBTAIN FIRST LC4DPDR-01 WITHIN LC4JR02-LC4DP01      
            WHERE SORTKEY EQ LC4DP-KEYDP OF LR              
            ON 0000 RETURN LC4DP-AANW                       
            ON 0326 NEXT                                    
        OBTAIN EACH PRIOR LC4DPDR-01 WITHIN LC4JR02-LC4DP01 
            WHERE LC4DP-KALDAG GE LC4DP-KALDAG OF LR        
            ON 0000 RETURN LC4DP-AANW                       
            ON 0307 RETURN LC4DP-NIET-AANW                  

首先获得

OBTAIN FIRST LC4JR03-LR WHERE LC4DP-DAT-GE             
EVALUATE LR-STATUS                                     
WHEN 'LC4DP-AANW'                                      
  ACCEPT H-DBKEY-LC4DP FROM LC4DPDR-01 CURRENCY        
  PERFORM CONVERSIE-DB-LC4DP                           
WHEN 'LC4DP-NIET-AANW'                                 
WHEN 'LC4JR-NIET-AANW'                                 
  CONTINUE                                             
WHEN OTHER                                             
  DISPLAY 'LR-STATUS=' LR-STATUS                       
  MOVE '22'                 TO AL0726W1-OUT-FOUT-KOD   
  GOBACK                                               
END-EVALUATE

获取下一个

OBTAIN NEXT  LC4JR03-LR WHERE LC4DP-DAT-GE           
EVALUATE LR-STATUS                                   
WHEN 'LC4DP-AANW'                                    
  ACCEPT H-DBKEY-LC4DP FROM LC4DPDR-01 CURRENCY      
  PERFORM CONVERSIE-DB-LC4DP                         
WHEN 'LC4DP-NIET-AANW'                               
WHEN 'LC4JR-NIET-AANW'                               
  CONTINUE                                           
WHEN OTHER                                           
  DISPLAY 'LR-STATUS=' LR-STATUS                                        
  MOVE '23'                 TO AL0726W1-OUT-FOUT-KOD 
  GOBACK                                             
END-EVALUATE

0 个答案:

没有答案