OPEN_PIPE_NO_AUTHORITY在不带FILTER的二进制模式下使用OPEN DATASET FOR OUT



我有一个非常奇怪的问题。

我有一个标准程序,其中包含以下代码,该程序试图创建一个文件,以响应之前使用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中的激活跟踪是否可以看到更多的信息?

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

打开数据集Docu:和打开添加的数据集

令人惊讶的是,对它的响应是sy-subrc=8,根据SAP文档,只有当OPEN DATASET与FILTER一起使用时,才会发生这种情况。

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

The operating system could not open the file.

相关内容

  • 没有找到相关文章

最新更新