Foro -Documentación -Código fuente -Contacto -Empleo

Buscar

Traducir

Amazon

ZEXPORT_TO_XML PDF Imprimir E-mail
Usar puntuación: / 0
MaloBueno 
Código fuente - Ejemplos
Miércoles, 08 de Diciembre de 2004 06:10
Exporta tabla interna a XML


*----------------------------------------------------------------------*
* Report ZEXPORT_TO_XML *
* 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, "Plan horario trabajo diario
     MA LIKE T552A-TPR01, "Plan horario trabajo diario
     MI LIKE T552A-TPR01, "Plan horario trabajo diario
     JU LIKE T552A-TPR01, "Plan horario trabajo diario
     VI LIKE T552A-TPR01, "Plan horario trabajo diario
     SA LIKE T552A-TPR01, "Plan horario trabajo diario
    DO LIKE T552A-TPR01, "Plan horario trabajo diario
END OF turnos.
* TYPE TURNOS *
*----------------------------------------------------------------------*

*----------------------------------------------------------------------*
* TYPE SOCIO *
TYPES: BEGIN OF socio,
     NUMERO LIKE PERNR-PERNR, "Número de personal
     REPOSICION LIKE PA0050-ZAUVE, "Versión identificación
     NOMBRE LIKE PA0002-VORNA, "Nombre de pila
     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.
Comentarios
Buscar
¡Sólo los usuarios registrados pueden escribir comentarios!

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

 
home search