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-2023
manelb manelb is offline
Miembro
 
Registrado: mar 2017
Posts: 281
Poder: 8
manelb Va por buen camino
Cita:
Empezado por nincillo Ver Mensaje
+ Delphi 11, importar me los permite importar, pero luego, al compilar me da error en dos líneas en las que me dice que los literales de tipo string no pueden medir más de 255 caracteres y de ahí no paso.
En unes pruebas que hice hace un tiempo, recuerdo que me daba ese error de compilación.

Lo que hice en ese momento para continuar con las pruebas fue descomponer la línea en varias cadenas y funcionó. Pude compilar y continuar con mis pruebas.

Código Delphi [-]
'cadena de mas de …….  255 caracteres';
se convirtió en
Código Delphi [-]
'cadena de mas de …'+'….  255 caracteres';

Si nadie ofrece una solución más elegante, a mí me funcionó.

Saludos
Responder Con Cita
  #2  
Antiguo 15-12-2023
nincillo nincillo is offline
Miembro
 
Registrado: may 2017
Posts: 151
Poder: 8
nincillo Va por buen camino
Cita:
Empezado por manelb Ver Mensaje
En unes pruebas que hice hace un tiempo, recuerdo que me daba ese error de compilación.

Lo que hice en ese momento para continuar con las pruebas fue descomponer la línea en varias cadenas y funcionó. Pude compilar y continuar con mis pruebas.

Código Delphi [-]
'cadena de mas de …….  255 caracteres';
se convirtió en
Código Delphi [-]
'cadena de mas de …'+'….  255 caracteres';

Si nadie ofrece una solución más elegante, a mí me funcionó.

Saludos
Lo probaré... Gracias.
Pero de momento, pocas pruebas de envío se pueden hacer porque no tienen definida la url. ¿Verdad?.
Responder Con Cita
  #3  
Antiguo 16-12-2023
nincillo nincillo is offline
Miembro
 
Registrado: may 2017
Posts: 151
Poder: 8
nincillo Va por buen camino
Cita:
Empezado por nincillo Ver Mensaje
Lo probaré... Gracias.
Pero de momento, pocas pruebas de envío se pueden hacer porque no tienen definida la url. ¿Verdad?.

Me funcionó el "truco" que me sugeriste. Muchas gracias de nuevo.
Ahora he atascado en otro punto.
A ver si alguien me puede ayudar.
Estoy empezando a rellenar los diferentes apartados de la factura antes de enviarla y he atascado al llegar al punto "Desglose", que se supone que es un Array of Detail.

Este es el código que llevo desarrollado hasta ahora.

Código:
procedure TForm2.BtnEnvioFacturaClick(Sender: TObject);
var
  regFactura : FacturasEmitidasType;
  result : Array_Of_RespuestaExpedidaType;
  arrayFacturas : Array_Of_FacturasEmitidasType;
  arrayDetalles : array of DetalleType;
  detalle : DetalleType;
begin

  regFactura := FacturasEmitidasType.Create;
  regFactura.DatosControl := DatosControlType.Create;

  regFactura.RegistroFacturacion := RegistroFacturacionType.Create;

    regFactura.RegistroFacturacion.PeriodoLiquidacion := PeriodoLiquidacion.Create;
      regFactura.RegistroFacturacion.PeriodoLiquidacion.Ejercicio := '23';
      regFactura.RegistroFacturacion.PeriodoLiquidacion.Periodo := TipoPeriodoType(1); // Empieza a contar desde 0

    regFactura.RegistroFacturacion.IDFactura := IDFacturaExpedidaType.Create;
      regFactura.RegistroFacturacion.IDFactura.NumSerieFacturaEmisor := '23/123456';
      regFactura.RegistroFacturacion.IDFactura.FechaExpedicionFacturaEmisor := '31/12/23';
      regFactura.RegistroFacturacion.IDFactura.IDEmisorFactura := IDEmisorFactura2.Create;
        regFactura.RegistroFacturacion.IDFactura.IDEmisorFactura.NIF := '3333333';

    regFactura.RegistroFacturacion.DescripcionOperacion := 'vneta de mercaderías';

      regFactura.RegistroFacturacion.Desglose := DesgloseType.Create();

        detalle:= DetalleType.Create;
          detalle.CuotaRepercutida := '100';
          detalle.TipoImpositivo := '21';

        SetLength(arrayDetalles, 1);
        arrayDetalles[0] := detalle;

        regFactura.RegistroFacturacion.Desglose[0] := detalle;

  try
    SetLength(arrayFacturas, 1);
    arrayFacturas[0] := regFactura;
    result := GetsfSOAP(true, '', HTTPRIO1).AltaFactuSistemaFacturacion(arrayFacturas);
  finally
    regFactura.Destroy;
  end;


end;
Responder Con Cita
  #4  
Antiguo 18-12-2023
javipes javipes is offline
Miembro
 
Registrado: jul 2007
Posts: 14
Poder: 0
javipes Va por buen camino
y si pruebas con
Código:
setlength(regfactura.RegistroFacturacion.desglose,1);

