Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Internal table data

Former Member
0 Likes
818

Hi,

Is there any program that writes internal table data into excel file on the app server ? PLease let me know..

Thanks.

Uma

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
776

Use FM to save the data in Application server

SAP_CONVERT_TO_XLS_FORMAT

6 REPLIES 6
Read only

Former Member
0 Likes
777

Use FM to save the data in Application server

SAP_CONVERT_TO_XLS_FORMAT

Read only

0 Likes
776

Will the function module 'SAP_CONVERT_TO_XLS_FORMAT' write an excel file in the application server?

Thanks..

Uma

Read only

0 Likes
776

It will not, only will convert it to excel format, but you don't need to do that either. You can simply create a comma delimited file on the app server, this .csv file will be opened by excel with no problems, here is an example.



report zrich_0001.

parameters: d1 type localfile default '/usr/sap/TST/SYS/Test.csv'.

data: begin of itab occurs 0,
      field1(20) type c,
      field2(20) type c,
      field3(20) type c,
      end of itab.
data: str type string.

start-of-selection.

itab-field1 = 'ABC'.
itab-field2 = 'DEF'.
itab-field3 = 'GHI'.
append itab.

itab-field1 = '123'.
itab-field2 = '456'.
itab-field3 = '789'.
append itab.

  open dataset d1 for output in text mode.
  loop at itab.
    concatenate itab-field1 itab-field2 itab-field2 into str
                  separated by ','.
    transfer str to d1.
  endloop.
  close dataset d1.

Regards,

Rich Heilman

Read only

0 Likes
776

I just found one function module which will download xl file to unix server.

See the FM in Include : LC13ZF01

FM Names :

IF I_FTFTYPE = LC_FILEFORMAT_ASCII.

CALL FUNCTION 'C13Z_FILE_DOWNLOAD_ASCII'

EXPORTING

I_FILE_FRONT_END = I_FTFRONT

I_FILE_APPL = I_FTAPPL

I_FILE_OVERWRITE = I_FLG_OVERWRITE

IMPORTING

E_FLG_OPEN_ERROR = L_FLG_OPEN_ERROR

E_OS_MESSAGE = L_OS_MESSAGE

EXCEPTIONS

FE_FILE_OPEN_ERROR = 1

FE_FILE_EXISTS = 2

FE_FILE_WRITE_ERROR = 3

AP_NO_AUTHORITY = 4

AP_FILE_OPEN_ERROR = 5

AP_FILE_EMPTY = 6

OTHERS = 7.

ELSE.

CALL FUNCTION 'C13Z_FILE_DOWNLOAD_BINARY'

EXPORTING

I_FILE_FRONT_END = I_FTFRONT

I_FILE_APPL = I_FTAPPL

I_FILE_OVERWRITE = I_FLG_OVERWRITE

IMPORTING

E_FLG_OPEN_ERROR = L_FLG_OPEN_ERROR

E_OS_MESSAGE = L_OS_MESSAGE

EXCEPTIONS

FE_FILE_OPEN_ERROR = 1

FE_FILE_EXISTS = 2

FE_FILE_WRITE_ERROR = 3

AP_NO_AUTHORITY = 4

AP_FILE_OPEN_ERROR = 5

AP_FILE_EMPTY = 6

OTHERS = 7.

ENDIF.

Read only

Former Member
0 Likes
776

Hello,

Check this:


FORM DOWNLOAD_FILE.

  DATA: LT_TAB TYPE TABLE OF STRING.
  DATA: LR_TAB TYPE STRING,
        L_F_NETPR_VE(21) TYPE C,
        L_F_NETPR_UM(21) TYPE C,
        L_F_ERDAT_VE(10),
        L_F_ERDAT_UM(10),
        L_F_PLAN(21) TYPE C,
        L_F_IST(21) TYPE C,
        L_F_OBLIGO(21) TYPE C,
        L_F_WIP(21) TYPE C,
        LV_FILE TYPE STRING,
        L_F_COUNT TYPE I,
        L_F_DATUM(10).

  CLEAR: LT_TAB,LR_TAB.
  REFRESH: LT_TAB.

  CONCATENATE TEXT-U01 TEXT-U02 TEXT-U03 TEXT-U04 TEXT-U05
              TEXT-U07 TEXT-U08 TEXT-U09 TEXT-U10 TEXT-U11 TEXT-U12
              TEXT-U14 TEXT-U17 TEXT-U15 TEXT-U16 TEXT-U21 TEXT-U18
              TEXT-U19 TEXT-U20 INTO LR_TAB
              SEPARATED BY CON_TAB.
  APPEND LR_TAB TO LT_TAB.

  LOOP AT G_T_OUTTAB.
    CLEAR: L_F_NETPR_VE,L_F_NETPR_UM, L_F_ERDAT_VE, L_F_ERDAT_UM,
           L_F_PLAN,L_F_IST,L_F_OBLIGO.
    WRITE: G_T_OUTTAB-NETPR_VE TO L_F_NETPR_VE,
           G_T_OUTTAB-NETPR_UM TO L_F_NETPR_UM,
           G_T_OUTTAB-ERDAT_VE TO L_F_ERDAT_VE,
           G_T_OUTTAB-ERDAT_UM TO L_F_ERDAT_UM,
           G_T_OUTTAB-PLAN TO L_F_PLAN,
           G_T_OUTTAB-IST TO L_F_IST,
           G_T_OUTTAB-OBLIGO TO L_F_OBLIGO,
           G_T_OUTTAB-WIP TO L_F_WIP,
           SY-DATUM TO L_F_DATUM.
    CONCATENATE G_T_OUTTAB-PRATX G_T_OUTTAB-POSID G_T_OUTTAB-POST1
                G_T_OUTTAB-WWGBE G_T_OUTTAB-WWGFE G_T_OUTTAB-VERNA
                G_T_OUTTAB-STTXT_INT G_T_OUTTAB-STTXT_EXT
                L_F_NETPR_VE L_F_ERDAT_VE L_F_NETPR_UM L_F_ERDAT_UM
                L_F_PLAN L_F_IST L_F_OBLIGO L_F_WIP G_T_OUTTAB-VBELN_VE
                G_T_OUTTAB-VBELN_UM L_F_DATUM
                INTO LR_TAB SEPARATED BY CON_TAB.
    APPEND LR_TAB TO LT_TAB.
  ENDLOOP.

  IF PC = 'X'.
    LV_FILE = FILENAME.
    CALL FUNCTION 'GUI_DOWNLOAD'
         EXPORTING
              FILENAME                = LV_FILE
              FILETYPE                = 'ASC'
         TABLES
              DATA_TAB                = LT_TAB
         EXCEPTIONS
              FILE_WRITE_ERROR        = 1
              NO_BATCH                = 2
              GUI_REFUSE_FILETRANSFER = 3
              INVALID_TYPE            = 4
              NO_AUTHORITY            = 5
              UNKNOWN_ERROR           = 6
              HEADER_NOT_ALLOWED      = 7
              SEPARATOR_NOT_ALLOWED   = 8
              FILESIZE_NOT_ALLOWED    = 9
              HEADER_TOO_LONG         = 10
              DP_ERROR_CREATE         = 11
              DP_ERROR_SEND           = 12
              DP_ERROR_WRITE          = 13
              UNKNOWN_DP_ERROR        = 14
              ACCESS_DENIED           = 15
              DP_OUT_OF_MEMORY        = 16
              DISK_FULL               = 17
              DP_TIMEOUT              = 18
              FILE_NOT_FOUND          = 19
              DATAPROVIDER_EXCEPTION  = 20
              CONTROL_FLUSH_ERROR     = 21
              OTHERS                  = 22.
    IF SY-SUBRC <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      LEAVE PROGRAM.
    ELSE.
      DESCRIBE TABLE LT_TAB LINES L_F_COUNT.
      SUBTRACT 1 FROM L_F_COUNT.
      MESSAGE I145 WITH L_F_COUNT FILENAME.
    ENDIF.

  ELSEIF AP = 'X'.
    OPEN DATASET FILENAME FOR OUTPUT IN TEXT MODE.
    IF SY-SUBRC NE 0.
      MESSAGE S041(S9) WITH FILENAME.
      EXIT.
    ENDIF.
    LOOP AT LT_TAB INTO LR_TAB.
      TRANSFER LR_TAB TO FILENAME.
    ENDLOOP.
    IF SY-SUBRC = 0.
      CLOSE DATASET FILENAME.
      DESCRIBE TABLE LT_TAB LINES L_F_COUNT.
      SUBTRACT 1 FROM L_F_COUNT.
      MESSAGE I145 WITH L_F_COUNT FILENAME.
    ENDIF.
  ENDIF.

ENDFORM.                    " DOWNLOAD_FILE

Regards,

Vasanth

Read only

Former Member
0 Likes
776

hi,

once u try with this FM <b>KCD_EXCEL_OLE_TO_INT_CONVERT</b>

has a restriction of field width not greater than 32 characters.

regards,

Ashokreddy