Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Proyecto SIF/Veri*Factu/Ley Antifraude > Errores (relacionados con al AEAT)
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-12-2024
rci rci is offline
Miembro
 
Registrado: nov 2020
Posts: 416
Poder: 5
rci Va por buen camino
Question Error 4102 El XML no cumple el esquema - No indica que registro falla

Hola, me he encontrado un caso que no se como resolver.
Es cuando al realizar un envío de registros de facturación a Veri*Factu, no hay respuesta en el formato esperado sino que se produce una excepción y el mensaje que indica es
Cita:
Codigo[4102].El XML no cumple el esquema. Falta informar campo obligatorio.: *el que sea*
Te avisa de lo que falla en el XML que has enviado, pero no da mas detalles.
Supongamos que enviamos varios registros de facturación a la vez, todos están correctos menos uno que por el motivo que sea, se ha generado mal y le falta una propiedad obligatoria.
Al recibir la excepción no indica cual de los registros de facturación están mal y claro... si hay 1000 pues te puedes volver loco.

Como estáis planteando este caso?

A lo mejor es necesario validar el XML de cada registro de facturación (RegistroFacturacionAltaType) con el esquema antes de crear el "paquete" con todos los registros a enviar (RegFactuSistemaFacturacion) ? Esto es posible?

Muchas gracias por vuestra ayuda!

Saludos
Responder Con Cita
  #2  
Antiguo 13-12-2024
Faneka Faneka is offline
Miembro
 
Registrado: nov 2024
Posts: 137
Poder: 1
Faneka Va por buen camino
Yo valido cada RF antes de enviar, si tiene algun problema esa no se envía, se queda 'pendiente' y en el proximo envio se intenta de nuevo.
Responder Con Cita
  #3  
Antiguo 13-12-2024
rci rci is offline
Miembro
 
Registrado: nov 2020
Posts: 416
Poder: 5
rci Va por buen camino
Cita:
Empezado por Faneka Ver Mensaje
Yo valido cada RF antes de enviar, si tiene algun problema esa no se envía, se queda 'pendiente' y en el proximo envio se intenta de nuevo.
Muchas gracias Faneka.
Estoy intentando validar el XML del registro de facturación contra el esquema xsd. De momento no se como hacerlo en c#. Estoy buscando y probando.
Si alguien lo sabe se lo agradeceré.

Saludos
Responder Con Cita
  #4  
Antiguo 13-12-2024
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 1.768
Poder: 5
ermendalenda Va por buen camino
Cita:
Empezado por Faneka Ver Mensaje
Yo valido cada RF antes de enviar, si tiene algun problema esa no se envía, se queda 'pendiente' y en el proximo envio se intenta de nuevo.
Si esa no se envía y envías los siguientes después lo tienes que mandar como subsanacion. Y generándo un nuevo registro encadenado al último generado, tampoco rmte valdría como incidencia, aunque supongo que lo habrás tenido en cuenta, por que si te ha fallado la validación va a seguir mal.

Última edición por ermendalenda fecha: 13-12-2024 a las 18:06:41.
Responder Con Cita
  #5  
Antiguo 16-12-2024
rci rci is offline
Miembro
 
