Исторически существовало два способа перечитывания файла в CL.
Сначала следует использовать RTVMBRD для получения количества записей в элементе. Циклически перебирайте записи по количеству файлов и останавливайтесь, когда количество записей достигает последней записи. Это позволяет избежать выброса CPF0864, поэтому проблема устранена.
Второе - написать две программы. Первый выполняет любые необходимые переопределения, затем вызывает вторую программу, чтобы выполнить цикл чтения. После возврата к первой программе CPF0864 очищается. Может быть применено новое переопределение, и вторая программа может быть вызвана снова. Поскольку это новый вызов, он может без проблем прочитать тот же файл.
В V5R3 было предоставлено частичное решение, позволяющее использовать до пяти DCLF в одной программе CL. Это может легко работать для этого случая. Просто используйте один DCLF для первого члена и второй DCLF для другого члена. Он также может быть использован для перечитывания того же члена. (Если требуется более пяти участников, это не поможет.)
Тем не менее, он по-прежнему не очищает условие CPF0864 для определенного DCLF.
Но в i 6.1 предоставлено гораздо более полное решение. Команда CLOSE была добавлена, и она очистит CPF0864. Он выполняет полное закрытие, поэтому файлы можно легко использовать в одной программе CL.