MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 19/10/06, 10:55:41
Caher Caher is offline
Junior Member
 
Fecha de Ingreso: oct 2006
Mensajes: 2
Exportar a XML

Buenas a todos!

Necesitaria saber como exportar una extructura de DB SAP a un archivo XML.

Saludos, Gracias!
Responder Con Cita
  #2  
Viejo 23/10/06, 14:59:45
Avatar de davidsap
davidsap davidsap is offline
Member
 
Fecha de Ingreso: abr 2006
Mensajes: 85
A mí también me vendría muy bien. Estoy investigando precisamente sobre eso, si logro algo en claro, lo pongo aquí.

Saludos
Responder Con Cita
  #3  
Viejo 25/10/06, 13:38:18
Caher Caher is offline
Junior Member
 
Fecha de Ingreso: oct 2006
Mensajes: 2
Si la versión de tu sistema te lo permite (yo no puedo) puedes echar un vistazo a este FM
RSWAD_TABLECONTENT_TO_XML

Tambien he probado esto:

CALL TRANSFORMATION (`ID`)
SOURCE header = headeritab[]
item = itemitab[]
RESULT XML xml_out.

Un saludo.
Responder Con Cita
  #4  
Viejo 25/10/06, 14:51:52
raul_daimiel raul_daimiel is offline
Junior Member
 
Fecha de Ingreso: oct 2006
Mensajes: 1
Smile Crear un XML con los datos de una tabla del sistema

Hola, chicos!.

Aquí tenéis un ejemplo sencillito. Lo que hace es descargar a una ruta local ( por defecto C:\ ), el contenido de la tabla del sistema MARA a un fichero XML.

Hay una parte del código - donde se lleva a cabo la transformación - que no sabría explicar qué hace, pero, vamos, el hecho es que funciona...

** Tabla del sistema

Tables: mara.

data: begin of i_idoc2 occurs 0.
include structure mara.
data: end of i_idoc2.


*** DECLARACION DE DATOS PARA EL TRATAMIENTO DEL 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.

*** RECUPERAMOS EL CONTENIDO DE LA TABLA MARA.

** Esta parte no tengo demasiado clara cómo explicarla, pero, a lo
** que voy, lo importante es que funciona....jajajaja

select * into
table i_idoc2 from mara.

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.

CALL FUNCTION 'SDIXML_DATA_TO_DOM'
EXPORTING
NAME = 'IDOC'
DATAOBJECT = I_IDOC2[]
IMPORTING
DATA_AS_DOM = L_DOM
CHANGING
DOCUMENT = M_DOCUMENT
EXCEPTIONS
ILLEGAL_NAME = 1
OTHERS = 2.

CHECK NOT L_DOM IS INITIAL.
W_RC = M_DOCUMENT->APPEND_CHILD( NEW_CHILD = L_DOM ).

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.

** Aquí ya tenemos la tabla con la estructura del fichero XML.

LOOP AT IT_XML INTO XML_TAB-D.
APPEND XML_TAB.
ENDLOOP.

DATA: W_SIZE TYPE I.

CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
* BIN_FILESIZE = W_SIZE
FILENAME = 'C:\FICHERO.XML'
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.

Espero que os sirva, niños!

Raúl
Responder Con Cita
  #5  
Viejo 26/10/06, 08:01:19
Avatar de davidsap
davidsap davidsap is offline
Member
 
Fecha de Ingreso: abr 2006
Mensajes: 85
Ok, lo he probado y funciona perfecto, aunque tenía dos errores (al menos en mi PC):

Antes de la función WS_DOWNLOAD tenías puesto DATA: W_SIZE TYPE I. que ya estaba declarada con anterioridad y en la propia función WS_DOWNLOAD hay que descomentar la línea de BIN_FILESIZE = W_SIZE.

En mi caso la tabla MARA tiene 4000 registros, y al ejecutar el programa se queda colgado. Yo lo he solucionado poniendo el siguiente código justo después del select:
LOOP AT I_IDOC2.
IF SY-TABIX > 20.
DELETE I_IDOC2 INDEX SY-TABIX.
ENDIF.
ENDLOOP.

De esta foma dejo la tabla interna sólo con 20 registros y me funciona perfectamente.

Por cierto, añadiendo al final del todo (o antes del WS_DOWNLOAD) el siguiente código:

CALL FUNCTION 'SDIXML_DOM_TO_SCREEN'
EXPORTING
document = M_DOCUMENT
EXCEPTIONS
others = 01.

Hacemos que se muestre por pantalla el código del fichero XML de la misma forma que si lo estuvieramos visualizando por pantalla, contrayendo y expandiendo los nodos. Igual no tiene demasiada utilidad pero bueno, yo lo pongo por si os sirve.

Muchas gracias por tu ayuda y un saludo a todos
Responder Con Cita
  #6  
Viejo 24/10/07, 12:52:16
gerbeltran gerbeltran is offline
Member
 
Fecha de Ingreso: jun 2007
Mensajes: 55
Buenas estoy tratando de implementar la opcion que utiliza CALL TRANSFORMATION (`ID`) para pasar de un XML a una tabla interna de Abap, pero no logro darme cuenta donde y cómo declaro la tranformación 'ID' que luego llamo.

Si alguien pudo implementarla le agradecería si me lo puede explicar un poco mas.

Saludos,
Germán.
Responder Con Cita
  #7  
Viejo 24/08/10, 20:28:09
Avatar de leir1612
leir1612 leir1612 is offline
Junior Member
 
Fecha de Ingreso: mar 2006
Localización: Argentina
Mensajes: 16
if_ixml_document

Alguien sabe que valores espera esta interface
IF_IXML_DOCUMENT

NAME
NAMESPACE???
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 23:30:32.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web