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 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
  #2  
Antiguo 19-12-2016
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
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
  #3  
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.044
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
  #4  
Antiguo 19-12-2016
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 Casimiro Notevi Ver Mensaje
¿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.
No, lo que dice es que al campo "ARegistroLRFacturasEmitidas[0].IDFactura" sólo se le puede asignar una variable de tipo IDFacturaExpedidaType, no un string ni un integer, etc.

Edito:

Estoy pensando e igual suelto una tontería.... ¿hay forma de asignarle un fichero XML con unas características determinadas a la variable ARegistroLRFacturasEmitidas?
__________________
Be water my friend.

Última edición por newtron fecha: 19-12-2016 a las 12:39:20.
Responder Con Cita
  #5  
Antiguo 19-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
Hola Newtron,
según la documentación que aportas, el "idFactura" del "RegistroLRFacturasEmitidas" debe ser :
IDEmisorFactura: (NIF) NIF asociado al emisor de la factura. FormatoNIF(9)
NumSerieFacturaEmisor: Número+Serie que identifica a la factura emitida. Alfanumérico(60)
NumSerieFacturaEmisorResumenFin: Número+serie que identifica a la ultima factura cuando el Tipo de Factura es un asiento resumen de facturas. Alfanumérico(60)
FechaExpedicionFacturaEmisor:Fecha de expedición de la factura. Fecha(dd-mm-yyyy)
( página 55 de la documentación)

Por lo que he leido, hay que montar un xml con los formatos que te ponen. Una vez lo tengas montado, haces la conexión y en la función de llamada lo metes como parámetro. Luedo te da la respuesta.

Según lo que he entendido, es como montar un cuaderno bancario de cobros y pagos ( el 19 suele ser el más habitual ), pero en vez de usar un fichero de texto, utilizar el xml con el formato que te ponen en la documentación.

El arte es ir montando el código para que coja tus datos de la aplicación, monte el xml, y haga la conexión a la agencia.

Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
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.471
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por fjcg02 Ver Mensaje
Hola Newtron,
según la documentación que aportas, el "idFactura" del "RegistroLRFacturasEmitidas" debe ser :
IDEmisorFactura: (NIF) NIF asociado al emisor de la factura. FormatoNIF(9)
NumSerieFacturaEmisor: Número+Serie que identifica a la factura emitida. Alfanumérico(60)
NumSerieFacturaEmisorResumenFin: Número+serie que identifica a la ultima factura cuando el Tipo de Factura es un asiento resumen de facturas. Alfanumérico(60)
FechaExpedicionFacturaEmisor:Fecha de expedición de la factura. Fecha(dd-mm-yyyy)
( página 55 de la documentación)

Por lo que he leido, hay que montar un xml con los formatos que te ponen. Una vez lo tengas montado, haces la conexión y en la función de llamada lo metes como parámetro. Luedo te da la respuesta.

Según lo que he entendido, es como montar un cuaderno bancario de cobros y pagos ( el 19 suele ser el más habitual ), pero en vez de usar un fichero de texto, utilizar el xml con el formato que te ponen en la documentación.

El arte es ir montando el código para que coja tus datos de la aplicación, monte el xml, y haga la conexión a la agencia.

Saludos
Gracias, ¿y un pequeño ejemplo de cómo se hace la conexión y la función de llamada sería posible?

Saludos
__________________
Be water my friend.
Responder Con Cita
  #7  
Antiguo 20-06-2017
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 112
Poder: 8
seccion_31 Va por buen camino
una cuestión

ya he incorporado la versión 1.0 y hemos empezado a enviar facturas al sistema de producción.

entiendo que esta Ok, porque las veo en la www1. y no en la www7. Cada uno tiene un grupo de facturas diferentes.

Ahora bien:

¿Cómo puedo programar el envio para usar el sistema de pruebas y/ o producción ? porque no veo claramente cual es cual. ¿Qué tengo que cambiar?

¿alguien lo sabe?

Saludos !
Responder Con Cita
  #8  
Antiguo 20-06-2017
inyu inyu is offline
Miembro
NULL
 
Registrado: mar 2017
Posts: 48
Poder: 0
inyu Va por buen camino
Cita:
Empezado por seccion_31 Ver Mensaje
una cuestión

ya he incorporado la versión 1.0 y hemos empezado a enviar facturas al sistema de producción.

entiendo que esta Ok, porque las veo en la www1. y no en la www7. Cada uno tiene un grupo de facturas diferentes.

Ahora bien:

¿Cómo puedo programar el envio para usar el sistema de pruebas y/ o producción ? porque no veo claramente cual es cual. ¿Qué tengo que cambiar?

¿alguien lo sabe?

Saludos !
Yo he optado por crear 2 proyectos distintos, no tiene sentido complicar 1 proyecto para compatibilizarlo con los 2 sistemas si en 10 días el de pruebas dejará de ser válido.
Responder Con Cita
  #9  
