枝番を自動で取得したい

概要

新基幹システムの販売未収マスタのような複合キーの内に枝番がキーとしてあるマスタにおいて、新規登録画面により自動で枝番を取得したい場合のコード。
請求先コード/商品コード/未収区分/SEQ/EDA

コード例

              
00010   02 FLG-AREA.
00020    03 CNT-EDA        PIC 9(03).
00030    03 EDA-FLG        PIC 9(01).
00040
00050*====*> EDA                                                  
00060 CHECK-EDABAN.                                                  
00070   IF ( MENU = 1 )                                           
00080   AND ( GD-ATEN NOT = "F091" ) AND ( GD-ATEN NOT = "F092" )
00090    THEN                                                     
00100     INITIALIZE  CNT-EDA GD-EDABAN EDA-FLG                  
00110     PERFORM VARYING CNT-EDA FROM 1 BY 1                    
00120        UNTIL ( CNT-EDA > 99 ) OR ( EDA-FLG = 1 )        
00130     MOVE GD-SEQCOD    TO MMHB-KEY-SEQCOD              
00140     MOVE GD-SHNCOD    TO MMHB-KEY-SHNCOD              
00150     MOVE GD-MSYKBN    TO MMHB-KEY-MSYKBN              
00160     MOVE GD-SEQBAN    TO MMHB-KEY-SEQBAN              
00170     MOVE CNT-EDA     TO MMHB-KEY-EDABAN              
00180     MOVE MMHB-KEY-SEQCOD TO MMHBSEQCOD OF MSMHBF         
00190     MOVE MMHB-KEY-SHNCOD TO MMHBSHNCOD OF MSMHBF         
00200     MOVE MMHB-KEY-MSYKBN TO MMHBMSYKBN OF MSMHBF         
00210     MOVE MMHB-KEY-SEQBAN TO MMHBSEQBAN OF MSMHBF         
00220     MOVE MMHB-KEY-EDABAN TO MMHBEDABAN OF MSMHBF         
00230     MOVE ZERO      TO BTRV-STS                     
00240     READ MSMHBF                                           
00250        INVALID KEY                         
00260           MOVE 4 TO BTRV-STS        
00270     END-READ                                  
00280     PERFORM FLSTS-CVT                        
00290      EVALUATE TRUE                          
00300       WHEN BTRV-OK                         
00310        IF ( CNT-EDA > 98 )                
00320         MOVE 1       TO EDA-FLG   
00330         MOVE 1       TO ERR-FLG   
00340         MOVE CNT-EDA    TO GD-EDABAN 
00350        END-IF                              
00360       WHEN OTHER                           
00370        IF ( CNT-EDA > 99 )                
00380         MOVE 1       TO ERR-FLG   
00390        END-IF                              
00400        MOVE 1        TO EDA-FLG   
00410        MOVE CNT-EDA     TO GD-EDABAN 
00420      END-EVALUATE                            
00430     END-PERFORM                               
00440     EVALUATE GD-EDABAN ALSO ERR-FLG          
00450       WHEN 1 THRU 99 ALSO 0                         
00460         CONTINUE                                   
00470       WHEN 99    ALSO 1                         
00480         MOVE L-ERR62    TO SV-ERRMSG          
00490         MOVE " ※空番割当エラー "  TO GD-ERRDSP 
00500       WHEN OTHER                                    
00510         MOVE 1       TO ERR-FLG            
00520         MOVE L-ERR61    TO SV-ERRMSG          
00530         MOVE " ※例外エラー "    TO GD-ERRDSP 
00540     END-EVALUATE                                       
00550   END-IF.