Leer datos XML directo desde MySQL (ejemplo factura electrónica CFDi 3.3)

consultaXMLdb

Tenemos una tabla con los registros (cfd) y una con el xml como un blob o text, la estructura que yo uso es así:

estructuraXMLDB

y luego para hacer una consulta básica sería algo como esto:

SELECT F.id,F.fechadoc, extractValue(R.dataxml,'//cfdi:Complemento/tfd:TimbreFiscalDigital/@UUID') , extractValue(R.dataxml,'//cfdi:Comprobante/cfdi:Emisor/@Rfc') as "RFC Emisor", extractValue(R.dataxml,'//cfdi:Comprobante/cfdi:Emisor/@Nombre') as "Emisor", extractValue(dataxml,'//cfdi:Conceptos/cfdi:Concepto/@Importe') as Monto, extractValue(dataxml,'//cfdi:Conceptos/cfdi:Concepto/@Descripcion') as Concepto FROM cfd F, cfdRaw R WHERE F.id = R.id AND F.id=127

Es todo, algo como lo anterior me regresa la consulta de la imagen. Así, directamente podemos interactuar con la estructura de las facturas CFDi 3.3 que se emiten y valida el SAT. Lo bueno: evitar crear campos para cada cosa cuando se manejan facturas XML, lo malo es que MySQL en versiones menores a 5.7 tratan las consultas como un texto normal, me parece que en la 5.7 ya se pueden crear índices sobre datos específicos del XML.

Estoy trabajando en un proyecto para llevar tus facturas personales de forma fácil y que puedas invitar a tu contador luego a que las revise, descargue, consulte, busque, etcétera, todo en un mismo lugar, evitando pérdida de documentos o andar intercambiando correos interminables. El proyecto está muy verde aún - CONTA es posible entrar con tu cuenta de Facebook.

+ fotos

Leer datos XML directo desde MySQL (ejemplo factura electrónica CFDi 3.3)
Leer datos XML directo desde MySQL (ejemplo factura electrónica CFDi 3.3)

Almacenado en Base de Datos, MySQL, Facturación Electrónica

por Jorge Martínez Mauricio :)

Reacciones

síguenos en instagram / twitter

Relacionadas

    Suscríbete por correo electrónico, recibirás los nuevos escritos antes que nadie y es gratis 😊

    Populares estos días

      blog / fotos / archivo

      Leer datos XML directo desde MySQL (ejemplo factura electrónica CFDi 3.3)

      tar.mx es un blog sobre fotografía, tecnología y otras chunches

      tar.mx logo

      última mod jue 21 de diciembre de 2017, 13:46