ennubo

Catálogos BMEcat

¿Qué es BMEcat?

Estándar para trasmisión de catálogos en formato digital.

La tecnología XML

Estándar para trasmisión de información.

Catálogos BMEcat

Catálogos digitales de producto conforme a un estándar.

¿Qúe es BMEcat?

Si por una parte hemos visto en el apartado ETIM que dicho sistema especifica el tipo de información que hay que trasmitir para definir un determinado producto de manera estándar y unívoca, es necesario un medio lógico, un formato que almacene dicha información para ser transmitida a sus posibles destinatarios. Además seguramente querremos añadir fotografías, hojas de producto, objetos BIM,... y toda una serie de información adicional al artículo y que nuestros clientes esperan recibir.

¿Cómo hago el envío material de dicha información? ¿En algún tipo de fichero de Base de Datos?, ¿en un fichero de hoja de cálculo?... nuevamente necesitamos otro estándar bien definido y que pueda llegar a la mayor cantidad de usuario posibles.

Ese estándar existe y se llama BMEcat. Fue inicialmente desarrollado por empresas líderes en el mercado y universidades alemanas junto con el instituto Franhofer, y actualmente es el formato de intercambio de información más utilizado en Europa para la transmisión de datos de catálogo en muchos sectores.

BMEcat se basa en la tecnología XML, y codifica toda la información relativa a los productos, mediante la misma.

La tecnología XML

XML es un leguaje de marcado de datos muy simple y potente a la vez. Se utiliza con mucha frecuencia en el mundo informático por tratarse de una tecnología abierta e independiente de cualquier plataforma, lo que la convierte en un lenguaje libre y universal.

No es nuestros objetivo explicar la tecnología XML en detalle, pero daremos unas breves pinceladas sobre la misma para comprender mejor los catálogos. Un catálogo BMEcat puede ser visualizado con cualquier editor de texto, y al hacerlo verás que la información del mismo resulta comprensible a los humanos, a pesar de estar preparada para las máquinas.

Un fichero XML define la información de forma estructurada mediante "etiquetas" que contienen los elementos de datos. Los elementos (y por tanto las etiquetas) pueden estar comprendidos dentro de otros, consiguiendo estructurar la información hasta el nivel que se desee. Esto puede parecer muy complicado, pero en realidad es muy sencillo y vamos a aclararlo con un ejemplo.

Supongamos que queremos organizar la información de nuestra biblioteca. De cada libro queremos indicar su autor, su título y el número de páginas que contiene. La información estructurada en lenguaje XML, sería algo como esto:


<biblioteca>
	<libro>
		<titulo>Platero y yo</titulo>
		<autor>Juan Ramón Jimenez</autor>
		<paginas>120</paginas>
	</libro>
	<libro>
		<titulo>Matar a un Ruiseñor</titulo>
		<autor>Harper Lee</Enlaces>
		<paginas>315</paginas>
	</libro>
</biblioteca>

Cada elemento "libro" se encuentra definido entre las etiquetas de inicio <libro> y de fin </libro>, y todos ellos están incluidos dentro del elemento "biblioteca". Dento de cada libro hay nuevos elementos de información definidos también mediante etiquetas de apertura y cierre: "título", "autor" y "paginas".

Todos los elementos pueden contener nuevos elementos en su interior, por lo que la información se estructura hasta el nivel que sea necesario. Los elementos no pueden estar anidados, que es lo mismo que decir que la totalidad de la información de un elemento tiene que estar contenida dentro de otro elemento. No es correcto lo siguiente:


<biblioteca>
	<libro>
		<titulo>Platero y yo</titulo>
		<autor>Juan Ramón Jimenez</autor>
		<paginas>120
	</libro>
		</paginas>    <-ERROR ELEMENTO ANIDADO
	<libro>
		<titulo>Matar a un Ruiseñor</titulo>
		<autor>Harper Lee</autor>
		<paginas>315</paginas>
	</libro>
</biblioteca>

Todos los elementos han de tener obligatoriamente su correspondiente etiqueta de apertura <> y cierre </>. Cuando no hay elementos anidados y todos tienen sus correspondientes etiquetas de apertura y cierre, se dice que el documento XML está bien formado, es decir que cumple con las reglas de definición de XML.

Otra cosa diferente es la validez del documento. Un documento a pesar de estar bien formado, puede no ser válido porque le faltan elementos obligatorios, contiene elementos desconocidos o la información de algún elemento no es correcta. Supongamos que en el sistema de información XML de nuestra biblioteca, queremos que el título y el autor sean elementos obligatorios y las páginas un elemento opcional, pero que lógicamente sí está definido ha de ser numérico. En este caso, un fichero XML como el siguiente sería erróneo:


<biblioteca>
	<libro>			<-ERROR FALTA ELEMENTO AUTOR
		<titulo>Platero y yo</titulo>
		<paginas>120</paginas>
	</libro>
	<libro>
		<titulo>Matar a un Ruiseñor</titulo>
		<autor>Harper Lee</autor>
		<paginas>315</paginas>
		<ISBN>9788468767024</ISBN> <-ERROR ETIQUETA ISBN DESCONOCIDA
	</libro>
	<libro>
		<titulo>Don Quijote de la Mancha</titulo>
		<autor>Miguel de Crevantes</autor>
		<paginas>Muchas</paginas> <-ERROR ELEMENTO paginas NO ES NUMÉRICO
	</libro>
