Cita:
Empezado por rci
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.