ABAP OPEN DATASET和TRANSFER

时间:2014-03-26 08:39:34

标签: abap

我正在尝试创建一个新文件,其中包含我将从BD中提取的信息。

CONCATENATE cdf ndf
INTO cdf.

 OPEN DATASET cdf for APPENDING IN LEGACY TEXT MODE WITH SMART LINEFEED.
  IF sy-subrc = 0.
      TRANSFER wa_es_tabt TO ndf.
      CLOSE DATASET cdf.
   ENDIF.

CDF =我的文件的路径,其中包含用户将要放置的名称

NDF =用户名称

wa_es_tabt =我打算保存为txt的数据库信息。

sy-subrc始终为8,文件未打开...为什么?

感谢...

2 个答案:

答案 0 :(得分:0)

我确实解决了我的问题这是我在ABAP中创建保存txt文件的程序示例。

FORM g_fich  TABLES   dt_es_tab STRUCTURE es_tabd
             USING    str       TYPE string
                      str1      TYPE string.

  CONCATENATE cdf ndf '.txt'
  INTO str.
  CONCATENATE 'Parceiro' 'Conta Contrato' 'Conttrato' 'Nome' 'Morada'
  INTO str1
  SEPARATED BY space.

  OPEN DATASET str FOR APPENDING IN TEXT MODE ENCODING DEFAULT WITH SMART LINEFEED .

  IF sy-subrc = 0.
    LOOP AT dt_es_tab INTO wa_es_tabt.

      IF cont = 0.
        TRANSFER str1 TO str.
        cont = 2.
      ENDIF.

      TRANSFER wa_es_tabt TO str.
    ENDLOOP.
  ENDIF.

  CLOSE DATASET str.

ENDFORM.                    " G_FIC

CDF =我的文件的路径,其中包含用户将要放置的名称

NDF =用户名称

wa_es_tabt =来自BD的数据,我打算保存为txt。

旧的问题是我打算创建一个没有扩展名的新文件,例如" .txt",和 我试图打开一个文件,只是他的名字。

感谢...

答案 1 :(得分:0)

嗯......那不是重点。您只需在OPEN DATASETTRANSFER语句中使用相同的目标。

例如:

OPEN DATASET abc FOR OUTPUT/APPENDING.
TRANSFER <whatever_you_want> TO abc.

在您的第一个示例中,您获得了cdf的开放式数据集,但转移到ndf根本未打开进行传输。

后一个示例仅有效,因为您同时使用strOPEN DATASET的目标变量TRANSFER