No logro poner el Name Space en el nombre del nodo <cfdi:Comprobante

1,082 views
Skip to first unread message

Raúl

unread,
Nov 24, 2013, 4:47:35 PM11/24/13
to vfp-factura-ele...@googlegroups.com

Anteriuormente yo ya había desarrollado en VFP el programa para los CFD version 2.2
Estoy tratando de crear el programa para el CFDI versión 3.2
Pero al estar desarrollando el XML me doy cuenta que trae unNameSpace de nombre "cfdi"

No logro poner el Name Space en el nombre del nodo <cfdi:Comprobante
Este es parte del codigo pero no se que me falta para que me ponga el NameSpace cfdi
El programa no falla o sea no marca error, SI me crea el archivo XML pero sin el namespace

Que me falta ??? Que estoy haciendo mal ???


Local  root            As IXMLDOMProcessingInstruction
Local  nComprobante    As XmlNode  
Local  nEmisor         As XmlNode  

nsCFDI = "http://www.sat.gob.mx/cfd/3"

* se crea el objeto XML
CFDXml = CREATEOBJECT("msxml2.DOMDocument")

root   = CFDXml.createProcessingInstruction("xml","version='1.0' encoding='UTF-8'")
CFDXml.insertBefore(root, CFDXml.documentElement)

* Crea el Nodo COMPROBANTE
nComprobante = CFDXml.CreateNode(1,"Comprobante",nscfdi)

    nComprobante.setAttribute("xmlns:cfdi"         ,"http://www.sat.gob.mx/cfd/3")
    nComprobante.setAttribute("xmlns:xsi"         ,"http://www.w3.org/2001/XMLSchema-instance")
    nComprobante.setAttribute("xsi:schemaLocation","http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv32.xsd") && XML22

    nEmisor = CFDXml.CreateNode(1, "Emisor", nscfdi)

    * Se agrega el nodo Emisor     al nodo Comprobante
    nComprobante.AppendChild(nEmisor);

* se agrega el nodo Comprobante al nodo CFDiXml
CFDXml.AppendChild(nComprobante)

* Se salva el documento XML
CFDXml.Save("C:\PRUEBA.XML")


Oscar Garcia

unread,
Nov 25, 2013, 12:19:16 PM11/25/13
to vfp-factura-electronica-mexico
Saludos...

Yo los estoy declarando manualmente uno por uno asi:

oCOMPROBANTE = loXML.createelement('cfdi:Comprobante')

oDOMFISCAL = loXML.createelement('cfdi:DomicilioFiscal')

oEXPEDIDOEN = loXML.createelement('cfdi:ExpedidoEn')

etc.




--
Has recibido este mensaje porque estás suscrito al grupo "vfp-factura-electronica-mexico" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a vfp-factura-electroni...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a vfp-factura-ele...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/vfp-factura-electronica-mexico.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.

Raúl Soni Q.

unread,
Nov 25, 2013, 12:33:33 PM11/25/13
to vfp-factura-ele...@googlegroups.com
Gracias Oscar
 
Ya realicé el cambio.
 Pues ""SI ""  ... ya me pone el Name Space ""cfdi"" en cada nodo
 
El codigo quedo de esta mandera a modo de """EJEMPLO"""  me falta hacer todo los cambios a mi CFD22.prg para que quede como un CFDI32.prg mas lo que indique el anexo 20. 
 
 
Local  root            As IXMLDOMProcessingInstruction
Local  nComprobante    As XmlNode  
Local  nEmisor         As XmlNode  
* se crea el objeto XML
CFDXml = CREATEOBJECT("msxml2.DOMDocument")
root   = CFDXml.createProcessingInstruction("xml","version='1.0' encoding='UTF-8'")
CFDXml.insertBefore(root, CFDXml.documentElement)
* Crea el Nodo COMPROBANTE
* nComprobante = CFDXml.CreateNode(1,"Comprobante",nscfdi)
nCOMPROBANTE = CFDXml.createelement('cfdi:Comprobante')

    nComprobante.setAttribute("xmlns:cfdi"         ,"http://www.sat.gob.mx/cfd/3")
    nComprobante.setAttribute("xmlns:xsi"         ,"http://www.w3.org/2001/XMLSchema-instance")
    nComprobante.setAttribute("xsi:schemaLocation","http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv32.xsd") && XML22
   * nEmisor = CFDXml.CreateNode(1, "Emisor", nscfdi)
    nEmisor = CFDXml.createelement('cfdi:Emisor')
    * Se agrega el nodo Emisor     al nodo Comprobante
    nComprobante.AppendChild(nEmisor);
* se agrega el nodo Comprobante al nodo CFDiXml
CFDXml.AppendChild(nComprobante)
* Se salva el documento XML
CFDXml.Save("C:\PRUEBA.XML")
 
