Altova MapForce 2024 Professional Edition

Este ejemplo explica cómo extraer datos de columnas de bases de datos IBM DB2 de tipo XML y escribirlos en un archivo CSV de destino. También explica cómo usar instrucciones XQuery incrustadas en código SQL para recuperar datos XML de forma condicional. Para seguir este ejemplo se necesita tener acceso a una base de datos IBM DB2 con permiso para crear y rellenar tablas.

 

Primero debemos preparar la base de datos par que contenga datos XML. Esto se puede hacer desde la herramienta de administración propia de la base de datos o en MapForce directamente. para hacerlo en MapForce debe seguir estas instrucciones:

 

1.Cree una asignación nueva y haga clic en el panel Consulta de la BD.

2.Haga clic en el botón Conexión rápida quickconnect y siga los pasos del asistente para crear una conexión de base de datos nueva (véase Ejemplos de conexión a bases de datos).

3.Pegue este texto en el editor SQL. Esta consulta SQL crea una tabla de base de datos llamada ARTICLES y la rellena con datos.

-- Create the table
CREATE TABLE
   ARTICLES (
       id INTEGER NOT NULL,
       article XML ) ;
-- Populate the table
INSERT INTO ARTICLES VALUES
  (1, '<Article>
     <Number>1</Number>
     <Name>T-Shirt</Name>
     <SinglePrice>25</SinglePrice>
  </Article>'),
(2, '<Article>
     <Number>2</Number>
     <Name>Socks</Name>
     <SinglePrice>230</SinglePrice>
  </Article>'),
(3, '<Article>
     <Number>3</Number>
     <Name>Pants</Name>
     <SinglePrice>34</SinglePrice>
  </Article>'),
(4, '<Article>
     <Number>4</Number>
     <Name>Jacket</Name>
     <SinglePrice>5750</SinglePrice>
  </Article>');

4.Haga clic en el botón Ejecutar ic_execute-sql. El resultado de la ejecución de la consulta aparece en la ventana Resultados. Si la consulta se ejecuta correctamente, la tabla recién creada contará con cuatro filas.

 

Ahora debemos crear una asignación de datos que recupere datos XML de forma condicional de la tabla ARTICLES que acabamos de crear. El objetivo es recuperar productos que tengan un importe superior a 100 en la columna ARTICLES.

 

 

 

Paso nº1: agregar la base de datos

 

1.Vuelva al panel Asignación.

2.En el menú Insertar seleccione el comando Base de datos y siga los pasos del asistente para conectarse a la base de datos.

3.Cuando llegue el momento de seleccionar objetos de la base de datos, seleccione la tabla ARTICLES que se creó en el paso anterior.

mf_db2_xmltype1

 

 

Paso nº2: asignar el esquema al campo de tipo XML

 

1.Haga clic con el botón derecho en el elemento ARTICLE del componente y seleccione Asignar esquema XML al campo en el menú contextual.

mf_db2_xmltype2

2.Seleccione Archivo y navegue hasta este esquema: <Documentos>\Altova\MapForce2024\MapForceExamples\Tutorial\DB2xsd.xsd.

 

 

Paso nº3: agregar el componente WHERE/ORDER de SQL

 

1.En el menú Insertar seleccione el comando WHERE/ORDER de SQL.

2.Conecte la columna de tipo XML ARTICLE a la entrada del componente WHERE/ORDER de SQL.

mf_db2_xmltype4

3.En el cuadro de diálogo "Propiedades del componente WHERE/ORDER de SQL" introduzca este texto:

XMLEXISTS('$a/Article[SinglePrice>100]' PASSING ARTICLE as "a")

mf_db2_xmltype5

Este texto representa la parte WHERE de la consulta SQL. Cuando se ejecute la asignación, la parte WHERE se combinará con la parte SELECT que aparece en el cuadro de diálogo. Esta instrucción usa la función XMLEXISTS y sintaxis propia de las bases de datos IBM DB2.

 

 

Paso nº4: agregar el archivo CSV de destino

 

1.En el menú Insertar seleccione el comando Archivo de texto.

2.Después seleccione la opción Utilizar procesamiento básico para archivos CSV.... y haga clic en Continuar.

3.Haga clic tres veces en Anexar campo para agregar tres campos que almacenarán el número de producto, el nombre y el precio respectivamente. Deje las demás opciones de configuración como están.

4.Dibuje las conexiones que aparecen en la imagen siguiente.

mf_db2_xmltype6

Ahora puede generar una vista previa de los resultados de la asignación de datos (abriendo el panel Resultados). Como esperábamos, en el resultado sólo aparecen los productos con un precio superior a 100.

mf_db2_xmltype7

© 2018-2024 Altova GmbH