antes de hacer
Código:
regFactura.RegistroFacturacion.Desglose[0] := DesgloseType.Create();
Responder Con Cita
  #5  
Antiguo 18-12-2023
nincillo nincillo is offline
Miembro
 
Registrado: may 2017
Posts: 151
Poder: 8
nincillo Va por buen camino
Cita:
Empezado por javipes Ver Mensaje
y si pruebas con
Código:
setlength(regfactura.RegistroFacturacion.desglose,1);

antes de hacer
Código:
regFactura.RegistroFacturacion.Desglose[0] := DesgloseType.Create();
No había visto este mensaje antes de enviar el como lo solucioné.

De todas formas voy a probarlo.

Muchas gracias.
Responder Con Cita
  #6  
Antiguo 18-12-2023
nincillo nincillo is offline
Miembro
 
Registrado: may 2017
Posts: 151
Poder: 8
nincillo Va por buen camino
Cita:
Empezado por nincillo Ver Mensaje
Me funcionó el "truco" que me sugeriste. Muchas gracias de nuevo.
Ahora he atascado en otro punto.
A ver si alguien me puede ayudar.
Estoy empezando a rellenar los diferentes apartados de la factura antes de enviarla y he atascado al llegar al punto "Desglose", que se supone que es un Array of Detail.

Este es el código que llevo desarrollado hasta ahora.

Código:
procedure TForm2.BtnEnvioFacturaClick(Sender: TObject);
var
  regFactura : FacturasEmitidasType;
  result : Array_Of_RespuestaExpedidaType;
  arrayFacturas : Array_Of_FacturasEmitidasType;
  arrayDetalles : array of DetalleType;
  detalle : DetalleType;
begin

  regFactura := FacturasEmitidasType.Create;
  regFactura.DatosControl := DatosControlType.Create;

  regFactura.RegistroFacturacion := RegistroFacturacionType.Create;

    regFactura.RegistroFacturacion.PeriodoLiquidacion := PeriodoLiquidacion.Create;
      regFactura.RegistroFacturacion.PeriodoLiquidacion.Ejercicio := '23';
      regFactura.RegistroFacturacion.PeriodoLiquidacion.Periodo := TipoPeriodoType(1); // Empieza a contar desde 0

    regFactura.RegistroFacturacion.IDFactura := IDFacturaExpedidaType.Create;
      regFactura.RegistroFacturacion.IDFactura.NumSerieFacturaEmisor := '23/123456';
      regFactura.RegistroFacturacion.IDFactura.FechaExpedicionFacturaEmisor := '31/12/23';
      regFactura.RegistroFacturacion.IDFactura.IDEmisorFactura := IDEmisorFactura2.Create;
        regFactura.RegistroFacturacion.IDFactura.IDEmisorFactura.NIF := '3333333';

    regFactura.RegistroFacturacion.DescripcionOperacion := 'vneta de mercaderías';

      regFactura.RegistroFacturacion.Desglose := DesgloseType.Create();

        detalle:= DetalleType.Create;
          detalle.CuotaRepercutida := '100';
          detalle.TipoImpositivo := '21';

        SetLength(arrayDetalles, 1);
        arrayDetalles[0] := detalle;

        regFactura.RegistroFacturacion.Desglose[0] := detalle;

  try
    SetLength(arrayFacturas, 1);
    arrayFacturas[0] := regFactura;
    result := GetsfSOAP(true, '', HTTPRIO1).AltaFactuSistemaFacturacion(arrayFacturas);
  finally
    regFactura.Destroy;
  end;


end;
Me respondo a mi mismo por si le puede servir a alguién:

Código:
          // <- Rellenos los datos de las diferentes bases DetalleType
            detalle1:= DetalleType.Create;
              detalle1.ClaveRegimen := IdOperacionesTrascendenciaTributariaType._01;                                
              detalle1.CalificacionOperacion := CalificacionOperacionType.S1;                                       
              detalle1.OperacionExenta := OperacionExentaType.E0;                                                      
              detalle1.TipoImpositivo := '21';
              detalle1.BaseImponibleOimporteNoSujeto := '123';
              detalle1.BaseImponibleACoste := '111';                                                                  
              detalle1.CuotaRepercutida := '100';
              detalle1.TipoRecargoEquivalencia := '0';
              detalle1.CuotaRecargoEquivalencia := '0';


            detalle2:= DetalleType.Create;
              detalle2.CuotaRepercutida := '200';
              detalle2.TipoImpositivo := '10';

            // Los añado todos en un array
            SetLength(arrayDetalles, 2);
              arrayDetalles[0] := detalle1;
              arrayDetalles[1] := detalle2;

            // Cargo el array con todas las posibles bases en el apartado Desglose
            regFactura.RegistroFacturacion.Desglose := arrayDetalles; // := deta .Create;


Por favor, ¿alguien que tenga Delphi 2007 podría intentar cargar a día de hoy los WSDL haber si puede o si le da error de "Document Empty"?.

Yo recuerdo haberlos importado hace unos meses sin problema, pero algo han modificado desde entonces que ahora no soy capaz.