Registrado: nov 2020
Posts: 416
Poder: 5
rci Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Si esa no se envía y envías los siguientes después lo tienes que mandar como subsanacion. Y generándo un nuevo registro encadenado al último generado, tampoco rmte valdría como incidencia, aunque supongo que lo habrás tenido en cuenta, por que si te ha fallado la validación va a seguir mal.
gracias ermendalenda, de momento no he conseguido validar el XML de un registro de facturación contra el esquema XSD. (No se si crear otro hilo dedicado a validar XML contra XSD porque yo uso C#...)

A parte he hecho una consulta a veri*factu para ver si en lugar de que salte una excepción que no indica que registro de facturación está mal, si pueden contestar una respuesta en formado esperado e indicando el registro que falla. Me han contestado que lo están estudiando...
Responder Con Cita
  #6  
Antiguo 16-12-2024
djatila djatila is offline
Miembro
 
Registrado: nov 2022
Posts: 15
Poder: 0
djatila Va por buen camino
Por si te sirve de algo. Una validez básica, es que puedas serializarlo.
Responder Con Cita
  #7  
Antiguo 16-12-2024
rci rci is offline
Miembro
 
Registrado: nov 2020
Posts: 416
Poder: 5
rci Va por buen camino
Cita:
Empezado por djatila Ver Mensaje
Por si te sirve de algo. Una validez básica, es que puedas serializarlo.
Gracias djatila, serializarlo puedo pero al enviar se queja que le falta Desglose
Con las pruebas que he hecho de validar el XML contra el XSD no da error, como si fuera correcto, supongo que lo estoy haciendo mal.
Responder Con Cita
  #8  
Antiguo 16-12-2024
sglorka sglorka is offline
Miembro
 
Registrado: mar 2017
Ubicación: Tenerife
Posts: 391
Poder: 9
sglorka Va por buen camino
Cita:
Empezado por rci Ver Mensaje
Hola, me he encontrado un caso que no se como resolver.
Es cuando al realizar un envío de registros de facturación a Veri*Factu, no hay respuesta en el formato esperado sino que se produce una excepción y el mensaje que indica es

Te avisa de lo que falla en el XML que has enviado, pero no da mas detalles.
Supongamos que enviamos varios registros de facturación a la vez, todos están correctos menos uno que por el motivo que sea, se ha generado mal y le falta una propiedad obligatoria.
Al recibir la excepción no indica cual de los registros de facturación están mal y claro... si hay 1000 pues te puedes volver loco.

Como estáis planteando este caso?

A lo mejor es necesario validar el XML de cada registro de facturación (RegistroFacturacionAltaType) con el esquema antes de crear el "paquete" con todos los registros a enviar (RegFactuSistemaFacturacion) ? Esto es posible?

Muchas gracias por vuestra ayuda!

Saludos
Mi recomendación es que hagas lo siguiente. Si mandas un bloque con 100 de RF's, y NO te rechaza el envío, entonces en la respuesta tienes información de las posibles aceptaciones con errores para que las corrijas. Si el envío es rechazado y no ha sido por una causa comunicaciones ( System.ServiceModel.EndpointNotFoundException, System.ServiceModel.CommunicationException ) si no por una causa del tipo ServiceModel (Error en el modelo ), entonces repites el envío pero en bloques de 1 en 1 hasta que hayas enviado los 100 Rf's. Es la única forma de averiguar qué registro está mal construido.

Puedes mejorar el algoritmo, si por ejemplo cuando vas por el quinto registro ya te lo rechaza entonces el siguiente bloque que mandas agrupas del el sexto hasta el 100. Y puede ser vuelto a rechazar por mala construcción, pues repites el proceso.
Responder Con Cita
  #9  
Antiguo 16-12-2024
rci rci is offline
Miembro
 
Registrado: nov 2020
Posts: 416
Poder: 5
rci Va por buen camino
Cita:
Empezado por sglorka Ver Mensaje
Mi recomendación es que hagas lo siguiente. Si mandas un bloque con 100 de RF's, y NO te rechaza el envío, entonces en la respuesta tienes información de las posibles aceptaciones con errores para que las corrijas. Si el envío es rechazado y no ha sido por una causa comunicaciones ( System.ServiceModel.EndpointNotFoundException, System.ServiceModel.CommunicationException ) si no por una causa del tipo ServiceModel (Error en el modelo ), entonces repites el envío pero en bloques de 1 en 1 hasta que hayas enviado los 100 Rf's. Es la única forma de averiguar qué registro está mal construido.

Puedes mejorar el algoritmo, si por ejemplo cuando vas por el quinto registro ya te lo rechaza entonces el siguiente bloque que mandas agrupas del el sexto hasta el 100. Y puede ser vuelto a rechazar por mala construcción, pues repites el proceso.
Muchas gracias sglorka, es una buena idea.
Pensaba que era posible validar el XML contra el esquema XSD y que antes de enviar ya te dijera si "el XML no cumple el esquema" pero de momento no lo consigo.
Responder Con Cita
  #10  
Antiguo 16-12-2024
rci rci is offline
Miembro
 
Registrado: nov 2020
Posts: 416
Poder: 5
rci Va por buen camino
Cita:
Empezado por rci Ver Mensaje
A parte he hecho una consulta a veri*factu para ver si en lugar de que salte una excepción que no indica que registro de facturación está mal, si pueden contestar una respuesta en formado esperado e indicando el registro que falla. Me han contestado que lo están estudiando...
Me han contestado que no pueden

Cita:
En este caso, desafortunadamente, no podemos dar otra salida, salvo un error general de tipo Soap Fault, aunque sea en una de las facturas de la remesa.
Esto es debido a que en el flujo de validaciones, una de las primeras cuestiones que evaluamos es si el XML completo es correcto a nivel sintáctico. Como falta el bloque "Desglose" de carácter obligatorio, se produce dicho error.
Tampoco es posible indicar la factura que se provoca el error, estamos muy limitados en la gestión de errores cuando se produce un error general de este tipo.

Sentimos las molestias.

Atentamente,
Atención al Usuario
Departamento de Informática Tributaria
Email: verifactu@correo.aeat.es
A ver si encuentro a alguien que haya podido validar el XML contra el esquema XSD (en c#.net). Sinó tendré que reenviar esos registros una a uno hasta encontrar el incorrecto, como propone sglorka

Saludos
Responder Con Cita
  #11  
Antiguo 16-12-2024
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 1.768
Poder: 5
ermendalenda Va por buen camino
Cita:
Empezado por rci Ver Mensaje
Me han contestado que no pueden



A ver si encuentro a alguien que haya podido validar el XML contra el esquema XSD (en c#.net). Sinó tendré que reenviar esos registros una a uno hasta encontrar el incorrecto, como propone sglorka

Saludos
Yo tampoco los válido pero la verdad es que no me preocupa demasiado, una vez depurado es raro que pase algo. Me preocupan más los errores no detectables, que gracias al foro he corregido alguno y los posibles cambios de version de verifactu o cambios en la normativa fiscal y que tengamos que cambiar los programas en caliente sin tener mucho tiempo d epru2bas, ya sabemos que aquí aprueban cosas para aplicar en 3 días.
Pero agarrate a la factura electronica. Eso sí que tiene un meneo, menos mal que ya la tengo lista(para la actualodad)
Responder Con Cita
  #12  
Antiguo 16-12-2024
rci rci is offline
Miembro
 
Registrado: nov 2020
Posts: 416
Poder: 5
rci Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Yo tampoco los válido pero la verdad es que no me preocupa demasiado, una vez depurado es raro que pase algo. Me preocupan más los errores no detectables, que gracias al foro he corregido alguno y los posibles cambios de version de verifactu o cambios en la normativa fiscal y que tengamos que cambiar los programas en caliente sin tener mucho tiempo d epru2bas, ya sabemos que aquí aprueban cosas para aplicar en 3 días.
Pero agarrate a la factura electronica. Eso sí que tiene un meneo, menos mal que ya la tengo lista(para la actualodad)
Gracias ermendalenda por tu respuesta. Lo tendré en cuenta
Responder Con Cita
  #13  
Antiguo 17-12-2024
rci rci is offline
Miembro
 
Registrado: nov 2020
Posts: 416
Poder: 5
rci Va por buen camino
He creado un nuevo hilo en el foro de .Net preguntando sobre el tema, por si alguien puede ayudarme

https://www.clubdelphi.com/foros/showthread.php?t=97129

Muchas gracias
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Error 4102 - Error en el primer intento _Io Errores (relacionados con al AEAT) 9 04-12-2024 18:21:19
Error 4102 - Falta informar campo obligatorio YellowStone Errores (relacionados con al AEAT) 3 06-11-2024 11:37:36
Esquema BD Zina Varios 8 10-11-2016 17:00:01
Cuando la red falla como capturar error Mauro® Conexión con bases de datos 5 09-10-2014 15:39:57
Propiedad que me indica si un DBMemo está vacio gluglu Varios 4 10-02-2005 16:48:17


La franja horaria es GMT +2. Ahora son las 07:09:49.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi