DATASET_CANT_CLOSE错误号32“断管”

时间:2015-01-12 09:06:07

标签: sap abap

我在SAP ABAP中遇到错误,该错误表示DATASET_CANT_CLOSE,错误号为32(Broken Pipe)。问题是:什么程序触发了这种错误?

据我所知,此错误是由以下原因引发的:

CLOSE DATASET dset

但我无法重现错误,因为我不知道什么程序会触发这种错误。

这是我使用的代码:

method GENERATE_TXT_FILE.

  DATA :
        lwa_data TYPE t_line,
        lv_param TYPE sxpgcolist-parameters.

  "Upload File to Server
  *Open Dataset
  OPEN DATASET im_file_name FILTER 'dos2ux'
      FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.

  CLEAR lwa_data.

  LOOP AT it_data INTO lwa_data.

    CATCH SYSTEM-EXCEPTIONS file_access_errors = 4
                        OTHERS = 8.
      TRANSFER lwa_data-lines TO im_file_name.
    ENDCATCH.

    IF sy-subrc <> 0.
      CLEAR lwa_data.
      EXIT.
    ENDIF.
    CLEAR lwa_data.

  ENDLOOP.

  *Close Dataset
  CLOSE DATASET im_file_name.

2 个答案:

答案 0 :(得分:0)

正如我通过后台作业日志调查的那样,运行后台作业的当前服务器似乎尚未映射到文本文件文件夹。解决方案是将服务器重新映射到文本文件夹。

答案 1 :(得分:0)

您正在使用FILTER extension to OPEN DATASET - 这可能是一个巨大安全问题,并且除非您知道自己正在做什么,否则会引发大量的可移植性问题。不是问题的关键所在。来自文档:

  

执行语句OPEN DATASET时,将启动进程   指定语句的操作系统。当文件是   打开读取,通道(管道)与STDOUT链接   进程,在文件读取期间从中读取数据。文件   本身与该过程的STDIN相关联。文件打开时   对于写入,通道(管道)链接到进程的STDIN,to   写入时传递哪些数据。该过程的输出是   转移到这个文件。

在您的情况下,过滤器命令可能决定纾困 - 请参阅this answer。为什么难以调查 - 您可能需要查看各种系统日志才能找到答案。如果问题确实是一些未映射的网络文件夹,您可以尝试切换到UNC路径。