Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-07-2017
xamminf xamminf is offline
Miembro
 
Registrado: ene 2017
Posts: 149
Poder: 8
xamminf Va por buen camino
Cita:
Empezado por newtron Ver Mensaje
Hasta ahí llego compañero, yo preguntaba si había alguna manera de que, al enviar los datos hubiera alguna especie de transacción o algo que nosotros pudiéramos tocar para que no ocurra esto, porque me da la impresión de que está fuera de nuestra mano. Pregunto porque, con lo listos que deben de ser los que han montado ese chiringuito, deberían de tener esta posibilidad contemplada.

Saludos

El sistema es síncrono, es decir: petición y respuesta en el mismo viaje.

¿ No habría sido mejor montar un sistema asíncrono de manera que envias ahora y puedes tener la repuesta más tarde ?
Así el asunto sólo se trataría de enviar el .xml y ellos lo procesarían cuando pudieran y cuando lo hicieran colocarían un .xml que podríamos leer cuando conectasemos.

Es verdad que tiene alguna desventaja, pero tiene algunas otras, como este tema de los cortes.

En fin, pura informática ficción.
Responder Con Cita
  #2  
Antiguo 03-07-2017
figo21 figo21 is offline
Miembro
 
Registrado: dic 2012
Posts: 104
Poder: 12
figo21 Va por buen camino
Cita:
Empezado por xamminf Ver Mensaje
El sistema es síncrono, es decir: petición y respuesta en el mismo viaje.

¿ No habría sido mejor montar un sistema asíncrono de manera que envias ahora y puedes tener la repuesta más tarde ?
Así el asunto sólo se trataría de enviar el .xml y ellos lo procesarían cuando pudieran y cuando lo hicieran colocarían un .xml que podríamos leer cuando conectasemos.

Es verdad que tiene alguna desventaja, pero tiene algunas otras, como este tema de los cortes.

En fin, pura informática ficción.
Buenos días, a ver este problema que comentáis lo tenéis solucionado con las consultas.
Podéis implementar un sistema que haga una consulta y las facturas que te devuelva la consulta y no tengáis marcadas en vuestro sistema, las marcáis.
De hecho, si mal no recuerdo la consulta te devuelve todos los datos que se envían en el alta de la factura, más los propios de la consulta (contraste).


Un saludo.
Responder Con Cita
  #3  
Antiguo 03-07-2017
erojo erojo is offline
Registrado
NULL
 
Registrado: jun 2017
Posts: 2
Poder: 0
erojo Va por buen camino
sii aeat cobros facturas expedidas

Hola,

No consigo suministrar al SII la información de un cobro asociado a una factura expedida. El mensaje que me devuelve el Web Service de la AEAT es el siguiente:
Codigo[4124].Error La direccion no se corresponde con el fichero de entrada.
Pero no soy capaz de detectar dónde está el problema. ¿Sería alguien tan amable de adjuntar un ejemplo de suministro de cobro que funcione? Mi código está en VB .NET y es el siguiente:

Gracias,

Dim blnReturn As Boolean = True
Dim objCobroEmitido As New SuministroCobrosEmitidas.SuministroLRCobrosEmitidas

Try
Dim objCabecera As New SuministroCobrosEmitidas.CabeceraSiiCobrosPagos
objCabecera.IDVersionSii = SuministroCobrosEmitidas.VersionSiiType.Item10
Dim objTitular As New SuministroCobrosEmitidas.PersonaFisicaJuridicaESType
objTitular.NIF = "AAAAAAAAA"
objTitular.NombreRazon = "XXXXXXXXX XXXXXX"
objCabecera.Titular = objTitular
objCobroEmitido.Cabecera = objCabecera

Dim objRegistrosCobro As SuministroCobrosEmitidas.LRCobrosEmitidasType()
ReDim Preserve objRegistrosCobro(0)

Dim objRegistroCobro As New SuministroCobrosEmitidas.LRCobrosEmitidasType
Dim objIdFactura As New SuministroCobrosEmitidas.IDFacturaExpedidaBCType
Dim objIdEmisor As New SuministroCobrosEmitidas.IDFacturaExpedidaBCTypeIDEmisorFactura
objIdEmisor.NIF = "AAAAAAAAA"

objIdFactura.IDEmisorFactura = objIdEmisor
objIdFactura.NumSerieFacturaEmisor = "FA1700002"
objIdFactura.FechaExpedicionFacturaEmisor = Now.ToString("dd-MM-yyyy") '"21-06-2017"
objRegistroCobro.IDFactura = objIdFactura

Dim objDatosPago As SuministroCobrosEmitidas.DatosPagoCobroType()
ReDim Preserve objDatosPago(0)

Dim objDatoPago As New SuministroCobrosEmitidas.DatosPagoCobroType
objDatoPago.Fecha = Now.ToString("dd-MM-yyyy") '"21-06-2017"
objDatoPago.Importe = "100"
objDatoPago.Medio = SuministroCobrosEmitidas.MedioPagoType.Item04
'objDatoPago.Cuenta_O_Medio = "Al contado"

objDatosPago.ToList.Add(objDatoPago)
objRegistroCobro.Cobros = objDatosPago

objRegistrosCobro.ToList.Add(objRegistroCobro)

objCobroEmitido.RegistroLRCobros = objRegistrosCobro

Dim objSIIService As New SuministroCobrosEmitidas.siiService
objSIIService.ClientCertificates.Add(obtenerCertificadoSIIAEAT)
objSIIService.Url = "https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP"
objSIIService.Timeout = 10000

Dim objRespCobrosEmitidos As New SuministroCobrosEmitidas.RespuestaLRCobrosEmitidasType
objRespCobrosEmitidos = objSIIService.SuministroLRCobrosEmitidas(objCobroEmitido)

Select Case objRespCobrosEmitidos.EstadoEnvio
Case SuministroCobrosEmitidas.EstadoEnvioType.Correcto
MsgBox("Correcto")
Case SuministroCobrosEmitidas.EstadoEnvioType.Incorrecto
MsgBox("Incorrecto")
Case SuministroCobrosEmitidas.EstadoEnvioType.ParcialmenteCorrecto
MsgBox("Parcialmente Correcto")
End Select



Catch ex As Exception
blnReturn = False
Finally
If Not objCobroEmitido Is Nothing Then
objCobroEmitido = Nothing
End If
End Try
Responder Con Cita
  #4  
Antiguo 03-07-2017
RafaSerMed RafaSerMed is offline
Miembro
NULL
 
Registrado: ene 2017
Posts: 24
Poder: 0
RafaSerMed Va por buen camino
Cita:
Empezado por erojo Ver Mensaje
Hola,

No consigo suministrar al SII la información de un cobro asociado a una factura expedida. El mensaje que me devuelve el Web Service de la AEAT es el siguiente:
Codigo[4124].Error La direccion no se corresponde con el fichero de entrada.
Pero no soy capaz de detectar dónde está el problema. ¿Sería alguien tan amable de adjuntar un ejemplo de suministro de cobro que funcione? Mi código está en VB .NET y es el siguiente:

Gracias,

Dim blnReturn As Boolean = True
Dim objCobroEmitido As New SuministroCobrosEmitidas.SuministroLRCobrosEmitidas

Try
Dim objCabecera As New SuministroCobrosEmitidas.CabeceraSiiCobrosPagos
objCabecera.IDVersionSii = SuministroCobrosEmitidas.VersionSiiType.Item10
Dim objTitular As New SuministroCobrosEmitidas.PersonaFisicaJuridicaESType
objTitular.NIF = "AAAAAAAAA"
objTitular.NombreRazon = "XXXXXXXXX XXXXXX"
objCabecera.Titular = objTitular
objCobroEmitido.Cabecera = objCabecera

Dim objRegistrosCobro As SuministroCobrosEmitidas.LRCobrosEmitidasType()
ReDim Preserve objRegistrosCobro(0)

Dim objRegistroCobro As New SuministroCobrosEmitidas.LRCobrosEmitidasType
Dim objIdFactura As New SuministroCobrosEmitidas.IDFacturaExpedidaBCType
Dim objIdEmisor As New SuministroCobrosEmitidas.IDFacturaExpedidaBCTypeIDEmisorFactura
objIdEmisor.NIF = "AAAAAAAAA"

objIdFactura.IDEmisorFactura = objIdEmisor
objIdFactura.NumSerieFacturaEmisor = "FA1700002"
objIdFactura.FechaExpedicionFacturaEmisor = Now.ToString("dd-MM-yyyy") '"21-06-2017"
objRegistroCobro.IDFactura = objIdFactura

Dim objDatosPago As SuministroCobrosEmitidas.DatosPagoCobroType()
ReDim Preserve objDatosPago(0)

Dim objDatoPago As New SuministroCobrosEmitidas.DatosPagoCobroType
objDatoPago.Fecha = Now.ToString("dd-MM-yyyy") '"21-06-2017"
objDatoPago.Importe = "100"
objDatoPago.Medio = SuministroCobrosEmitidas.MedioPagoType.Item04
'objDatoPago.Cuenta_O_Medio = "Al contado"

objDatosPago.ToList.Add(objDatoPago)
objRegistroCobro.Cobros = objDatosPago

objRegistrosCobro.ToList.Add(objRegistroCobro)

objCobroEmitido.RegistroLRCobros = objRegistrosCobro

Dim objSIIService As New SuministroCobrosEmitidas.siiService
objSIIService.ClientCertificates.Add(obtenerCertificadoSIIAEAT)
objSIIService.Url = "https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP"
objSIIService.Timeout = 10000

Dim objRespCobrosEmitidos As New SuministroCobrosEmitidas.RespuestaLRCobrosEmitidasType
objRespCobrosEmitidos = objSIIService.SuministroLRCobrosEmitidas(objCobroEmitido)

Select Case objRespCobrosEmitidos.EstadoEnvio
Case SuministroCobrosEmitidas.EstadoEnvioType.Correcto
MsgBox("Correcto")
Case SuministroCobrosEmitidas.EstadoEnvioType.Incorrecto
MsgBox("Incorrecto")
Case SuministroCobrosEmitidas.EstadoEnvioType.ParcialmenteCorrecto
MsgBox("Parcialmente Correcto")
End Select



Catch ex As Exception
blnReturn = False
Finally
If Not objCobroEmitido Is Nothing Then
objCobroEmitido = Nothing
End If
End Try
Fijate a donde lo estas enviando, en el código aparece "https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP" cuando la url de pruebas para cobros de facturas expedidas es: "https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactCOBV1SOAP"
Responder Con Cita
  #5  
Antiguo 03-07-2017
CMB CMB is offline
Miembro
 
Registrado: ene 2017
Posts: 349
Poder: 8
CMB Va por buen camino
Cita:
Empezado por figo21 Ver Mensaje
Buenos días, a ver este problema que comentáis lo tenéis solucionado con las consultas.
Podéis implementar un sistema que haga una consulta y las facturas que te devuelva la consulta y no tengáis marcadas en vuestro sistema, las marcáis.
De hecho, si mal no recuerdo la consulta te devuelve todos los datos que se envían en el alta de la factura, más los propios de la consulta (contraste).Un saludo.
Dado que se trata de situaciones excepcionales, cuando la transmisión se corte (sea por culpa de la AEAT, o de la conexión a internet, o un bug del programa) y no se sepa qué facturas han sido enviadas y cuáles no, no merece la pena desarrollar rutinas tan complejas.

El usuario debe enviar de nuevo todas las facturas no marcadas. Una parte de ellas será rechazada por "duplicada". ¿Y qué hacer ahora con esas? Pues muy sencillo, se mandan como cambios, y el servidor suministrará un nuevo CSV. No importa que no haya habido cambios reales, por lo menos en el servidor de prueba las acepta igualmente.

Saludos,
Responder Con Cita
  #6  
Antiguo 04-07-2017
figo21 figo21 is offline
Miembro
 
Registrado: dic 2012
Posts: 104
Poder: 12
figo21 Va por buen camino
Cita:
Empezado por CMB Ver Mensaje
Dado que se trata de situaciones excepcionales, cuando la transmisión se corte (sea por culpa de la AEAT, o de la conexión a internet, o un bug del programa) y no se sepa qué facturas han sido enviadas y cuáles no, no merece la pena desarrollar rutinas tan complejas.

El usuario debe enviar de nuevo todas las facturas no marcadas. Una parte de ellas será rechazada por "duplicada". ¿Y qué hacer ahora con esas? Pues muy sencillo, se mandan como cambios, y el servidor suministrará un nuevo CSV. No importa que no haya habido cambios reales, por lo menos en el servidor de prueba las acepta igualmente.

Saludos,
Hola CMB, sí esa es otra solución. Yo tengo implementadas las dos.


Un saludo.
Responder Con Cita
  #7  
Antiguo 04-07-2017
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.471
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por CMB Ver Mensaje
Dado que se trata de situaciones excepcionales, cuando la transmisión se corte (sea por culpa de la AEAT, o de la conexión a internet, o un bug del programa) y no se sepa qué facturas han sido enviadas y cuáles no, no merece la pena desarrollar rutinas tan complejas.

El usuario debe enviar de nuevo todas las facturas no marcadas. Una parte de ellas será rechazada por "duplicada". ¿Y qué hacer ahora con esas? Pues muy sencillo, se mandan como cambios, y el servidor suministrará un nuevo CSV. No importa que no haya habido cambios reales, por lo menos en el servidor de prueba las acepta igualmente.

Saludos,
Es una buena solución aunque no sé si levantará suspicacias en la aeat modificar muchas facturas.

Saludos
__________________
Be water my friend.
Responder Con Cita
  #8  
Antiguo 04-07-2017
CMB CMB is offline
Miembro
 
Registrado: ene 2017
Posts: 349
Poder: 8
CMB Va por buen camino
Cita:
Empezado por newtron Ver Mensaje
Es una buena solución aunque no sé si levantará suspicacias en la aeat modificar muchas facturas. Saludos
Es probable que despierte suspicacias, pero tienes una buena explicación para darles.
Responder Con Cita
  #9  
Antiguo 04-07-2017
xamminf xamminf is offline
Miembro
 
Registrado: ene 2017
Posts: 149
Poder: 8
xamminf Va por buen camino
Cita:
Empezado por CMB Ver Mensaje
Es probable que despierte suspicacias, pero tienes una buena explicación para darles.
Ya, pero cuando vas en carretera, lo mejor, es que la GC no te pare, porque aplicando reglamentación ¡ te pueden sacar de todo ! ¿ No sabías que España se generan más de un millón de líneas de leyes al año ? ¡ Como para estar al día !
Responder Con Cita
  #10  
Antiguo 06-07-2017
CMB CMB is offline
Miembro
 
Registrado: ene 2017
Posts: 349
Poder: 8
CMB Va por buen camino
Cita:
Empezado por xamminf Ver Mensaje
Ya, pero cuando vas en carretera, lo mejor, es que la GC no te pare, porque aplicando reglamentación ¡ te pueden sacar de todo ! ¿ No sabías que España se generan más de un millón de líneas de leyes al año ? ¡ Como para estar al día !
Según dicen el desconocimiento de la ley no exime de su cumplimiento. Eso implica que debes tener la paciencia de leerte ese millón de líneas todos los años. A ratos perdidos.
Responder Con Cita
  #11  
Antiguo 04-07-2017
RafaSerMed RafaSerMed is offline
Miembro
NULL
 
Registrado: ene 2017
Posts: 24
Poder: 0
RafaSerMed Va por buen camino
Cita:
Empezado por CMB Ver Mensaje
Dado que se trata de situaciones excepcionales, cuando la transmisión se corte (sea por culpa de la AEAT, o de la conexión a internet, o un bug del programa) y no se sepa qué facturas han sido enviadas y cuáles no, no merece la pena desarrollar rutinas tan complejas.

El usuario debe enviar de nuevo todas las facturas no marcadas. Una parte de ellas será rechazada por "duplicada". ¿Y qué hacer ahora con esas? Pues muy sencillo, se mandan como cambios, y el servidor suministrará un nuevo CSV. No importa que no haya habido cambios reales, por lo menos en el servidor de prueba las acepta igualmente.

Saludos,
Si, yo lo comentaba igual en algún post anterior. Pero ojo, como decía también no es la opción mas optima. Algunos softwares contables muy extendidos (no daré nombres...) no hacen la comprobación de duplicidad de facturas a la hora de introducirlas en dicho software. Por lo que el error de factura duplicada puede que no sea porque se envía la misma factura, sino porque enviamos otra que tiene el mismo numero (por error al introducirlo o lo que sea).

Como ha comentado otro usuario, la opción mas fiable, es realizar una consulta de la información enviada. Yo esto lo hago si detecto que existe un error en la transmisión. Se activa una opción de validación de datos entre los datos introducidos y los datos enviados a la AEAT.
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
TICKET BAI (TicketBAI); Nuevo sistema de la Agencia Tributaria del Pais Vasco keys Internet 4170 Hace 1 Semana 17:29:05
AEAT envio de datos vía Webservice problemas con WSDL CelsoO Internet 11 09-10-2019 20:03:41
webService Soap de la Administración Digital Española notific@ apicito Internet 3 31-01-2017 11:25:28
Error en Webservice funcion envio de sms webmasterplc Delphi para la web 5 25-07-2013 20:10:29
Problemas con envío de XML a un WebService davidvamo Internet 1 13-02-2007 15:49:20


La franja horaria es GMT +2. Ahora son las 19:51:15.


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