OPEN_PIPE_NO_AUTHORITY при открытии несуществующего файла с помощью OPEN DATASET FOR OUTPUT В ДВОИЧНОМ РЕЖИМЕ без ФИЛЬТРА - PullRequest
1 голос
/ 14 июля 2020

У меня очень странная проблема.

У меня есть стандартная программа со следующим фрагментом кода, который пытается создать файл в ответ на предыдущую попытку открыть его с помощью OPEN DATASET ... FOR INPUT IN BINARY MODE.

CATCH SYSTEM-EXCEPTIONS dataset_too_many_files = 6
                        open_dataset_no_authority = 7
                        open_pipe_no_authority = 8
                        dataset_no_pipe = 9.
    OPEN DATASET filename FOR OUTPUT IN BINARY MODE
      MESSAGE msg.
ENDCATCH.

На удивление ответом на это будет sy-subrc = 8, что, согласно документации SAP, может произойти только тогда, когда OPEN DATASET используется с FILTER.

Сообщение в переменной msg имеет это File could not be opened, что не имеет значения, потому что мы пытаемся создать этот файл.

Кто-нибудь испытывал что-то подобное? Я полагаю, это как-то связано с полномочиями создавать файл в заданном каталоге на уровне операционной системы, но я не могу найти никаких других журналов или трассировки для этого. В данном случае сообщение об ошибке и sy-subrc = 8 на самом деле вводят в заблуждение. Можно ли увидеть больше информации при активированной трассировке в ST01?

Ответы [ 2 ]

1 голос
/ 15 июля 2020

Оказалось, что причиной проблемы было в первую очередь отсутствие каталога, в котором должен быть создан файл. Неудивительно, что системе не удалось создать файл в несуществующей папке. В таком случае сообщение об ошибке все равно вводит в заблуждение.

0 голосов
/ 15 июля 2020

Open Dataset Docu : и Open datset os дополнения

На удивление ответом на это будет sy-subr c = 8, что согласно Документация SAP возможна только тогда, когда OPEN DATASET используется с FILTER.

Не совсем то, что говорится в документе. Стоит еще раз взглянуть. Ie Добавит sy-subrc = 8 в команду open dataset, что означает

The operating system could not open the file.
...