* ------------------------------------------------- --------------------- *
* Report Zprueba_mml_13 *
* EXPORT An Internal Table To XML Document *
* No borrar este code code code code
* ------------------------------------------------- --------------------- *
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,
Reposidence Like Pa0050-Zauve,
Nombre Like Pa0002-Vorna,
Turnos Type Turnos,
End of socio.
* TYPE SOCIO *
* ------------------------------------------------- --------------------- *
* ------------------------------------------------- --------------------- *
* ESTRUCTURA Accesos *
Data: Begin of Acces Occurs 0,
Socio Type Socio,
End of access.
* ESTRUCTURA Accesos *
* ------------------------------------------------- --------------------- *
* ------------------------------------------------- --------------------- *
* START OF SELECTION *
Start-of-selection.
Perform Llena_accesos.
Perform descarga_xml.
End-of-selection.
* End of success *
* ------------------------------------------------- --------------------- ** --------------------------- ------------------------------------------- *
* Form Llena_accesos *
Form llena_accesos.
Refresh Accesos.
Clear Accesos.
Move: '45050' to accessosos-solidio-numero,
'Moises Moreno' to Accesos-Socio-Nombre,
'0' TO Accesos-Socio-reposidence,
'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 accessosos-solidio-numero,
'Ruth Peña' to Accesoso-Socio-Nombre,
'0' TO Accesos-Socio-reposidence,
'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 *