Antiguo 20-06-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 inyu Ver Mensaje
Yo he optado por crear 2 proyectos distintos, no tiene sentido complicar 1 proyecto para compatibilizarlo con los 2 sistemas si en 10 días el de pruebas dejará de ser válido.
Negativo, el sistema de pruebas seguirá activo en adelante.
__________________
Be water my friend.
Responder Con Cita
  #10  
Antiguo 20-06-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 seccion_31 Ver Mensaje
una cuestión

ya he incorporado la versión 1.0 y hemos empezado a enviar facturas al sistema de producción.

entiendo que esta Ok, porque las veo en la www1. y no en la www7. Cada uno tiene un grupo de facturas diferentes.

Ahora bien:

¿Cómo puedo programar el envio para usar el sistema de pruebas y/ o producción ? porque no veo claramente cual es cual. ¿Qué tengo que cambiar?

¿alguien lo sabe?

Saludos !
Lo que cambia es la URL dependiendo si es pruebas o producción:

Pruebas:
WebExpedidas:='https://www7.aeat.es/wlpl/SSII-FACT/SvFExpedidasQuery';
WebRecibidas:='https://www7.aeat.es/wlpl/SSII-FACT/SvFRecibidasQuery';
Producción:
WebExpedidas:='https://www1.aeat.es/wlpl/SSII-FACT/SvFExpedidasQuery';
WebRecibidas:='https://www1.aeat.es/wlpl/SSII-FACT/SvFRecibidasQuery';

Saludos
__________________
Be water my friend.
Responder Con Cita
  #11  
Antiguo 20-06-2017
AlSan AlSan is offline
Miembro
NULL
 
Registrado: may 2017
Posts: 20
Poder: 0
AlSan Va por buen camino
Cita:
Empezado por seccion_31 Ver Mensaje
una cuestión

ya he incorporado la versión 1.0 y hemos empezado a enviar facturas al sistema de producción.

entiendo que esta Ok, porque las veo en la www1. y no en la www7. Cada uno tiene un grupo de facturas diferentes.

Ahora bien:

¿Cómo puedo programar el envio para usar el sistema de pruebas y/ o producción ? porque no veo claramente cual es cual. ¿Qué tengo que cambiar?

¿alguien lo sabe?

Saludos !

Yo he tenido que hacer muy poquitos cambios para pasar a producción, a lo mejor porque soy del grupo que nos lo hemos montado en plan "fácil", es decir:
  • XML construidos "a pelo"
  • Transmisión mediante CURL
De esta manera sólo he tenido que cambiar la URL que le paso a CURL:
Código:
De URL_PRUEBAS = "https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP"
a URL_PRODUCCION = "https://www1.agenciatributaria.gob.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP"
y cambiar la versión de SII de "0.7" a "1.0".
Y funcionando!
Responder Con Cita
  #12  
Antiguo 21-06-2017
pilarinweb pilarinweb is offline
Registrado
NULL
 
Registrado: jun 2017
Posts: 5
Poder: 0
pilarinweb Va por buen camino
Cita:
Empezado por AlSan Ver Mensaje
Yo he tenido que hacer muy poquitos cambios para pasar a producción, a lo mejor porque soy del grupo que nos lo hemos montado en plan "fácil", es decir:
  • XML construidos "a pelo"
  • Transmisión mediante CURL
De esta manera sólo he tenido que cambiar la URL que le paso a CURL:
Código:
De URL_PRUEBAS = "https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP"
a URL_PRODUCCION = "https://www1.agenciatributaria.gob.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP"
y cambiar la versión de SII de "0.7" a "1.0".
Y funcionando!
Hola,
a ver si podeis ayudarme...yo tambien genero los xml dinamicamente, pero me da error al hacer esto
oXmlSerializer.Deserialize(fStream)

alguna idea???
Responder Con Cita
  #13  
Antiguo 24-07-2017
javi_valencia44 javi_valencia44 is offline
Miembro
 
Registrado: mar 2017
Posts: 50
Poder: 8
javi_valencia44 Va por buen camino
Podéis enviar a los ws de pruebas?
Responder Con Cita
  #14  
Antiguo 24-07-2017
CMB CMB is offline
Miembro
 
Registrado: ene 2017
Posts: 349
Poder: 8
CMB Va por buen camino
Cita:
Empezado por javi_valencia44 Ver Mensaje
Podéis enviar a los ws de pruebas?
En este momento, las 09:44h, envío sin problemas, altas, cambios, bajas y consultas.

Saludos,
Responder Con Cita
  #15  
Antiguo 24-07-2017
CMB CMB is offline
Miembro
 
Registrado: ene 2017
Posts: 349
Poder: 8
CMB Va por buen camino
Envío de datos de pruebas a producción

¿Alguien sabe qué sucede si, por error, se envían a producción datos de prueba? El remitente sería alguien que no está incluido en el SII. ¿Admiten los datos sin más, o los rechazan por no autorizado?

