Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Colaboración Paypal con ClubDelphi

Tema Cerrado
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-10-2024
pablog2k pablog2k is offline
Miembro
 
Registrado: may 2017
Posts: 241
Poder: 10
pablog2k Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Que va.
Lo he hecho 2 o 3 veces rompiendo encadenamiento y sd lo come todo. Que raro que a unos sí y a otros no.
buenas, yo acabo de hacer unas pruebas y si que me comprueba el encadenamiento:

-subo la factura A12 (encadena con la A11), respuesta OK.
-subo la factura A13 (me invento el encadenamiento, pongo que encadena con la B1234 que ni siquiera existe, me invento los valores del nodo Encadenamiento.RegistroAnterior), respuesta Aceptada con errores, error en la huella.
-subo la factura A13 como subsanación, poniendo bien los valores de Encadenamiento (Encadena con A12, relleno bien IdEmisorFactura,NumSerieFactura,FechaExpedicionFactura y Huella) , respuesta OK.
-subo la factura A14 (encadena con la A13, con la huella de la subsanación de la A13), respuesta OK.
  #2  
Antiguo 23-10-2024
sglorka sglorka is offline
Miembro
 
Registrado: mar 2017
Ubicación: Tenerife
Posts: 558
Poder: 10
sglorka Va por buen camino
Cita:
Empezado por pablog2k Ver Mensaje
buenas, yo acabo de hacer unas pruebas y si que me comprueba el encadenamiento:

-subo la factura A12 (encadena con la A11), respuesta OK.
-subo la factura A13 (me invento el encadenamiento, pongo que encadena con la B1234 que ni siquiera existe, me invento los valores del nodo Encadenamiento.RegistroAnterior), respuesta Aceptada con errores, error en la huella.
-subo la factura A13 como subsanación, poniendo bien los valores de Encadenamiento (Encadena con A12, relleno bien IdEmisorFactura,NumSerieFactura,FechaExpedicionFactura y Huella) , respuesta OK.
-subo la factura A14 (encadena con la A13, con la huella de la subsanación de la A13), respuesta OK.
El encadenamiento siempre tiene que ser con el registro generado anteriormente en orden cronológico para el mismo SIF. La tercera operación que has hecho, -subo la factura A13 como subsanación, poniendo bien los valores de Encadenamiento (Encadena con A12, relleno bien IdEmisorFactura,NumSerieFactura,FechaExpedicionFactura y Huella) , respuesta OK.

no debería ser correcta ya que no estás encadenando con el registro anterior de factura A13 que sí fue aceptado, aunque con errores. Para subsanar una huella no puedes saltarte la cadena cronológica aunque parezca que en realidad no estás subsanando nada. Esto ya lo he consultado con el correo de Verifactu. Si te responde Ok en porque ellos internamente habrán decidido eso pero saben perfectamente que el encadenamiento está mal
  #3  
Antiguo 23-10-2024
pablog2k pablog2k is offline
Miembro
 
Registrado: may 2017
Posts: 241
Poder: 10
pablog2k Va por buen camino
Cita:
Empezado por sglorka Ver Mensaje
El encadenamiento siempre tiene que ser con el registro generado anteriormente en orden cronológico para el mismo SIF. La tercera operación que has hecho, -subo la factura A13 como subsanación, poniendo bien los valores de Encadenamiento (Encadena con A12, relleno bien IdEmisorFactura,NumSerieFactura,FechaExpedicionFactura y Huella) , respuesta OK.

no debería ser correcta ya que no estás encadenando con el registro anterior de factura A13 que sí fue aceptado, aunque con errores. Para subsanar una huella no puedes saltarte la cadena cronológica aunque parezca que en realidad no estás subsanando nada. Esto ya lo he consultado con el correo de Verifactu. Si te responde Ok en porque ellos internamente habrán decidido eso pero saben perfectamente que el encadenamiento está mal
no acabo de entender lo que dices:
subo la A12 encadena con A11, ok
subo A13 encadena con B21324(inventada), Aceptada con errores (arregla la huella me dicen)
subo A13 corregida que encadena con A12 (huella ok ) contesta OK
subo A14 encadena A13, contesta OK
el orden cronológico lo he seguido.
precisamente lo que he arreglado es el encadenamiento de la A13 que apuntaba a una inventada y le e dicho que apunte a la A12 que cronológicamente es la anterior
  #4  
Antiguo 23-10-2024
sglorka sglorka is offline
Miembro
 
Registrado: mar 2017
Ubicación: Tenerife
Posts: 558
Poder: 10
sglorka Va por buen camino
Cita:
Empezado por pablog2k Ver Mensaje
no acabo de entender lo que dices:
subo la A12 encadena con A11, ok
subo A13 encadena con B21324(inventada), Aceptada con errores (arregla la huella me dicen)
subo A13 corregida que encadena con A12 (huella ok ) contesta OK
subo A14 encadena A13, contesta OK
el orden cronológico lo he seguido
Para formar la huella en la tercera operación, ¿ Qué huella anterior estás tomando, la de el registro de alta inicial de A13 o la de A12 ?
Sólo puedes coger la del alta inicial de A13
  #5  
Antiguo 23-10-2024
pablog2k pablog2k is offline
Miembro
 
Registrado: may 2017
Posts: 241
Poder: 10
pablog2k Va por buen camino
Cita:
Empezado por sglorka Ver Mensaje
Para formar la huella en la tercera operación, ¿ Qué huella anterior estás tomando, la de el registro de alta inicial de A13 o la de A12 ?
Sólo puedes coger la del alta inicial de A13
yo me guardo en base de datos de cada registro enviado, el valor del campo Huella (el SHA256 calculado de 64 caracteres), entonces cuando hago el siguiente registro, relleno los datos de encadenamiento asi:

Código Delphi [-]
  ARegistroFactura[0].RegistroAlta.Encadenamiento.RegistroAnterior := SistemaFacturacion.EncadenamientoFacturaAnteriorType.Create;
  ARegistroFactura[0].RegistroAlta.Encadenamiento.RegistroAnterior.IdEmisorFactura := 'B97486070';
  ARegistroFactura[0].RegistroAlta.Encadenamiento.RegistroAnterior.NumSerieFactura := 'A12';
  ARegistroFactura[0].RegistroAlta.Encadenamiento.RegistroAnterior.FechaExpedicionFactura := '23-10-2024';
  ARegistroFactura[0].RegistroAlta.Encadenamiento.RegistroAnterior.Huella := 'EA1128619C488A282B3B544EBFEB2FE0BDDAC52C12CA7BD75019EDE49AAE6ED5';

En mi caso , cuando subo la primera vez el A13, pongo los datos de encadenamiento de A12 bien , pero el numserieFactura lo pongo mal a propósito. Genero la huella de A13 y subo el registro.
Hacienda me contesta que está mal, que lo arregle.
Vuelvo a subir A13, como subsanacion, ahora rellenando bien RegistroAnterior.NumSerieFactura , genero la huella y la guardo. Envío y Hacienda contesta OK.
Genero la A14, con la huella buena de la A13, la subo y OK
creo que los pasos que he seguido son los normales a la hora de arreglar un error de encadenamiento (subes una factura, te dice aceptada pero arregla el encadenamiento, lo arreglas, guardas huella bien hecha, subes a hacienda, responde OK)

Última edición por Neftali [Germán.Estévez] fecha: 23-10-2024 a las 13:30:23. Razón: Añadir TAGs al código
  #6  
Antiguo 23-10-2024
sglorka sglorka is offline
Miembro
 
Registrado: mar 2017
Ubicación: Tenerife
Posts: 558
Poder: 10
sglorka Va por buen camino
Cita:
Empezado por pablog2k Ver Mensaje
yo me guardo en base de datos de cada registro enviado, el valor del campo Huella (el SHA256 calculado de 64 caracteres), entonces cuando hago el siguiente registro, relleno los datos de encadenamiento asi:

ARegistroFactura[0].RegistroAlta.Encadenamiento.RegistroAnterior := SistemaFacturacion.EncadenamientoFacturaAnteriorType.Create;
ARegistroFactura[0].RegistroAlta.Encadenamiento.RegistroAnterior.IdEmisorFactura := 'B97486070';
ARegistroFactura[0].RegistroAlta.Encadenamiento.RegistroAnterior.NumSerieFactura := 'A13';
ARegistroFactura[0].RegistroAlta.Encadenamiento.RegistroAnterior.FechaExpedicionFactura := '23-10-2024';
ARegistroFactura[0].RegistroAlta.Encadenamiento.RegistroAnterior.Huella := 'EA1128619C488A282B3B544EBFEB2FE0BDDAC52C12CA7BD75019EDE49AAE6ED5';

En mi caso , cuando subo la primera vez el A13, pongo los datos de encadenamiento de A12 bien , pero el numserieFactura lo pongo mal a propósito. Genero la huella de A13 y subo el registro.
Hacienda me contesta que está mal, que lo arregle.
Vuelvo a subir A13, como subsanacion, ahora rellenando bien RegistroAnterior.NumSerieFactura , genero la huella y la guardo. Envío y Hacienda contesta OK.
Genero la A14, con la huella buena de la A13, la subo y OK
creo que los pasos que he seguido son los normales a la hora de arreglar un error de encadenamiento (subes una factura, te dice aceptada pero arregla el encadenamiento, lo arreglas, guardas huella bien hecha, subes a hacienda, responde OK)
¿ De qué registro estás cogiendo la huella anterior para generar la huella de A13 cuándo la subes como subsanación ?
  #7  
Antiguo 23-10-2024
pablog2k pablog2k is offline
Miembro
 
Registrado: may 2017
Posts: 241
Poder: 10
pablog2k Va por buen camino
Cita:
Empezado por sglorka Ver Mensaje
¿ De qué registro estás cogiendo la huella anterior para generar la huella de A13 cuándo la subes como subsanación ?
de A12, que es la que subí cronológicamente antes de la A13.
Relleno el encadenamiento de la A13 con los datos de la A12 (numserie,fecha,huella) , que fueron los datos que puse mal y me dijeron que los arreglara, y sobre ese registro, genero la huella y la guardo en el registro de A13, para cuando haga la A14
  #8  
Antiguo 23-10-2024
antoine0 antoine0 is offline
Miembro
 
Registrado: oct 2021
Posts: 260
Poder: 5
antoine0 Va por buen camino
Cita:
Empezado por sglorka Ver Mensaje
El encadenamiento siempre tiene que ser con el registro generado anteriormente en orden cronológico para el mismo SIF. La tercera operación que has hecho, -subo la factura A13 como subsanación, poniendo bien los valores de Encadenamiento (Encadena con A12, relleno bien IdEmisorFactura,NumSerieFactura,FechaExpedicionFactura y Huella) , respuesta OK.

no debería ser correcta ya que no estás encadenando con el registro anterior de factura A13 que sí fue aceptado, aunque con errores. Para subsanar una huella no puedes saltarte la cadena cronológica aunque parezca que en realidad no estás subsanando nada. Esto ya lo he consultado con el correo de Verifactu. Si te responde Ok en porque ellos internamente habrán decidido eso pero saben perfectamente que el encadenamiento está mal
Estoy contigo sobre lo que es lo correcto: si el SIF ha generado A13malo, debe encadenar la siguiente (A13bueno) con este mismo A13malo, no con A12.
Y estoy seguro que esta secuencia (A13bueno encadenada con A13malo y marcada subsanación) será aceptada por AEAT.

Ahora bien, puede haber caso de operatividad que permiten secuencias como:
  • se genera A12 limpiamente
  • se empieza a generar un A13, hay un problema, el sistema se raya, envía un A13malo y al mismo tiempo se cae (incluso puede llegar a no recuperar la respuesta al envío de A13malo)
  • se recupera el sistema, en la base la cadena tiene entonces A12 como última (el SIF no sabe nada de A13)
  • se envía la siguiente, A13bueno, encadenada con A12
  • este envío está descartado por AEAT ya que "A13" ya existe en el sistema de AEAT (aunque ¡no existe en el SIF!)
  • se reenvía A13bueno como subsanación (sin cambiar nada)
Visto desde la AEAT, la secuencia será efectivamente la que lo que ha probado @pablog2K. Y creo que es admisible (aunque se necesitan dos incidentes, que se raye y que se caiga).

Última edición por antoine0 fecha: 23-10-2024 a las 18:49:09. Razón: Corrección nombre pablog2K
  #9  
Antiguo 23-10-2024
sglorka sglorka is offline
Miembro
 
Registrado: mar 2017
Ubicación: Tenerife
Posts: 558
Poder: 10
sglorka Va por buen camino
Cita:
Empezado por antoine0 Ver Mensaje
Estoy contigo sobre lo que es lo correcto: si el SIF ha generado A13malo, debe encadenar la siguiente (A13bueno) con este mismo A13malo, no con A12.
Y estoy seguro que esta secuencia (A13bueno encadenada con A13malo y marcada subsanación) será aceptada por AEAT.

Ahora bien, puede haber caso de operatividad que permiten secuencias como:
  • se genera A12 limpiamente
  • se empieza a generar un A13, hay un problema, el sistema se raya, envía un A13malo y al mismo tiempo se cae (incluso puede llegar a no recuperar la respuesta al envío de A13malo)
  • se recupera el sistema, en la base la cadena tiene entonces A12 como última (el SIF no sabe nada de A13)
  • se envía la siguiente, A13bueno, encadenada con A12
  • este envío está descartado por AEAT ya que "A13" ya existe en el sistema de AEAT (aunque ¡no existe en el SIF!)
  • se reenvía A13bueno como subsanación (sin cambiar nada)
Visto desde la AEAT, la secuencia será efectivamente la que lo que ha probado pablo2K. Y creo que es admisible (aunque se necesitan dos incidentes, que se raye y que se caiga).
Bueno esta situación, en teoría, no podría darse, y no me refiero a que se caiga el sistema, me refiero a esta suposición que haces "se recupera el sistema, en la base la cadena tiene entonces A12 como última (el SIF no sabe nada de A13)". Si en el paso anterior has podido enviar A13 y la ha aceptado la Aeat, es por que la tienes registrada en tu sistema, que luego no te enteres de la respuesta porque el sistema se haya caido no es problema porque volverías a enviar A13 (se supone que tu algoritmo la tiene marcada como no enviada) y te daría registro duplicado en la Aeat y aquí no ha pasado nada.
En mi cabeza no cabe que un registro que se envía a la Aeat no esté almacenado en el Sif. El código que se desarrolle para tal cometido, al menos, debe asegurar este punto.
  #10  
Antiguo 23-10-2024
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.766
Poder: 8
ermendalenda Va por buen camino
Cita:
Empezado por sglorka Ver Mensaje
Bueno esta situación, en teoría, no podría darse, y no me refiero a que se caiga el sistema, me refiero a esta suposición que haces "se recupera el sistema, en la base la cadena tiene entonces A12 como última (el SIF no sabe nada de A13)". Si en el paso anterior has podido enviar A13 y la ha aceptado la Aeat, es por que la tienes registrada en tu sistema, que luego no te enteres de la respuesta porque el sistema se haya caido no es problema porque volverías a enviar A13 (se supone que tu algoritmo la tiene marcada como no enviada) y te daría registro duplicado en la Aeat y aquí no ha pasado nada.
En mi cabeza no cabe que un registro que se envía a la Aeat no esté almacenado en el Sif. El código que se desarrolle para tal cometido, al menos, debe asegurar este punto.
Si de ha enviado seguramente puedas consultarla cuando hagan la web, debes generar la factura a13 de nuevo y enviarla como subsanacion, si r3cibes la r3spuesta que ya está en el sistema tienes que recibir esa notificación y saber que tienes que hacer.
El problema es que hayas emitido la factura con su qr y no haya dado tiempo a enviarla antes de la avería y es un escenario posible y un potencial problema aquí no cabe subsanacion.

Última edición por ermendalenda fecha: 23-10-2024 a las 19:18:08.
  #11  
Antiguo 24-10-2024
antoine0 antoine0 is offline
Miembro
 
Registrado: oct 2021
Posts: 260
Poder: 5
antoine0 Va por buen camino
Cita:
Empezado por sglorka Ver Mensaje
Bueno esta situación, en teoría, no podría darse, y no me refiero a que se caiga el sistema, me refiero a esta suposición que haces "se recupera el sistema, en la base la cadena tiene entonces A12 como última (el SIF no sabe nada de A13)". Si en el paso anterior has podido enviar A13 y la ha aceptado la Aeat, es por que la tienes registrada en tu sistema, que luego no te enteres de la respuesta porque el sistema se haya caido no es problema porque volverías a enviar A13 (se supone que tu algoritmo la tiene marcada como no enviada) y te daría registro duplicado en la Aeat y aquí no ha pasado nada.
Disculpa que no he sido lo suficientemente claro. No estoy hablando de un sistema teórico, sino de un sistema que ha caído. Por tanto el sistema después de la recuperación no sabe si se ha enviado el A13malo o ni siquiera que existe este A13malo. Pensar por ejemplo que se ha recuperado desde un backup cogido después de la emisión de A12.

Cita:
En mi cabeza no cabe que un registro que se envía a la Aeat no esté almacenado en el Sif. El código que se desarrolle para tal cometido, al menos, debe asegurar este punto.
Aquí exactamente está mi punto. En teoría, el sistema debe pasar sucesivamente por todos los estados creación_número_factura - registro_creado_y_encadenado - enviado - recibido_AR, sin salto, siendo cada operación monotónica (procesando los registros en orden estricto). Y estoy de acuerdo contigo que el código debe absolutamente seguir este guion y asegurarlo (sé que hay una duda sobre la existencia del primer guion).
Pero en la práctica pasan cosas inesperadas y los sistemas pueden caer. Y luego arrancan desde un punto de recuperación anterior a la caída.
A veces, en situación perfecta, cada guion en mi esquema anterior siendo un punto de recuperación, se restaura desde el último guion anterior a la caída, y llegamos al esquema que propones.
Pero a veces en una caída, debes recular de uno o varios puntos de recuperación, por circunstancias; y aquí tienes la oportunidad de tener una situación, observada desde el exterior, como la que he dibujado.
Tema Cerrado


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Hijo de Informáticos gluglu Humor 3 13-03-2007 11:05:35
Adictos informaticos ... Trigger Humor 2 11-10-2004 12:18:32
Nosotros los Informáticos Trigger Humor 1 10-10-2004 14:58:09
Patrón de los Informáticos. obiwuan Varios 20 10-09-2003 14:44:54
Chistes Informaticos jhonny Humor 2 11-08-2003 21:59:09


La franja horaria es GMT +2. Ahora son las 23:28:44.


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
Copyright 1996-2007 Club Delphi