Hallo und guten Morgen,
der Hinweis war super.
Beim Open erhalte ich den file-status 95, (unvollständige Informationen). Was muß ich hier noch tun?
Inzwischen habe ich "with duplicates" eingebaut. Der Status beim Öffnen ist jetzt ok, aber beim Start erhalt ich 23 und beim folgelesen 46. Meine Idee ist, zu einem bestimmenten Mandanten eine höchste lfdNr zu ermitteln. Ich plante, den größten Wert in lfdNr zu vergeben und dann mit Prior einen Satz zurückzulesen. Das klappt wohl nicht so recht.
Mein Coding sieht nun so aus:

FILE-CONTROL.
SELECT KTOSTM1 ASSIGN TO DATABASE-KTOSTML1-ALWNULL
ORGANIZATION IS INDEXED
ACCESS IS DYNAMIC
RECORD KEY IS EXTERNALLY-DESCRIBED-KEY
WITH DUPLICATES
FILE STATUS IS KTO-STAT1.

DATA DIVISION.
FILE SECTION.
FD KTOSTM1.
01 KTO-SATZ1.
COPY DDS-ALL-FORMATS OF KTOSTML1.

WORKING-STORAGE SECTION.
* external key
01 K1-KEY.
05 K1-KTSTAT PIC X VALUE SPACE.
05 K1-KTMAND PIC 9(4) COMP-3 VALUE ZEROES.
05 K1-KTKVER PIC 9(8) COMP-3 VALUE ZEROES.


PROCEDURE DIVISION USING TAB-KVER.
OPEN I-O KTOSTM1.

* Index-Felder belegen
MOVE SPACE TO K1-KTSTAT KTO-STAT1
MOVE T-MAND(I-T) TO K1-KTMAND
MOVE 99999999 TO K1-KTKVER

START KTOSTM1
KEY NOT < K1-KEY
NULL-KEY-MAP IS KTOSTML1-NKM
INVALID KEY SET KTOS1 TO TRUE
END-START.


READ KTOSTM1 PRIOR RECORD
NULL-KEY-MAP IS KTOSTML1-NKM
NULL-MAP IS KTOSTML1-NM
AT END SET KTOR1 TO TRUE
END-READ.