Die Änderung der Generierung hat nichts bewirkt. Zusätzlich habe ich in die Prozedur einen Rückgabewert eingefügt den ich innerhalb der Prozedur stumpf mit einem Wert gefüllt habe. Der Wert ist als VALUE deklariert und wird aber nicht verändert durch den Aufruf der Prozedure.

P GetBLFOLGE2 B
D GetBLFOLGE2 PI
D pMdt like(FRD1.MDT) CONST
D pBlFolge like(FRD1.BLFOLGE)
//--------------------
// Lokale Variablen
//--------------------
D vBlFolge S like(FRD1.BLFOLGE) inz
‚C/EXEC SQL
‚C+ DECLARE C1 CURSOR FOR
C+ SELECT * FROM SCHUELLER/ARBP2P
C+ WHERE FERT1B BETWEEN 680 AND 699 AND BLOCKN <> 0
C+ ORDER BY MDT, BLOCKN, FERT1B, LFDNREH, STKZ2B,
C+ CASE RLB WHEN 'R' THEN '1' WHEN ' ' THEN '2' WHEN 'L' THEN '3' END
C+ FOR UPDATE OF BLFOLGE
‚C/END-EXEC

šC/EXEC SQL
C+ OPEN C1
‚C/END-EXEC

‚C/EXEC SQL WHENEVER NOT FOUND GO TO DONE1
‚C/END-EXEC
C*-----------------------------
‚C* SQLCOD DOUNE 0
C*-----------------------------
‚C/EXEC SQL
ˆC+ FETCH C1 INTO :BLFOLGE
šC/END-EXEC
C*-----------------------------
C* ENDDO
C*-----------------------------
C/EXEC SQL CLOSE C1
C/END-EXEC
C*-----------------------------

C DONE1 TAG
/FREE

pBlFolge = 99;
return;

/END-FREE