Gracias.
Responder Con Cita
  #7  
Antiguo 18-12-2023
nincillo nincillo is offline
Miembro
 
Registrado: may 2017
Posts: 151
Poder: 8
nincillo Va por buen camino
Cita:
Empezado por nincillo Ver Mensaje
Me respondo a mi mismo por si le puede servir a alguién:

Código:
          // <- Rellenos los datos de las diferentes bases DetalleType
            detalle1:= DetalleType.Create;
              detalle1.ClaveRegimen := IdOperacionesTrascendenciaTributariaType._01;                                
              detalle1.CalificacionOperacion := CalificacionOperacionType.S1;                                       
              detalle1.OperacionExenta := OperacionExentaType.E0;                                                      
              detalle1.TipoImpositivo := '21';
              detalle1.BaseImponibleOimporteNoSujeto := '123';
              detalle1.BaseImponibleACoste := '111';                                                                  
              detalle1.CuotaRepercutida := '100';
              detalle1.TipoRecargoEquivalencia := '0';
              detalle1.CuotaRecargoEquivalencia := '0';


            detalle2:= DetalleType.Create;
              detalle2.CuotaRepercutida := '200';
              detalle2.TipoImpositivo := '10';

            // Los añado todos en un array
            SetLength(arrayDetalles, 2);
              arrayDetalles[0] := detalle1;
              arrayDetalles[1] := detalle2;

            // Cargo el array con todas las posibles bases en el apartado Desglose
            regFactura.RegistroFacturacion.Desglose := arrayDetalles; // := deta .Create;


Por favor, ¿alguien que tenga Delphi 2007 podría intentar cargar a día de hoy los WSDL haber si puede o si le da error de "Document Empty"?.

Yo recuerdo haberlos importado hace unos meses sin problema, pero algo han modificado desde entonces que ahora no soy capaz.

Gracias.
Ahora he conseguido ver algo más tras descargarme el wsdl previamente a un fichero local.

Ahora no me da error, pero no me lo importa "completo". Al ver el código fuente generado, veo lo siguiente a ver si puede servir de ayuda:
Código:
  // ************************************************************************ //
  // Namespace : https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SistemaFacturacion.wsdl
  // transport : http://schemas.xmlsoap.org/soap/http
  // style     : document
  // binding   : sfBinding
  // service   : siiService
  // port      : SistemaFacturacion
  // URL       : URL Pendiente de definir
  // ************************************************************************ //
  sfSOAP = interface(IInvokable)
  ['{B0562959-AF9B-3247-F911-0C4058390FB8}']

    // Cannot unwrap:
    //     - Input part does not refer to an element
    //     - Output part does not refer to an element
    function  AltaFactuSistemaFacturacion(const AltaFactuSistemaFacturacion: AltaFactuSistemaFacturacion): RespuestaAltaFactuSistemaFacturacion; stdcall;

    // Cannot unwrap:
    //     - Input part does not refer to an element
    //     - Output part does not refer to an element
    function  BajaFactuSistemaFacturacion(const BajaFactuSistemaFacturacion: BajaFactuSistemaFacturacion): RespuestaBajaFactuSistemaFacturacion; stdcall;
  end;
Responder Con Cita
  #8  
Antiguo 18-12-2023
nincillo nincillo is offline
Miembro
 
Registrado: may 2017
Posts: 151
Poder: 8
nincillo Va por buen camino
Cita:
Empezado por nincillo Ver Mensaje
Ahora he conseguido ver algo más tras descargarme el wsdl previamente a un fichero local.

Ahora no me da error, pero no me lo importa "completo". Al ver el código fuente generado, veo lo siguiente a ver si puede servir de ayuda:
Código:
  // ************************************************************************ //
  // Namespace : https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SistemaFacturacion.wsdl
  // transport : http://schemas.xmlsoap.org/soap/http
  // style     : document
  // binding   : sfBinding
  // service   : siiService
  // port      : SistemaFacturacion
  // URL       : URL Pendiente de definir
  // ************************************************************************ //
  sfSOAP = interface(IInvokable)
  ['{B0562959-AF9B-3247-F911-0C4058390FB8}']

    // Cannot unwrap:
    //     - Input part does not refer to an element
    //     - Output part does not refer to an element
    function  AltaFactuSistemaFacturacion(const AltaFactuSistemaFacturacion: AltaFactuSistemaFacturacion): RespuestaAltaFactuSistemaFacturacion; stdcall;

    // Cannot unwrap:
    //     - Input part does not refer to an element
    //     - Output part does not refer to an element
    function  BajaFactuSistemaFacturacion(const BajaFactuSistemaFacturacion: BajaFactuSistemaFacturacion): RespuestaBajaFactuSistemaFacturacion; stdcall;
  end;

Hola, parece que el problema es debido a que las urls utilizadas son https y el Delphi 2007 no debe de aceptarlas.
Al final lo que he tenido que hacermes es una copia local tanto del wsdl como de los wsd y "retocarlas" para que trabajen localmente. Así parece que por fin he conseguido que me las reconozca también en el Delphi 2007.
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
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 00:07:39.


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