Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Proyecto SIF/Veri*Factu/Ley Antifraude > Envío de registros y sus respuestas
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 11-02-2025
_Io _Io is offline
Miembro
 
Registrado: ene 2024
Posts: 114
Poder: 3
_Io Va por buen camino
Thumbs up

Buenas Tardes.

La variables Specified, son privadas.

Código:
 RespuestaDatosRegistroFacturacionType = class(TRemotable)
  private

    ...

    FRefExterna_Specified: boolean;
    FSubsanacion_Specified: boolean;
    FRechazoPrevio_Specified: boolean;

   ....

Voy a hacer esta prueba a ver si funciona

Código:
 RespuestaDatosRegistroFacturacionType = class(TRemotable)
  private

    ...

    FRefExterna_Specified: boolean;
    FSubsanacion_Specified: boolean;
    FRechazoPrevio_Specified: boolean;

   ....

  public

    property Subsanacion_Especificada: boolean read  FSubsanacion_Specified;
    property RechazoPrevio_Especificada: boolean read  FRechazoPrevio_Specified;
En teoría podría acceder a sus valores sin tener que modificar la operativa de la clase
Saludos.
Responder Con Cita
  #2  
Antiguo 11-02-2025
_Io _Io is offline
Miembro
 
Registrado: ene 2024
Posts: 114
Poder: 3
_Io Va por buen camino
Hola.

Probado, y funciona.
Un poco rollo buscar las clases a modificar, pero ya está.

Salu2.
Responder Con Cita
  #3  
Antiguo 11-02-2025
rci rci is offline
Miembro
 
Registrado: nov 2020
Posts: 565
Poder: 6
rci Va por buen camino
Cita:
Empezado por _Io Ver Mensaje
Hola.

Probado, y funciona.
Un poco rollo buscar las clases a modificar, pero ya está.