</biblioteca>

Las especificaciones en cuanto a los elementos permitidos, su obligatoriedad y el tipo de datos que pueden contener, se pueden definir en el propio fichero o en un fichero separado (DTD o XSD). Solo cuando los ficheros XML además de estar bien formados (sintácticamente correctos) cumplen con las especificaciones definidas para el mismo, son ficheros correctos.

Catálogos BMEcat

BMEcat define las especificaciones para los ficheros de transmisión de catálogos de producto. Actúa en conjunción con ETIM y proporciona mecanismos para incorporar tanto la propia información ETIM como otra información necesaria para definir los productos (empaquetados, precios, EAN13, ...), y nos indica como formar ficheros XML correctos para su transmisión. Permite adjuntar a los catálogos de productos todo tipo de información multimedia (fotos, objetos BIM, manuales,...).

En la actualidad, la última versión disponible de BMEcat es la 2005. Por otra parte, ETIM define y aclara el tipo de información a trasmitir en los ficheros BMEcat. La última especificación de ETIM (en cuanto a su integración con BMEcat) es la versión 4.0.3 del 28 de octubre del 2020.

Un catálogo en formato BMEcat está compuesto por un fichero XML, en el que se definen tanto los datos del propio catálogo como de los productos incluidos en el mismo, así como por todos los ficheros que se adjunten para los artículos: fotos, manuales, certificados, objetos BIM, etc.

Los ficheros adjuntos para los artículos pueden referenciarse mediante una URL, con lo que no será necesario que formen parte "físicamente" del catálogo, y en estos casos se reduce drásticamente el tamaño del mismo.

El fichero XML se compone de 2 partes bien diferenciadas:

  • Una cabecera, que es única y contiene datos de identificación del proveedor y del catálogo: Nombre del proveedor, datos de contacto, nombre del catálogo, versión, fecha, mercado al que se dirige, etc.
  • Información de producto, que se repetirá tantas veces como productos haya en el catálogo, y para cada uno de ellos indicará:
    • Descripciones larga y corta del producto en todos los idiomas deseados.
    • Serie y grupo de descuentos a los que pertenece y palabras clave para su búsqueda.
    • Referencia, códigos alternativos, código EAN13, código GTIN, códigos para exportación.
    • Información sobre los distintos embalajes posibles para el artículo, con sus tamaños, pesos y códigos EAN13 y GS1_128.
    • Información de precios del artículo, siendo posible indicar diferentes precios según cantidad.
    • Tasas aplicables al artículo (IVA, ECORAEE, etc.).
    • Datos ETIM: clase, características y sus valores.
    • Relaciones del propio artículo con otros artículos (accesorios, recambios, productos similares, etc.).
    • Todo tipo de información multimedia adjunta: catálogos, manuales, videos, objetos BIM, etc.

Determinados tipos de información son obligatorios y han de formar parte del propio catálogo, mientras que otras informaciones son opcionales y no necesariamente formarán parte del fichero, ya que en algunas ocasiones algunos datos pueden no ser necesarios en los artículos.

BMEcat define 4 tipos diferentes de "transacciones" de catálogo:

  • Catálogo nuevo: en este tipo de transacción se incluyen todos los datos de todos los artículos, y son válidos para cualquier receptor. El receptor ha de desechar totalmente la posible información anterior del proveedor y sustituirla por este nuevo catálogo que es "completo".
  • Actualización de productos: se incluyen en el catálogo solo los artículos que han variado desde un nuevo catálogo anterior, o hayan sido dados de baja. El receptor tiene que haber recibido el anterior catálogo para que la actualización sea correcta.
  • Actualización de precios: se transmiten únicamente los datos relativos al precio de los artículos. Es útil cuando únicamente hay variación de tarifas, pero el receptor tiene que haber procesado todos los catálogos anteriores.
  • Actualización de datos de producto: este tipo de transacción aparece en la última versión 4.0 y es similar a la actualización de productos, pero con una diferencia: no se transmiten todos los datos de los artículos que hayan variado, sino parte de ellos. Exige que el que envía la información y el receptor, se hayan puesto de acuerdo en cuanto a que tipos de datos se enviarán y es necesario que se hayan procesado todos los catálogos anteriores para que la información siga siendo correcta.

BMEcat define un sistema para la numeración de catálogos y sus versiones, de la forma XXX.YYY, en la que XXX (catálogo) se incrementa cada vez que se lanza un nuevo catálogo, e YYY (versión) se incrementa con las actualizaciones de datos, sean o no completas. Las actualizaciones de precios no generan nuevos números de versión.

Podríamos seguir desarrollando con más detalle estructura del fichero XML de BMEcat conforme a la especificación 4.0 de ETIM, así como los pormenores de las distintas transacciones, pero sus aspectos técnicos y su amplio contenido escapan a nuestro propósito en este punto. De cualquier forma si quieres conocer dicha especificación en detalle (y otras versiones anteriores), puedes hacer descarga de la misma en este enlace de ETIM International o en la web de ETIM España.

También puedes visitar el sitio oficial de BMEcat para obtener más información.