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 15-12-2016
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
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
  #2  
Antiguo 15-12-2016
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.473
Poder: 21
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
  #3  
Antiguo 15-12-2016
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Poder: 11
bucanero Va camino a la fama
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
  #4  
Antiguo 16-12-2016
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.473
Poder: 21
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
  #5  
Antiguo 19-12-2016
RUBEN_SP RUBEN_SP is offline
Miembro
 
Registrado: mar 2008
Posts: 11
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
  #6  
Antiguo 19-12-2016
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.473
Poder: 21
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
  #7  
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: 32.052
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
  #8  
Antiguo 19-12-2016
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.289
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por newtron Ver Mensaje
me da el error: E2010 Incompatible types: 'IDFacturaExpedidaType' and 'string'
¿Puede ser porque el IDFactura no es un tipo simple?
Tal y como está en el documento que han adjuntado más arriba...

Código Delphi [-]
  LRfacturasEmitidasType = class(RegistroSii)
  private
    FIDFactura: IDFacturaExpedidaType;
    FFacturaExpedida: FacturaExpedidaType;
  public
    destructor Destroy; override;
  published
    property IDFactura:       IDFacturaExpedidaType  read FIDFactura write FIDFactura;
    property FacturaExpedida: FacturaExpedidaType    read FFacturaExpedida write FFacturaExpedida;
  end;

Y el tipo IDFacturaExpedidaType está definido tal que así:

Código Delphi [-]

  // ************************************************************************ //
  // XML       : IDFacturaExpedidaType, global, 
  // Namespace : https://www2.agenciatributaria.gob.e...nformacion.xsd
  // ************************************************************************ //
  IDFacturaExpedidaType = class(TRemotable)
  private
    FIDEmisorFactura: IDEmisorFactura3;
    FNumSerieFacturaEmisor: TextoIDFacturaType;
    FNumSerieFacturaEmisorResumenFin: TextoIDFacturaType;
    FNumSerieFacturaEmisorResumenFin_Specified: boolean;
    FFechaExpedicionFacturaEmisor: fecha;
    procedure SetNumSerieFacturaEmisorResumenFin(Index: Integer; const ATextoIDFacturaType: TextoIDFacturaType);
    function  NumSerieFacturaEmisorResumenFin_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property IDEmisorFactura:                 IDEmisorFactura3    read FIDEmisorFactura write FIDEmisorFactura;
    property NumSerieFacturaEmisor:           TextoIDFacturaType  read FNumSerieFacturaEmisor write FNumSerieFacturaEmisor;
    property NumSerieFacturaEmisorResumenFin: TextoIDFacturaType  Index (IS_OPTN) read FNumSerieFacturaEmisorResumenFin write SetNumSerieFacturaEmisorResumenFin stored NumSerieFacturaEmisorResumenFin_Specified;
    property FechaExpedicionFacturaEmisor:    fecha               read FFechaExpedicionFacturaEmisor write FFechaExpedicionFacturaEmisor;
  end;

Es un comentario.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
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 2 Semanas 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 11:18:30.


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