XML - ooxxvv/MySAPnotes GitHub Wiki
PageOutline {{{#!comment -------------------- 以上的部份是固定的,不要變動 ----- ---------------------------------------- 在建立連結時,請標明連結的頁面類型,例如:wiki:WikiStart,而不要只用 WikiStart ----- }}}
XML
- SAP 中和 XML 相關的處理
Function
Tcode
Others
- SAP 輸出 XML 檔案到本機。
{{{#!abap
----------------------------------------------------------------------
- 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 *
}}}