메뉴 건너뛰기

SAP 한국 커뮤니티



internal table to an XML file

BlackBean 2007.06.04 16:39 조회 수 : 5041

이터널테이블의 내용을 XML로 변환하는 예제입니다.


 


 


This program exports an internal table to an XML file. *----------------------------------------------------------------------*
 * Report ZPRUEBA_MML_13 *
 * Export an internal table to XML document *
 * NO BORRAR ESTE CODIGO *
 *----------------------------------------------------------------------*
 REPORT ZPRUEBA_MML_13.
 *----------------------------------------------------------------------*
 * PANTALLA SELECCION *
     PARAMETERS: GK_RUTA TYPE RLGRAP-FILENAME.
 * PANTALLA SELECCION *
 *----------------------------------------------------------------------*
 
 *----------------------------------------------------------------------*
 * TYPE TURNOS *
 TYPES: BEGIN OF TURNOS,
     LU LIKE T552A-TPR01,
     MA LIKE T552A-TPR01,
     MI LIKE T552A-TPR01,
     JU LIKE T552A-TPR01,
     VI LIKE T552A-TPR01,
     SA LIKE T552A-TPR01,
     DO LIKE T552A-TPR01,
 END OF TURNOS.
 * TYPE TURNOS *
 *----------------------------------------------------------------------*
 
 *----------------------------------------------------------------------*
 * TYPE SOCIO *
 TYPES: BEGIN OF SOCIO,
     NUMERO LIKE PERNR-PERNR,
     REPOSICION LIKE PA0050-ZAUVE,
     NOMBRE LIKE PA0002-VORNA,
     TURNOS TYPE TURNOS,
 END OF SOCIO.
 * TYPE SOCIO *
 *----------------------------------------------------------------------*
 
 *----------------------------------------------------------------------*
 * ESTRUCTURA ACCESOS *
 DATA: BEGIN OF ACCESOS OCCURS 0,
     SOCIO TYPE SOCIO,
 END OF ACCESOS.
 * ESTRUCTURA ACCESOS *
 *----------------------------------------------------------------------*
 
 *----------------------------------------------------------------------*
 * START OF SELECTION *
 START-OF-SELECTION.
     PERFORM LLENA_ACCESOS.
     PERFORM DESCARGA_XML.
 END-OF-SELECTION.
 * END OF SELECTION *
 *----------------------------------------------------------------------*
 
 *----------------------------------------------------------------------*
 * FORM LLENA_ACCESOS *
 FORM LLENA_ACCESOS.
 REFRESH ACCESOS.
 CLEAR ACCESOS.
 MOVE: '45050' TO ACCESOS-SOCIO-NUMERO,
               'MOISES MORENO' TO ACCESOS-SOCIO-NOMBRE,
               '0' TO ACCESOS-SOCIO-REPOSICION,
               'T1' TO ACCESOS-SOCIO-TURNOS-LU,
               'T2' TO ACCESOS-SOCIO-TURNOS-MA,
               'T3' TO ACCESOS-SOCIO-TURNOS-MI,
               'T4' TO ACCESOS-SOCIO-TURNOS-JU,
               'T5' TO ACCESOS-SOCIO-TURNOS-VI,
               'T6' TO ACCESOS-SOCIO-TURNOS-SA,
               'T7' TO ACCESOS-SOCIO-TURNOS-DO.
 APPEND ACCESOS.
 CLEAR ACCESOS.
 MOVE: '45051' TO ACCESOS-SOCIO-NUMERO,
               'RUTH PEÑA' TO ACCESOS-SOCIO-NOMBRE,
               '0' TO ACCESOS-SOCIO-REPOSICION,
               'T1' TO ACCESOS-SOCIO-TURNOS-LU,
               'T2' TO ACCESOS-SOCIO-TURNOS-MA,
               'T3' TO ACCESOS-SOCIO-TURNOS-MI,
               'T4' TO ACCESOS-SOCIO-TURNOS-JU,
               'T5' TO ACCESOS-SOCIO-TURNOS-VI,
               'T6' TO ACCESOS-SOCIO-TURNOS-SA,
               'T7' TO ACCESOS-SOCIO-TURNOS-DO.
 APPEND ACCESOS.
 ENDFORM.
 * FORM LLENA_ACCESOS *
 *----------------------------------------------------------------------*
 
 *----------------------------------------------------------------------*
 * FORM DESCARGA_XML *
 FORM DESCARGA_XML.
 DATA: L_DOM TYPE REF TO IF_IXML_ELEMENT,
               M_DOCUMENT TYPE REF TO IF_IXML_DOCUMENT,
               G_IXML TYPE REF TO IF_IXML,
               W_STRING TYPE XSTRING,
               W_SIZE TYPE I,
               W_RESULT TYPE I,
               W_LINE TYPE STRING,
               IT_XML TYPE DCXMLLINES,
               S_XML LIKE LINE OF IT_XML,
               W_RC LIKE SY-SUBRC.
 
 DATA: XML TYPE DCXMLLINES.
 DATA: RC TYPE SY-SUBRC,
 BEGIN OF XML_TAB OCCURS 0,
               D LIKE LINE OF XML,
 END OF XML_TAB.
 
 CLASS CL_IXML DEFINITION LOAD.
 G_IXML = CL_IXML=>CREATE( ).
 CHECK NOT G_IXML IS INITIAL.
 M_DOCUMENT = G_IXML->CREATE_DOCUMENT( ).
 CHECK NOT M_DOCUMENT IS INITIAL.
 WRITE: / 'Converting DATA TO DOM 1:'.
 CALL FUNCTION 'SDIXML_DATA_TO_DOM'
 EXPORTING
               NAME = 'ACCESOS'
               DATAOBJECT = ACCESOS[]
 IMPORTING
               DATA_AS_DOM = L_DOM
 CHANGING
               DOCUMENT = M_DOCUMENT
 EXCEPTIONS
               ILLEGAL_NAME = 1
               OTHERS = 2.
 IF SY-SUBRC = 0.
               WRITE 'Ok'.
 ELSE.
               WRITE: 'Err =',
               SY-SUBRC.
 ENDIF.
 CHECK NOT L_DOM IS INITIAL.
 W_RC = M_DOCUMENT->APPEND_CHILD( NEW_CHILD = L_DOM ).
 IF W_RC IS INITIAL.
               WRITE 'Ok'.
 ELSE.
               WRITE: 'Err =',
               W_RC.
 ENDIF.
 CALL FUNCTION 'SDIXML_DOM_TO_XML'
 EXPORTING
               DOCUMENT = M_DOCUMENT
 IMPORTING
               XML_AS_STRING = W_STRING
               SIZE = W_SIZE
 TABLES
               XML_AS_TABLE = IT_XML
 EXCEPTIONS
               NO_DOCUMENT = 1
               OTHERS = 2.
 IF SY-SUBRC = 0.
               WRITE 'Ok'.
 ELSE.
               WRITE: 'Err =',
               SY-SUBRC.
 ENDIF.
 LOOP AT IT_XML INTO XML_TAB-D.
               APPEND XML_TAB.
 ENDLOOP.
 CALL FUNCTION 'WS_DOWNLOAD'
 EXPORTING
               BIN_FILESIZE = W_SIZE
               FILENAME = GK_RUTA
               FILETYPE = 'BIN'
 TABLES
               DATA_TAB = XML_TAB
 EXCEPTIONS
               OTHERS = 10.
 IF SY-SUBRC <> 0.
               MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
 ENDIF.
 
 ENDFORM.
 * FORM DESCARGA_XML *
 *----------------------------------------------------------------------*

