Club Delphi  
    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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-12-2016
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 2.888
Poder: 13
newtron Va camino a la fama
Nuevo sistema de la Agencia Tributaria española de envío de datos vía Webservice

Hola a tod@s.

Pues eso, la semana pasada la Agencia Tributaria española ha sacado una nueva ley por la que determinadas empresas que hacen la declaración del I.V.A. mensual deben de enviar los datos de facturación en un plazo máximo de 4 días desde la emisión o la anotación de la factura en cuestión. Este envío de información se hará mediante webservices y la verdad es que a mi me ha pillado fuera de juego con tema.

¿Alguien ha visto ya algo sobre este asunto en particular? ¿Algún tutorial o algo donde pueda enterarme mínimamente cómo va el tema este de los webservices con Delphi? porque actualmente estoy nulo sobre esto.

Gracias y un saludo
__________________
Be water my friend.
Responder Con Cita
  #2  
Antiguo 13-12-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 27.663
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Había leido que de momento solo será aplicable a grandes empresas, ¿ahora es para todas?
Responder Con Cita
  #3  
Antiguo 13-12-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.834
Poder: 9
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Por que te preocupa? Documentacion del webservice? Que protocolo usa? Ellos deberian darte el tutorial y la especificacion de su webservice
Responder Con Cita
  #4  
Antiguo 13-12-2016
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.498
Poder: 22
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Un servicio Web normalmente se representa con una interfaz, que para fines prácticos es como una clase de las de toda la vida.

En Delphi, usa la opción de menú Import WSDL, especificando la URL y demás datos que te proporciona la agencia tributaria. Eso generará una unidad .pas con el código Delphi necesario para que desde tu proyecto puedas escribir algo como:

...
WSFactura.NIF := '....';
WSFactura.IVA := 100;
WSFactura.Enviar;
...

Por falta de tiempo no puedo extenderme más, pero seguro que no te quedarás aquí. Hay bastante material en otros hilos del Club, además de las siguientes respuestas de los compañeros.

¡Saludos!
__________________
Twitter
Código
Blog
WhatsApp para consultas rápidas y asesorías profesionales: +52 1 2711260117
Responder Con Cita
  #5  
Antiguo 13-12-2016
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.375
Poder: 16
fjcg02 Va camino a la fama
Al tiene razón, suena todo muy rimbombante, pero al final sigues el procedimiento, te conectas , importas el WSDL y se te crea una unidad con todas las funciones que puedes emplear.

Lo contrastas con la documentación y empiezas a hacer pruebas. Te tendrán que indicar los pasos para conectarte, hacer una consulta, un envío, ... y comprobar que lo que has enviado se ha recibido correctamente.

Si no te da problemas, en una mañana tendrías que estar haciendo pruebas.

Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #6  
Antiguo 14-12-2016
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 2.888
Poder: 13
newtron Va camino a la fama
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Había leido que de momento solo será aplicable a grandes empresas, ¿ahora es para todas?
En principio se aplica a todas las grandes empresas y a las que, por distintos motivos, hagan las declaraciones de IVA mensual en vez de trimestral. La verdad es que en mi caso son unos pocos clientes pero aunque solo tuviera uno ya tendría que adaptar los programas a esto y por otro lado me da en la nariz que todo esto al final acabará implantándose para la mayoría de las empresas.

Cita:
Empezado por AgustinOrtu Ver Mensaje
Por que te preocupa? Documentacion del webservice? Que protocolo usa? Ellos deberian darte el tutorial y la especificacion de su webservice
Me preocupa porque es un "jardín" en el que nunca me he metido y no tengo la más mínima idea ni de cómo va ni cómo empezar.

Al, fjcg02 gracias por vuestras respuestas, habrá que ir empezando a ver cómo va todo este asunto.

Iré haciendo alguna prueba y si me atasco ya os comento.

Gracias a todos.
__________________
Be water my friend.
Responder Con Cita
  #7  
Antiguo 14-12-2016
Nasca Nasca is offline
Miembro
 
Registrado: abr 2007
Ubicación: Almería (España)
Posts: 237
Poder: 11
Nasca Va por buen camino
Nos vamos a divertir bastante con esta jugada con puente y alevosía de la A.Tributaria

En este caso concreto los procedimientos del Webservice se limitan a recibir un archivo xml de entrada y devolver una respuesta también en xml. Del tipo:

Código:
        <wsdl:operation name="SuministroLRFacturasEmitidas">

            <wsdl:input message="siiWdsl:EntradaSuministroLRFacturasEmitidas"/>

            <wsdl:output message="siiWdsl:RespuestaSuministroLRFacturasEmitidas"/>

        </wsdl:operation>
No hay funciones ni propiedades de utilidad real. Esto te permite obviar en Delphi el WSDL y SOAP. Se puede utilizar el wsdl solo como referencia.

La parte mas interesante del proceso es autentificar con certificado de usuario aceptado por la Agencia Tributaria y el no depender de SOAP te permite opciones mas directas y flexibles.
Responder Con Cita
  #8  
Antiguo 14-12-2016
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 2.888
Poder: 13
newtron Va camino a la fama
Hola de nuevo.

Si algún amable forero le echara un vistazo a este documento distribuido por la Agencia Tributaria y me dijera si hay todo lo necesario para poner en marcha el tema se lo agradecería.

Saludos
__________________
Be water my friend.
Responder Con Cita
  #9  
Antiguo 14-12-2016
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 2.888
Poder: 13
newtron Va camino a la fama
Cita:
Empezado por Nasca Ver Mensaje
No hay funciones ni propiedades de utilidad real. Esto te permite obviar en Delphi el WSDL y SOAP. Se puede utilizar el wsdl solo como referencia.

La parte mas interesante del proceso es autentificar con certificado de usuario aceptado por la Agencia Tributaria y el no depender de SOAP te permite opciones mas directas y flexibles.
Gracias Nasca pero no me entero. ¿Algún ejemplo disponible para ver cómo va este asunto?

Gracias
__________________
Be water my friend.
Responder Con Cita
  #10  
Antiguo 14-12-2016
Nasca Nasca is offline
Miembro
 
Registrado: abr 2007
Ubicación: Almería (España)
Posts: 237
Poder: 11
Nasca Va por buen camino
Cita:
Empezado por newtron Ver Mensaje
Hola de nuevo.

Si algún amable forero le echara un vistazo a este documento distribuido por la Agencia Tributaria y me dijera si hay todo lo necesario para poner en marcha el tema se lo agradecería.
Usa ese documento para hacerte una idea general del procedimiento pero para implementar mejor olvídate de él y tira de la documentación técnica que hay referida en el wsdl:

https://www2.agenciatributaria.gob.e...diatoInfo.wsdl
https://www2.agenciatributaria.gob.e...nformacion.xsd
https://www2.agenciatributaria.gob.e...ministroLR.xsd
https://www2.agenciatributaria.gob.e...ConsultaLR.xsd
https://www2.agenciatributaria.gob.e...ConsultaLR.xsd
https://www2.agenciatributaria.gob.e...Suministro.xsd


Al final es la última palabra al respecto. Está en pleno desarrollo y cambiando constantemente. Los documentos explicativos como el que indicas se quedarán desactualizados pronto.
Establecer un sistema que te permita descargar las últimas versiones y ver si se han producido cambios viene muy bien.

Última edición por Nasca fecha: 14-12-2016 a las 11:47:57.
Responder Con Cita
  #11  
Antiguo 15-12-2016
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 2.888
Poder: 13
newtron Va camino a la fama
Ok.

Me he creado un proyecto nuevo, he picado en File-Other-WSDL Importer, introduzco la dirección "https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInmediatoInfo.wsdl" y me crea una unidad nueva llamada "SuministroInmediatoInfo". Hasta aquí todo sin problemas.

Por otro lado he insertado un componente HTTPRIO1 y lo he configurado con la dirección que he puesto anteriormente, el puerto y el servicio.

Ahora toca enviar datos de una factura (por ejemplo) y recibir el resultado (si es ok la comunicación o no). Imagino que será con la función "SuministroLRFacturasEmitidas" pero no sé qué parámetros pasarle.

¿Alguien me orienta?

Saludos
__________________
Be water my friend.
Responder Con Cita
  #12  
Antiguo 15-12-2016
Nasca Nasca is offline
Miembro
 
Registrado: abr 2007
Ubicación: Almería (España)
Posts: 237
Poder: 11
Nasca Va por buen camino
Antes de poder enviar peticiones, revisa esquemas xsd o baja SOAPUI o plugins SOAP para un navegador para ello, tendrás que resolver el tema de la comunicación.

Las comunicaciones son SSL, por https, y además autentificadas con certificado digital de FNMT o similar.
Responder Con Cita
  #13  
Antiguo 15-12-2016
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 2.888
Poder: 13
newtron Va camino a la fama
Creo que si me lo hubieras dicho en chino mandarín me hubiera enterado de algo.
__________________
Be water my friend.
Responder Con Cita
  #14  
Antiguo 15-12-2016
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.375
Poder: 16
fjcg02 Va camino a la fama
Tienes que analizar las funciones que te proporciona la unidad que te ha creado.
Con esas funciones, tendrás que saber qué parámetros necesitas y de qué tipo son. Con ellas deberás de ser capaz de conectarte, hacer login, hacer peticiones de información, hacer subidas de información, ... y además saber qué códigos devuelve cada una de ellas para saber si han ido bien o mal.

En los casos en que los he utilizado, siempre revisando la documentación, hago lo siguiente:
url de conexión, la que te diga la documentación.
certificado o nombre de usuario, o lo que sea.
crear la variable que devuelve los datos. Si es un string, posteriormente hay que pasarla a xml o lo que necesites en tu caso.

El proceso suele ser así:
datos de conexión. La url que te digan. No es la ".wsdl", será algo así
https://www.agencia.factura:8080/services/facturae
Login, a través de la función/funciones de la unidad que has creado.
Si va bien, hacer petición. El resultado suele quedar en una variable. tendrás funciones en la unidad que has creado.
procesar variable. Este tema ya es tuyo, lo que quieras hacer.
desconexión. a través de las funciones de la nueva unidad.

Yo creo que no tienes que utilizar ningún componente HTTPRIO1.

Si puedes publicar la unidad que te ha creado, te podemos dar pistas de por dónde pegan los tiros. Pero como ya he comentado, hay que tirar de documentación.

Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #15  
Antiguo 15-12-2016
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 2.888
Poder: 13
newtron Va camino a la fama
Ok, imagino que esto será de dominio público.

La unidad tiene así como 6600 líneas y no puedo pegarla aquí, la adjunto aquí.

Gracias y un saludo
__________________
Be water my friend.
Responder Con Cita
  #16  
Antiguo 15-12-2016
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 61
Poder: 5
bucanero Va por buen camino
Hola foro,

Voy a intentar aportar algo al respecto, no uso ese WS de la AEAT por lo que no se exactamente los parámetros que hay que rellenar, pero si he importado WS de otros portales con un funcionamiento parecido.

Tras importar el WS del link de la AEAT y generar la correspondiente unit, el funcionamiento debería de ser algo así:

Código Delphi [-]
var
  ASuministroLRFacturasEmitidas:SuministroLRFacturasEmitidas;
  ARegistroLRFacturasEmitidas:Array_Of_LRfacturasEmitidasType;
begin
  try
    //se crea un array con el numero de facturas que se van a emitir
    //en este ejemplo solo 1, pero pueden ser mas
    SetLength(ARegistroLRFacturasEmitidas, 1);

    //se introducen los datos de cada una de las facturas
    ARegistroLRFacturasEmitidas[0].IDFactura:='tu  numero de factura';

    // ... rellenar aqui el resto de datos necesarios
    ARegistroLRFacturasEmitidas[0].FacturaExpedida.  := ... ;
    ARegistroLRFacturasEmitidas[0].PeriodoImpositivo. := ... ; 
    



    //se crea el objeto que se va a enviar
    ASuministroLRFacturasEmitidas := SuministroLRFacturasEmitidas.Create;
    ASuministroLRFacturasEmitidas.Cabecera.Titular.NombreRazon:='tu nombre';
    ASuministroLRFacturasEmitidas.Cabecera.Titular.NIF:='tu nif';

    //Un valor de la lista TipoComuniacion. Ver en la documentacion
    ASuministroLRFacturasEmitidas.Cabecera.TipoComunicacion:='A4';

    //se añade el array de facturas creado anteriormente
    ASuministroLRFacturasEmitidas.RegistroLRFacturasEmitidas:=ARegistroLRFacturasEmitidas;

    try
      // se hace la llamada a la funcion suministrada por el WS
      GetsiiSOAP.SuministroLRFacturasEmitidas(ASuministroLRFacturasEmitidas);
    except
      On E:Exception do
        //El proceso de envio dio error
        MessageDlg(E.Message, mtError, [mbOK], 0);
    end;
  finally
    // se eliminan los objetos creados
    ASuministroLRFacturasEmitidas.Free;
    setLength(ARegistroLRFacturasEmitidas, 0);
  end;
end;

Espero que esto pueda aportar algo de luz al tema

Un Saludo
Responder Con Cita
  #17  
Antiguo 16-12-2016
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 2.888
Poder: 13
newtron Va camino a la fama
Gracias bucanero.

Haré pruebas con ese código a ver qué pasa.

Saludos
__________________
Be water my friend.
Responder Con Cita
  #18  
Antiguo 19-12-2016
RUBEN_SP RUBEN_SP is offline
Registrado
 
Registrado: mar 2008
Posts: 3
Poder: 0
RUBEN_SP Va por buen camino
Hola Newtron. Tengo el mismo problema que tu.

Probaste el código de Bucanero? Que Tal?

Saludos
Responder Con Cita
  #19  
Antiguo 19-12-2016
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 2.888
Poder: 13
newtron Va camino a la fama
Hola.

Estoy haciendo pruebas y creo que los tiros no van exactamente por ahí, lo que hay que enviar son ficheros XML (creo). De una forma o de otra, cuando intento ejecutar el código que amablemente nos ha puesto el colega bucanero no me compila, en la primera línea:

Código Delphi [-]
    //se introducen los datos de cada una de las facturas
    ARegistroLRFacturasEmitidas[0].IDFactura:='tu  numero de factura';

me da el error: E2010 Incompatible types: 'IDFacturaExpedidaType' and 'string'

... sigo probando.
__________________
Be water my friend.
Responder Con Cita
  #20  
Antiguo 19-12-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 27.663
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Puede ser un identificador de la factura, no el número en sí, y que luego habrá otro campo para el número?
Código:
ARegistroLRFacturasEmitidas[0].IDFactura:=1;
ARegistroLRFacturasEmitidas[0].¿NumFactura?:='A123';
Solo es una suposición.
Responder Con Cita
Respuesta


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
Error en Webservice funcion envio de sms webmasterplc Delphi para la web 5 25-07-2013 21:10:29
Problemas con envío de XML a un WebService davidvamo Internet 1 13-02-2007 16:49:20
Aplicacion Agencia De Viajes ArdiIIa Varios 9 20-01-2007 17:49:53
Nuevo en WebService CARSOFT_AR Internet 0 27-06-2006 21:00:56
Yahoo lanzará nuevo servicio que facilita envío fotos en la web marcoszorrilla Noticias 0 26-05-2005 16:37:47


La franja horaria es GMT +2. Ahora son las 05:39:38.


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