OPEN_PIPE_NO_AUTHORITY 在不使用 FILTER 的情况下使用 OPEN DATASET FOR OUTPUT IN BINARY MODE 打开不存在的文件

OPEN_PIPE_NO_AUTHORITY upon opening non-existing file using OPEN DATASET FOR OUTPUT IN BINARY MODE without FILTER

我有一个很奇怪的问题。

我有一个标准程序,其中包含以下代码段,它尝试创建一个文件以响应先前使用 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 DATASETFILTER 一起使用时才会发生。

msg 变量中的消息有 File could not be opened,这是不相关的,因为我们正在尝试创建此文件。

有没有人经历过这样的事情?我想这与在操作系统级别的给定目录中创建文件的权限有关,但我找不到任何其他日志或对其进行跟踪。在这种情况下,错误消息和 sy-subrc = 8 似乎实际上具有误导性。在ST01中激活跟踪是否可以看到更多信息?

Open Dataset Docu: 和 Open datset os additions

Suprisingly the response to that is sy-subrc = 8 which according to SAP documentation can happen only when OPEN DATASET is used with FILTER.

不完全是文档中所说的。值得再看看。 即在 open dataset 命令上添加 sy-subrc = 8 意味着

The operating system could not open the file.

原来问题的原因首先是缺少创建文件的目录。难怪系统无法在不存在的文件夹中创建文件。在这种情况下,错误消息无论如何都是误导性的。