Salu2.
Hola _Io, en mi caso no he modificado nada de las clases que genera la importación del WSDL y las propiedades Specified son publicas (en c#). Te paso una parte del fichero Reference.cs creado al importar el WSDL:

Código:
private bool macrodatoFieldSpecified;

....

public bool MacrodatoSpecified 
{
   get 
   {
          return this.macrodatoFieldSpecified;
   }
   set 
   {
          this.macrodatoFieldSpecified = value;
          this.RaisePropertyChanged("MacrodatoSpecified");
   }
}
Responder Con Cita
  #4  
Antiguo 11-02-2025
_Io _Io is offline
Miembro
 
Registrado: ene 2024
Posts: 114
Poder: 3
_Io Va por buen camino
Cita:
Empezado por rci Ver Mensaje
Hola _Io, en mi caso no he modificado nada de las clases que genera la importación del WSDL y las propiedades Specified son publicas (en c#). Te paso una parte del fichero Reference.cs creado al importar el WSDL:

Código:
private bool macrodatoFieldSpecified;

....

public bool MacrodatoSpecified 
{
   get 
   {
          return this.macrodatoFieldSpecified;
   }
   set 
   {
          this.macrodatoFieldSpecified = value;
          this.RaisePropertyChanged("MacrodatoSpecified");
   }
}

Hola.

Yo utilizo Delphi 12, y en la importación me crea estas propiedades como privadas, por eso lo de la chapucilla.

Sinceramente no sé si en las opciones de importación existe alguna opción para que saque estas propiedades como públicas.

También puede ser, que se pueda acceder a ellas y yo desconozca el cómo

Una Clase de la importación del WDSL:
Código:
  RespuestaBaseType = class(TRemotable)
  private
    FCSV: string;
    FCSV_Specified: boolean;
    FDatosPresentacion: DatosPresentacionType;
    FDatosPresentacion_Specified: boolean;
    FCabecera: CabeceraType;
    FTiempoEsperaEnvio: Tipo6Type;
    FEstadoEnvio: EstadoEnvioType;
    procedure SetCSV(Index: Integer; const Astring: string);
    function  CSV_Specified(Index: Integer): boolean;
    procedure SetDatosPresentacion(Index: Integer; const ADatosPresentacionType: DatosPresentacionType);
    function  DatosPresentacion_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property CSV:               string                 Index (IS_OPTN) read FCSV write SetCSV stored CSV_Specified;
    property DatosPresentacion: DatosPresentacionType  Index (IS_OPTN) read FDatosPresentacion write SetDatosPresentacion stored DatosPresentacion_Specified;
    property Cabecera:          CabeceraType           read FCabecera write FCabecera;
    property TiempoEsperaEnvio: Tipo6Type              read FTiempoEsperaEnvio write FTiempoEsperaEnvio;
    property EstadoEnvio:       EstadoEnvioType        read FEstadoEnvio write FEstadoEnvio;
  end;

Aquí pongo la modificación:

Código:
  RespuestaBaseType = class(TRemotable)
  private
    FCSV: string;
    FCSV_Specified: boolean;
    FDatosPresentacion: DatosPresentacionType;
    FDatosPresentacion_Specified: boolean;
    FCabecera: CabeceraType;
    FTiempoEsperaEnvio: Tipo6Type;
    FEstadoEnvio: EstadoEnvioType;
    procedure SetCSV(Index: Integer; const Astring: string);
    function  CSV_Specified(Index: Integer): boolean;
    procedure SetDatosPresentacion(Index: Integer; const ADatosPresentacionType: DatosPresentacionType);
    function  DatosPresentacion_Specified(Index: Integer): boolean;
  public
    property CSV_Especificada: boolean read FCSV_Specified;
    property DatosPresentacion_Especificada: boolean read FDatosPresentacion_Specified;
  public
    destructor Destroy; override;
  published
    property CSV:               string                 Index (IS_OPTN) read FCSV write SetCSV stored CSV_Specified;
    property DatosPresentacion: DatosPresentacionType  Index (IS_OPTN) read FDatosPresentacion write SetDatosPresentacion stored DatosPresentacion_Specified;
    property Cabecera:          CabeceraType           read FCabecera write FCabecera;
    property TiempoEsperaEnvio: Tipo6Type              read FTiempoEsperaEnvio write FTiempoEsperaEnvio;
    property EstadoEnvio:       EstadoEnvioType        read FEstadoEnvio write FEstadoEnvio;
  end;

Saludos !!!
Responder Con Cita
  #5  
Antiguo 11-02-2025
Avatar de bmfranky
bmfranky bmfranky is offline
Miembro
 
Registrado: may 2024
Ubicación: Gandia, Valencia
Posts: 863
Poder: 3
bmfranky Va por buen camino
Cita:
Empezado por rci Ver Mensaje
Hola _Io, en mi caso no he modificado nada de las clases que genera la importación del WSDL y las propiedades Specified son publicas (en c#). Te paso una parte del fichero Reference.cs creado al importar el WSDL:

Código:


private bool macrodatoFieldSpecified;

....

public bool MacrodatoSpecified 
{
   get 
   {
          return this.macrodatoFieldSpecified;
   }
   set 
   {
          this.macrodatoFieldSpecified = value;
          this.RaisePropertyChanged("MacrodatoSpecified");
   }
}
Hola, yo cambio el timestamp a string porque al pasear introducía milisegundos, y daba error al enviar, a ti no te pasa?
__________________
Uno se alegra de ser útil. (Isaac Asimov)
Responder Con Cita
  #6  
Antiguo 12-02-2025
rci rci is offline
Miembro
 
Registrado: nov 2020
Posts: 565
Poder: 6
rci Va por buen camino
Cita:
Empezado por bmfranky Ver Mensaje
Hola, yo cambio el timestamp a string porque al pasear introducía milisegundos, y daba error al enviar, a ti no te pasa?
Hola bmfranky, no modifico nada de las clases creadas al importar el wsdl porque sinó lo tendría que hacer cada vez que lo importo

No se exactamente a que propiedades te refieres con esto de los milisegundos, pero supongo que no me ocurre el error porque al rellenar todas las propiedades de fecha ya les doy el formato esperado.

Saludos
Responder Con Cita
  #7  
Antiguo 12-02-2025
Avatar de bmfranky
bmfranky bmfranky is offline
Miembro
 
Registrado: may 2024
Ubicación: Gandia, Valencia
Posts: 863
Poder: 3
bmfranky Va por buen camino
Cita:
Empezado por rci Ver Mensaje
Hola bmfranky, no modifico nada de las clases creadas al importar el wsdl porque sinó lo tendría que hacer cada vez que lo importo

No se exactamente a que propiedades te refieres con esto de los milisegundos, pero supongo que no me ocurre el error porque al rellenar todas las propiedades de fecha ya les doy el formato esperado.

Saludos

Hola, buenos dias el parametro FechaHoraUsoGenREgistro es un System.DateTime , si lo paso directamente, me genera el xml, asi:
Código:
 <FechaHoraHusoGenRegistro >2024-10-01T15:05:26.908824+02:00</FechaHoraHusoGenRegistro>

Al enviar daba error de la fecha no correcta.


Código:
<EstadoRegistro>AceptadoConErrores</EstadoRegistro>
<CodigoErrorRegistro>2004</CodigoErrorRegistro>
<DescripcionErrorRegistro>El valor del campo FechaHoraHusoGenRegistro debe ser la fecha actual del sistema de la AEAT, admitiéndose un margen de error de: 120 segundos.</DescripcionErrorRegistro>

Como no hay forma de evitarlo por codigo,. lo cambie a string.


Por lo menos en c# VisualStudio 2015, que es la version que yo uso, pero ya te comente que la 2022, es diferente, en muchas cosas.
__________________
Uno se alegra de ser útil. (Isaac Asimov)
Responder Con Cita
  #8  
Antiguo 12-02-2025
rci rci is offline
Miembro
 
Registrado: nov 2020
Posts: 565
Poder: 6
rci Va por buen camino
Cita:
Empezado por bmfranky Ver Mensaje
Hola, buenos dias el parametro FechaHoraUsoGenREgistro es un System.DateTime , si lo paso directamente, me genera el xml, asi:
Código:
 <FechaHoraHusoGenRegistro >2024-10-01T15:05:26.908824+02:00</FechaHoraHusoGenRegistro>

Al enviar daba error de la fecha no correcta.


Código:
<EstadoRegistro>AceptadoConErrores</EstadoRegistro>
<CodigoErrorRegistro>2004</CodigoErrorRegistro>
<DescripcionErrorRegistro>El valor del campo FechaHoraHusoGenRegistro debe ser la fecha actual del sistema de la AEAT, admitiéndose un margen de error de: 120 segundos.</DescripcionErrorRegistro>

Como no hay forma de evitarlo por codigo,. lo cambie a string.


Por lo menos en c# VisualStudio 2015, que es la version que yo uso, pero ya te comente que la 2022, es diferente, en muchas cosas.
Hola bmfranky, Puedes adaptarlo a lo que necesites:
Código:
DateTime currentDateTime = GetDateTime(); // Coge la fecha y hora de internet o del ordenador

// Convert to Veri*Factu FORMAT EXPECTED: YYYY-MM-DDThh:mm:ssTZD (ej: 2024-01-01T19:20:30+01:00) (ISO 8601)
var creationDateTime = new DateTime(currentDateTime.Year, currentDateTime.Month, currentDateTime.Day, currentDateTime.Hour, currentDateTime.Minute, currentDateTime.Second, DateTimeKind.Local);

registroFacturacionAlta.FechaHoraHusoGenRegistro = creationDateTime;
Prueba a ver si te sirve, creo que no depende de la versión del VisualStudio que tengas

Saludos
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
como leer datos enviados por COM3 ( TurboPower Async Professional.) Racso2006 Varios 18 07-11-2018 12:06:58
Guardar y Leer fotos directamente a una base de datos sin antes guardar como archivo rmeckbell Desarrollo en Delphi para Android 6 26-06-2017 18:24:20
Como leer los datos de un UPS kurono Varios 5 20-02-2012 09:23:51
Cómo puedo leer los datos de este xml!! bone Varios 16 23-02-2011 17:29:49


La franja horaria es GMT +2. Ahora son las 21:55:16.


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