![]() |
Guardar RF como XML
Buenas...
Estoy convirtiendo mi actual código, que realiza los envíos sobre la marcha a medida que se generan las facturas, para cumplir con la normativa de la AEAT, es decir, el dichoso envío por bloques, con tiempos de espera, etc. Ya lo tengo implementado en el software en la nube, pero no en Delphi. El problema que tengo es que no consigo guardar el RF como XML, ya que me hará falta más tarde cuando haga el envío. 1. Es decir, el software genera el RF, el QR, etc. y marca la factura como "pendiente de enviar" 2. Luego otra aplicación o servicio que está siempre abierta, comprueba las facturas pendientes, crea el bloque (con las que estén listas) y realiza el envío. Mi duda es cómo rellenar el bloque desde la APP2, ya que no encuentro la forma de guardar el RF como XML en la APP1 ara luego "incrustarlo" en la lista de facturas del XML a enviar a Hacienda. He visto algunos ejemplos pero me parecen un poco liosos, y el XML que obtengo no coincide con el que yo genero al enviar. ¿Cómo lo habéis hecho vosotros? Sé que "simulando el envío" en el evento OnBeforeExecute del componente HTTPRIO puedo guardar el XML de salida, pero no sé si es la mejor opción o si hay otra manera. Con TicketBAI el objeto SOAP tiene opción para exportar a XML con un simple Factura.XML |
Hola,
Algo colateral. Me pareciera dices de crear el xml en el envio. Que yo sepa el xml individual se ha de crear "estatutariamente" en el momento de crear el rf Realmente no sé si te referiste al xml grande o al chico :confused: |
Cita:
Según la documentación y para evitar problemas posteriores (sobre todo con fechas y horas) el RF se debe generar en el mismo momento de emitir la factura. Lo más sencillo es, como has dicho, en el OneforeExecure. En el ejemplo de [seccion_31] tienes el código sencillo que lo hace. Captura el evento con el siguinte procedimiento: https://www.clubdelphi.com/foros/showthread.php?t=97004
Una vez los tienes todos almacenados. LA APP2 sólo tienes que recogerlos, montar el paquete y enviarlo. NOTA: En el código lo guarda a fichero, nosotros en nuestroi caso lo enviamos a B.D. también. |
Lo siento, a veces me explico peor que la AEAT...
En efecto, el RF lo creo al emitir la factura, para poder obtener el QR e imprimirlo. La otra APP2 solo hace los envíos (el XML "grande" que incluye una o 1000 facturas). Mi duda es como guardar (la parte del XML de <RegistroFactura>) en la app1 para luego armar el nuevo XML del envío con todos esos RF. Anteriormente hacia el envío en el momento de crear el RF, QR, etc (es decir, envío inmediato). Pero como hay que hacerle caso a Hacienda... En el software en la nube no pasa nada porque el XML lo creo "a pelo", pero aquí no. |
Perdona, creo que soy yo el que no te había entendido.
Revisa el mensaje #2, donde hay referencias a varios códigos e hilos donde muestra cómo generar el XML de la factura. https://www.clubdelphi.com/foros/sho...92&postcount=2 |
Cita:
<?xml version="1.0"?> <RegistroAlta> <RegistroFacturacionType> <IDVersion>1.0</IDVersion> <IDFactura> Y además añade ese <?xml version="1.0"?> al principio, aunque eso es lo de menos porque puedo quitarlo a mano. Supongo que también debo quitar a mano el <RegistroFacturacionType> y </RegistroFacturacionType> para dejarlo limpio? Ahora que tengo la parte del XML correspondiente al RF (uno o varios), habría que crear el XML del envío, con el "bloque" de RF a enviar. ¿Hay algún ejemplo para extraer todos los XML de los RF a enviar al crear el XML del envío? Yo lo tengo más o menos así: Código:
veriFactu:=RegFactuSistemaFacturacion.Create; |
Ok, he estado haciendo pruebas para convertir ahora de XML al objeto adecuado y tengo esta función:
Código:
function CargarRegistroAltaDesdeXML(const XMLText: string): RegistroFacturaType;Si alguien puede echarme un cable se lo agradecería, porque no sé si voy por buen camino o no. Nunca he usado los conversores estos Soap <-> XML |
| La franja horaria es GMT +2. Ahora son las 16:27:37. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi