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

Convert internal table data into XML format

Former Member
0 Likes
1,935

Hi,

could you please tell me how to convert data stored in an internal table to XML format and vice versa.

Thanks in advance.

Prajitha.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
533

Hi,

u can do this way..


DATA: name TYPE string,
      w_file_name TYPE string,
      w_file_path TYPE string,
      full_path TYPE string,
      action.

  CALL METHOD cl_gui_frontend_services=>file_save_dialog
    EXPORTING
      window_title         = name
      initial_directory    = 'c:\Documents and Settings\2q\Desktop'
      prompt_on_overwrite  = 'X'
      default_extension    = 'XML'
      default_file_name    = name
    CHANGING
      filename             = w_file_name
      path                 = w_file_path
      fullpath             = full_path
      user_action          = action
    EXCEPTIONS
      cntl_error           = 1
      error_no_gui         = 2
      not_supported_by_gui = 3
      OTHERS               = 4.

  IF action EQ 0.
    CALL METHOD cl_gui_frontend_services=>gui_download
      EXPORTING
        filename                = w_file_name
        filetype                = 'BIN'
      CHANGING
        data_tab                = <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
        not_supported_by_gui    = 22
        error_no_gui            = 23
        OTHERS                  = 24.
  ENDIF.

4 REPLIES 4
Read only

Former Member
0 Likes
533

Hi,

Refer below link,

Regards,

Vishal

Read only

Former Member
0 Likes
534

Hi,

u can do this way..


DATA: name TYPE string,
      w_file_name TYPE string,
      w_file_path TYPE string,
      full_path TYPE string,
      action.

  CALL METHOD cl_gui_frontend_services=>file_save_dialog
    EXPORTING
      window_title         = name
      initial_directory    = 'c:\Documents and Settings\2q\Desktop'
      prompt_on_overwrite  = 'X'
      default_extension    = 'XML'
      default_file_name    = name
    CHANGING
      filename             = w_file_name
      path                 = w_file_path
      fullpath             = full_path
      user_action          = action
    EXCEPTIONS
      cntl_error           = 1
      error_no_gui         = 2
      not_supported_by_gui = 3
      OTHERS               = 4.

  IF action EQ 0.
    CALL METHOD cl_gui_frontend_services=>gui_download
      EXPORTING
        filename                = w_file_name
        filetype                = 'BIN'
      CHANGING
        data_tab                = <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
        not_supported_by_gui    = 22
        error_no_gui            = 23
        OTHERS                  = 24.
  ENDIF.

Read only

Former Member
0 Likes
533

Hi Gopi,

Check this sample prog...it converts inteernal table data to xml format....

&----


*& Report ZMD4

*&

&----


*&

*&

&----


REPORT ZMD4.

TABLES: EKKO,EKPO.

DATA: BEGIN OF IT_EKKO OCCURS 0,

EBELN TYPE EKKO-EBELN,

BUKRS TYPE EKKO-BUKRS,

END OF IT_EKKO.

DATA: BEGIN OF IT_EKPO OCCURS 0,

EBELN TYPE EKPO-EBELN,

EBELP TYPE EKPO-EBELP,

MATNR TYPE EKPO-MATNR,

END OF IT_EKPO.

DATA: BEGIN OF IT_FINAL OCCURS 0,

EBELN TYPE EKKO-EBELN,

BUKRS TYPE EKKO-BUKRS,

EBELP TYPE EKPO-EBELP,

MATNR TYPE EKPO-MATNR,

END OF IT_FINAL.

TYPES: BEGIN OF TTAB,

RECORD(5000) TYPE C,

END OF TTAB.

DATA: XMLTABLE TYPE TABLE OF TTAB,

XML_OUT TYPE STRING,

XML_OUT1 TYPE STRING,

LENGTH TYPE SY-TABIX.

SELECT-OPTIONS: SO_EBELN FOR EKKO-EBELN DEFAULT '4500000018' TO '4500000020'.

START-OF-SELECTION.

SELECT EBELN

BUKRS

FROM EKKO INTO TABLE IT_EKKO WHERE EBELN IN SO_EBELN.

IF NOT IT_EKKO[] IS INITIAL.

SELECT EBELN

EBELP

MATNR

FROM EKPO INTO TABLE IT_EKPO FOR ALL ENTRIES IN IT_EKKO WHERE EBELN EQ IT_EKKO-EBELN.

ELSE.

WRITE:/ 'NO DATA'.

ENDIF.

LOOP AT IT_EKKO.

LOOP AT IT_EKPO WHERE EBELN = IT_EKKO-EBELN.

IF SY-SUBRC = 0.

AT NEW EBELN.

IT_FINAL-EBELN = IT_EKKO-EBELN.

IT_FINAL-BUKRS = IT_EKKO-BUKRS.

ENDAT.

IT_FINAL-EBELP = IT_EKPO-EBELP.

IT_FINAL-MATNR = IT_EKPO-MATNR.

ENDIF.

APPEND IT_FINAL.

CLEAR IT_FINAL.

ENDLOOP.

CLEAR IT_FINAL.

ENDLOOP.

CALL TRANSFORMATION ID

SOURCE OUTPUT = IT_FINAL[]

RESULT XML XML_OUT.

APPEND XML_OUT TO XMLTABLE .

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

BIN_FILESIZE = LENGTH

FILENAME = 'C:\Documents and Settings\diddim\Desktop\DEMO.XML'

FILETYPE = 'BIN'

APPEND = ' '

*write_field_separator = ';'

HEADER = '00'

TRUNC_TRAILING_BLANKS = ' '

WRITE_LF = 'X'

COL_SELECT = ' '

COL_SELECT_MASK = ' '

DAT_MODE = ' '

CONFIRM_OVERWRITE = ' '

NO_AUTH_CHECK = ' '

CODEPAGE = ' '

IGNORE_CERR = ABAP_TRUE

REPLACEMENT = '#'

WRITE_BOM = ' '

TRUNC_TRAILING_BLANKS_EOL = 'X'

WK1_N_FORMAT = ' '

WK1_N_SIZE = ' '

WK1_T_FORMAT = ' '

WK1_T_SIZE = ' '

IMPORTING

FILELENGTH = LENGTH

TABLES

DATA_TAB = XMLTABLE

*FIELDNAMES =

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.

ENDIF.

Read only

Former Member
0 Likes
533

Hi Gopi,

Welcome to SDN.

Follow some suggestion please do search in SDN before posting you will get lot of posts for your same query.

https://www.sdn.sap.com/irj/sdn/advancedsearch?cat=sdn_all&query=xmlformatintointernaltable&adv=false&sortby=cm_rnd_rankvalue

Cheers!!

VEnk@