Saludos
 

--
Has recibido este mensaje porque estás suscrito a un tema del grupo "vfp-factura-electronica-mexico" de Grupos de Google.
Para anular la suscripción a este tema, visita https://groups.google.com/d/topic/vfp-factura-electronica-mexico/v_ayjh23a2s/unsubscribe. Para anular la suscripción a este grupo y todos sus temas, envía un correo electrónico a vfp-factura-electroni...@googlegroups.com.

Arturo Ramos

unread,
Nov 26, 2013, 3:46:18 PM11/26/13
to vfp-factura-ele...@googlegroups.com
Y por que no usas la clase del foro que ya está lista y funcionando desde hace años ??

Saludos.

Cancún, México
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a vfp-factura-electronica-mexico+unsubscribe@googlegroups.com.

Para publicar una entrada en este grupo, envía un correo electrónico a vfp-factura-electronica-mex...@googlegroups.com.

--
Has recibido este mensaje porque estás suscrito a un tema del grupo "vfp-factura-electronica-mexico" de Grupos de Google.
Para anular la suscripción a este tema, visita https://groups.google.com/d/topic/vfp-factura-electronica-mexico/v_ayjh23a2s/unsubscribe. Para anular la suscripción a este grupo y todos sus temas, envía un correo electrónico a vfp-factura-electronica-mexico+unsubscribe@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a vfp-factura-electronica-mex...@googlegroups.com.

Raúl Soni Q.

unread,
Nov 26, 2013, 5:59:14 PM11/26/13
to vfp-factura-ele...@googlegroups.com

Arturo
 
Estas Clases que ofrece el foro las entrega con el codigo fuente ??? de tal forma que uno puede adecuarlas o modificarlas o son clases compiladas ???
 
Saludos
 
 
 
 
 
Para anular la suscripción a este tema, visita https://groups.google.com/d/topic/vfp-factura-electronica-mexico/v_ayjh23a2s/unsubscribe. Para anular la suscripción a este grupo y todos sus temas, envía un correo electrónico a vfp-factura-electroni...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a vfp-factura-ele...@googlegroups.com.

Victor Espina

unread,
Nov 27, 2013, 8:23:35 AM11/27/13
to vfp-factura-ele...@googlegroups.com
La clase es 100% OpenSource, es decir, tienes acceso a los fuentes y todo el derecho a modificarlos segun tus necesidades.  Dicho esto, la idea es tratar de utilizar la clase "as is" para que asi puedas beneficiarte de futuras actualizaciones y, si necesitas mejorarla  pues puedes hacerlo y subir el cambio al repositorio para que otros puedan beneficiarse tambien.

Incluso, si necesitas hacer un cambio que es particular para tu sistema, puedes hacerlo sin necesidad de modificar directamente el codigo de la clase, sino creando una subclase de la misma y sobre escribiendo los metodos que deseas modificar.  De esta forma logras el comportamiento especifico que necesitas y aun puedes optar por nuevas versiones de la clase sin problemas.

Saludos

Victor Espina

Para publicar una entrada en este grupo, envía un correo electrónico a vfp-factura-electronica-mexico@googlegroups.com.

--
Has recibido este mensaje porque estás suscrito a un tema del grupo "vfp-factura-electronica-mexico" de Grupos de Google.
Para anular la suscripción a este tema, visita https://groups.google.com/d/topic/vfp-factura-electronica-mexico/v_ayjh23a2s/unsubscribe. Para anular la suscripción a este grupo y todos sus temas, envía un correo electrónico a vfp-factura-electronica-mexico+unsubscribe@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a vfp-factura-electronica-mexico@googlegroups.com.

Raúl

unread,
Nov 27, 2013, 9:35:12 AM11/27/13
to vfp-factura-ele...@googlegroups.com
 
Victor
 
Consulte el link de clases que mencionas. y me doy cuenta de hay una lista de muchos archivos .
Analizando esta lista encontre en particular este archivo. .. Supongo que este es el programa en vfp que se encarga de generar el XML de v3.2
 
Sino es este , entonces me pucieras decirpuntualmente  cual es el nombre correcto
 
Gracias
Saludos
 
 

Victor Espina

unread,
Nov 28, 2013, 2:44:45 PM11/28/13
to vfp-factura-ele...@googlegroups.com
Ese mismo es. Veras tambien varios archivos de nombre CFDTEST*.PRG; esos son los ejemplos para generar los distintos tipos de CFD.  Te recomiendo que los revises para que veas como se carga la clase y como se usa para generar el XML, sellarlo (si estas aun con CFD) y como validarlo.

Tambien veras otros ejemplos que te muestran como crear XMLs con complemento, etc.


Saludos

Victor Espina
Reply all
Reply to author
Forward
0 new messages