Saludos,
Responder Con Cita
  #16  
Antiguo 24-07-2017
Homine Homine is offline
Miembro
NULL
 
Registrado: jun 2017
Posts: 26
Poder: 0
Homine Va por buen camino
Cita:
Empezado por javi_valencia44 Ver Mensaje
Podéis enviar a los ws de pruebas?
Son los mismo que producción pero cambiando la URL por el sitio www7.aeat.es
Responder Con Cita
  #17  
Antiguo 24-07-2017
javi_valencia44 javi_valencia44 is offline
Miembro
 
Registrado: mar 2017
Posts: 50
Poder: 8
javi_valencia44 Va por buen camino
Cita:
Empezado por Homine Ver Mensaje
Son los mismo que producción pero cambiando la URL por el sitio www7.aeat.es
Me da error de versión 0.7 no válida, hace días me iba sin problemas
Responder Con Cita
  #18  
Antiguo 19-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, aqui el codigo de llamada un poco mas desarrollado:

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
//    for i := Low(ARegistroLRFacturasEmitidas) to High(ARegistroLRFacturasEmitidas) do begin

    ARegistroLRFacturasEmitidas[0].IDFactura.IDEmisorFactura.NIF  :='123456789X';             // NIFType         =  type string;
    ARegistroLRFacturasEmitidas[0].IDFactura.NumSerieFacturaEmisor:='algo';                   // TextoIDFacturaType =  type string;
    ARegistroLRFacturasEmitidas[0].IDFactura.NumSerieFacturaEmisorResumenFin:='y algo mas';   // TextoIDFacturaType =  type string;
    ARegistroLRFacturasEmitidas[0].IDFactura.FechaExpedicionFacturaEmisor:='15/12/2016';      // fecha           =  type string;

    // ... rellenar aqui el resto de datos necesarios, no se exactamente a que se corresponden,
    // hay que mirar la documentacion correspondiente, algunos de estos datos pueden ser  tambien classes
    // con mas estructuras de datos
    (*
    ARegistroLRFacturasEmitidas[0].FacturaExpedida.DatosInmueble:=...;          //tipo DatosInmueble2
    ARegistroLRFacturasEmitidas[0].FacturaExpedida.ImporteTransmisionSujetoAIVA://tipo  ImporteSgn12_2Type
    ARegistroLRFacturasEmitidas[0].FacturaExpedida.EmitidaPorTerceros:          //tipo  EmitidaPorTercerosType
    ARegistroLRFacturasEmitidas[0].FacturaExpedida.Contraparte:                 //tipo  PersonaFisicaJuridicaType
    ARegistroLRFacturasEmitidas[0].FacturaExpedida.TipoDesglose:                //tipo  TipoDesglose2
    (**)

    ARegistroLRFacturasEmitidas[0].PeriodoImpositivo.Ejercicio:='2016';               //YearType:  type string;
    ARegistroLRFacturasEmitidas[0].PeriodoImpositivo.periodo  :=TipoPeriodoType(11);  //  TipoPeriodoType = ( _01, _02, _03, _04, _05, _06, _07, _08, _09, _10, _11, _12, _0A);

//    end;


    //se crea el objeto que se va a enviar
    ASuministroLRFacturasEmitidas := SuministroLRFacturasEmitidas.Create;
    ASuministroLRFacturasEmitidas.Cabecera.Titular.NombreRazon:='tu nombre'; //creo que esto puede ser el nombre del cliente
    ASuministroLRFacturasEmitidas.Cabecera.Titular.NIF:='tu nif';            // y esto el CIF del cliente

    //Un valor de la lista TipoComuniacion. Ver en la documentacion
    ASuministroLRFacturasEmitidas.Cabecera.TipoComunicacion:=ClaveTipoComunicacionType(1); // definida como   ClaveTipoComunicacionType = (A0, A1, 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;


Este código compila sin problemas, pero los parámetros hay que ver en la propia documentación a que corresponden y cuales son opcionales u obligatorios. Las partes de información de facturación desabilitadas pueden a su vez ser mas classes con mas propiedades.

Un Saludo
Responder Con Cita
  #19  
Antiguo 19-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
newtron,
no tengo código, simplemente me llamó la atención la pregunta y he leido los links que pusiste. No me dedico a ésto.

el chiste es montar los xml con los formatos que te dan ( en la propia documentación te muestran esquemáticamente cómo quedaría el árbol del xml, y luego hacer la llamada a la superfunción que hace todo.

Código Delphi [-]
SuministroLRFacturasEmitidas(const SuministroLRFacturasEmitidas: SuministroLRFacturasEmitidas): RespuestaLRFacturasEmitidas

todas las clases las tienes definidas en la unidad SuministroInmediatoInfo.pas

En este caso SuministroLRFacturasEmitidas para la llamada y RespuestaLRFacturasEmitidas para la respuesta.
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #20  
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.286
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 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 01:10:41.


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