번호 제목 글쓴이 날짜 조회 수
27 Data Browser (SE11에서 Contents 버튼 클릭시 화면) [8] ASY 2009.05.19 9047
26 ALV EDIT 샘플 프로그램 sapjoy 2015.06.26 9256
25 소수점 뒷자리 0 제거 로직 file 양키(이경환) 2014.01.19 9448
24 Search For Program/Function/Table Desc&Name [8] file 초짜 2011.09.30 9832
23 Selection-screen 에 화면 추가 [11] virus 2007.11.29 9938
22 COMAPY CODE에 할당된 Fiscal variant에 대한 calendar date 변환 paran 2013.02.28 10466
21 Tree ALV 샘플 [5] 양키(이경환) 2014.02.05 10549
20 Split 의 사용 [1] 양키(이경환) 2014.02.05 10770
19 Select-Options 의 Extension 에 제한을 주는 방법 [5] icarus 2007.11.15 10835
18 nugg 프로그램을 sap 에 생성하기.. [3] file MadMax 2012.10.11 10836
17 [Module pool] Container에 webpage 넣기. [2] 냥냥 2013.03.19 11200
16 멀 어떻게 해야 하는건질 몰라 질문 드립니다 [5] 쏠라맨 2012.10.12 11668
15 Transport Trace [4] file 소주와 막걸리 2009.11.13 12143
14 금액을 영문으로 [4] file 쥬앙 2009.04.06 12366
13 ALV Row Color 지정하는 소스. [3] 나침반친구 2007.05.28 12866
12 Syntax Checker [4] file 소주와 막걸리 2009.11.13 13765
11 [onepaper] 참고자료 Archiving 세팅에 필요한 파일소스입니다. [7] file 원니컴 2011.03.22 13802
10 Text(Description) 빠르게 반영하기,,, 속도개선을 위주로 [5] file 노름마치 2010.12.07 13909
9 인터널 테이블을 사용한 구구단 출력 두가지 입니다 - WRITE, ALV 이용 [1] kofnhuge 2012.10.10 14028
8 금액을 한글로(수표)표기 [17] file STARFISH 2009.03.17 14646