Quantcast
Channel: Blog de SAP: Actualidad SAP, Business Intelligence, SAP HCM, Abap…
Viewing all articles
Browse latest Browse all 660

Procesamiento de XML en ABAP (2/3)

$
0
0

Siguiendo con la serie de artículos sobre el procesamiento de ficheros XML mediante ABAP, vamos a ver cómo se crea la Transformación Simple, el elemento fundamental de este proceso de tratamiento de XML con ABAP. Éste es el paso más importante ya que es ahora cuando vamos a definir cómo convertir los datos XML en datos que SAP pueda tratar.

2. Proceso del tratamiento de XML con ABAP

3) Creación de la Transformación Simple

Después de haber creado todos los objetos necesarios en el artículo anterior, vamos a crear la transformación simple mediante la transacción STRANS. Le pondremos nombre, descripción breve y especificaremos que se trata de una Transformación simple.

Creación de transformación simple para procesamiento XML en ABAP

4) Implementación de la lógica de la Transformación

Una vez creada, tendremos que modificar la lógica de la transformación para añadir nuestra estructura de datos. Para ello podemos cambiar el código de forma manual, o editarlo gráficamente pinchando en el botón de la “varita mágica”.

Implementación de la lógica de la transformación para procesar XML con ABAP

Nos aparecerá un elemento “ROOT” generado automáticamente que borraremos, porque nosotros ya tenemos la estructura que vamos a insertar creada previamente. Así pues, insertaremos un nuevo nodo raíz (botón derecho->Insert new root) y referenciaremos el tipo de tabla ZXML_CD_TT que creamos en el artículo anterior.

Procesamiento XML con ABAP: Referencia a tipo de tabla en la transformación

Esto hace que el sistema busque en el diccionario de datos nuestro objeto y nos traiga cada uno de sus elementos en una estructura de tipo árbol. Ahora, lo que tenemos que hacer es arrastrar estos datos a la ventana de la derecha donde se indican los campos de nuestra transformación simple.

Procesamiento XML con ABAP: Selección datos de la transformación simple

Como se aprecia en la imagen, prácticamente tenemos definida ya la transformación: en la parte de la izquierda tenemos la estructura objetivo (la de nuestro sistema SAP) y en la derecha tenemos la transformación simple correspondiente a nuestro fichero XML. Antes de guardar, eso sí, deberemos renombrar el nodo ZXML_CD_STR de la transformación como CD, ya que este es el nombre que tienen los elementos del XML, y, por lo tanto, el que tendrá que utilizar nuestra transformación.

Renombrar nodo ABAP para procesamiento XML

Ahora ya podemos guardar y activar nuestra transformación simple. Como resultado obtendremos el siguiente código fuente que utilizaremos después para convertir los datos XML en ABAP.

<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates"
		  xmlns:ddic="http://www.sap.com/abapxml/types/dictionary"
	        xmlns:def="http://www.sap.com/abapxml/types/defined">
  <tt:root name="CATALOG" type="ddic:ZXML_CD_TT"/>
  <tt:template>
    <CATALOG>
      <tt:loop ref=".CATALOG">
        <CD>
          <tt:cond>
            <MANDT tt:value-ref="MANDT"/>
          </tt:cond>
          <TITLE tt:value-ref="TITLE"/>
          <ARTIST tt:value-ref="ARTIST"/>
          <COUNTRY tt:value-ref="COUNTRY"/>
          <COMPANY tt:value-ref="COMPANY"/>
          <PRICE tt:value-ref="PRICE"/>
          <YEAR tt:value-ref="AIR_YEAR"/>
        </CD>
      </tt:loop>
    </CATALOG>
  </tt:template>
</tt:transform>

Hemos definido una estructura destino del tipo ZXML_CD_TT, por lo que la transformación devolverá los datos que trate en una tabla interna ABAP. De esta manera, cuando ejecutemos esta transformación, lo primero que hará será buscar el nodo <CATALOG>.

Cuando encuentre el nodo lo recorrerá con un bucle buscando los nodos <CD> que cuelguen de él. Así, por cada elemento que encuentre mapeará el campo indicado en la izquierda con el definido en el atributo tt:value-ref, que hace referencia a un campo de nuestra tabla ABAP.

Aclarar también que se ha metido el campo MANDT entre tags <tt:cond> porque este es un campo que NO tenemos en el fichero pero que nuestra tabla ABAP necesita tener. De esta manera, la transformación funcionará correctamente y nuestro sistema informará el campo mandante de forma automática.

Y hasta aquí llega este artículo, con una guía sencilla sobre las transformaciones XML. En el próximo artículo veremos cómo utilizar esta transformación en un programa y cargaremos los datos de los CDs en una tabla ABAP de base de datos.


Viewing all articles
Browse latest Browse all 660

Trending Articles


Girasoles para colorear


UPDATE SC IDOL: TWO BECOME ONE


Pokemon para colorear


Presence Quotes – Positive Quotes


Long Distance Relationship Tagalog Love Quotes


Papa Jack Tagalog Love Quotes and Advice for you


Top 7 Lies of Boys


Re:Mutton Pies (lleechef)


Ka longiing longsem kaba skhem bad kaba khlain ka pynlong kein ia ka...


EASY COME, EASY GO


FORECLOSURE OF REAL ESTATE MORTGAGE


HOY PANGIT, MAGBAYAD KA!


Sapos para colorear


Love Quotes Tagalog


Two timer Sad tagalog Love quotes


Tropa Quotes


“Mali man na ikaw ay ibigin ko, akoy iibig padin sayo”


RE: Mutton Pies (frankie241)


Vimeo 10.7.0 by Vimeo.com, Inc.


Vimeo 10.7.1 by Vimeo.com, Inc.