SETLLは位置決めの為に一度行うものです。KEY1=B・KEY2=ABDの位置から読み始めなさい、とPGMに命令してます。ファイルにKEY3まで定義してあったとしても、KEY1・KEY2をキーリストに定義しSETLL・READEで問題ありません。むしろ今回の処理では、記述しない方がすっきりします。SETLL・READEでDOで回した時、に該当する一件目しか読み込まないというのであれば、ロジックを見直した方がいいかと思います。キーリスト KEY001 KLIST KFLD KEY1 KFLD KEY2パターン1・・・IKDさんの記述した*HIVAL KEY001 SETLLFILEA DO *HIVAL KEY001 READEFILEA 9090 LEAVE 処理 ENDDOパターン2・・・DOWEQ KEY001 SETLLFILEA KEY001 READEFILEA 90 *IN90 DOWEQ*OFF 処理 KEY001 READEFILEA 90 ENDDOパターン3・・・DOUEQ KEY001 SETLLFILEA *IN90 DOUEQ*ON KEY001 READEFILEA 90 *IN90 IFEQ *ON 処理 ELSE 処理 ENDIF ENDDOこの何れかに該当するようロジックを見直してください。DOの回し方は好みが分かれるところですが、それぞれ特性を生かした記述を心がけて下さい。極力余計な記述をさけ、特性を生かしメンテナンスの向上を意識しましょう。尚、CHAIN・LOKUP・READなどの命令直前でフラグを*OFFにする必要もありません。