Ver Mensaje Individual
  #986  
Antiguo 28-12-2023
nincillo nincillo is offline
Miembro
 
Registrado: may 2017
Posts: 151
Reputación: 8
nincillo Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Me respondo a mi mismo.
He descargado el XSD desde aquí.
Lo he subido al FTP junto al resto de la documentación.

Importándolo en un proyecto de Delphi (XML Data Binding) y con un poco de código:

Código Delphi [-]
procedure TForm3.Button2Click(Sender: TObject);
var
  fAlta:IXMLSistemaFacturacionAltaFact;
begin

  fAlta := NewFacturaAlta;
  fAlta.Cabecera.IDVersion := '1.0';
  fAlta.Cabecera.ObligadoEmision.NombreRazon := 'EMPRESA PRUEBAS';
  fAlta.Cabecera.ObligadoEmision.NIF := '11111111H';
  fAlta.Cabecera.TipoRegistroAEAT := 'S0';

  ...

  var sXML:string;
  fAlta.OwnerDocument.SaveToXML(sXML);
  Memo1.Lines.Text := sXML;

end;

Se genera la parte de la cabecera sin problemas...

Código PHP:
<?xml version="1.0"?>
<FacturaAlta xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
    <Cabecera>
        <IDVersion>1.0</IDVersion>
        <ObligadoEmision>
            <NombreRazon>EMPRESA PRUEBAS</NombreRazon>
            <NIF>11111111H</NIF>
        </ObligadoEmision>
        <TipoRegistroAEAT>S0</TipoRegistroAEAT>
    </Cabecera>
</FacturaAlta>
Os adjunto el fichero generado.
Ante todo, muchas gracias por tu paciencia.
Esto a base de pegarme cabezazos todo el fin de semana, ya lo había conseguido encontrar, pero entonces me atascaba en el momento de querer hacer el envío, ya que en el método GetsfSOAP requiere que sea un objeto de tipo Array_Of_RespuestaExpedidaType y no se como "calzarle" el cabecera.

Código:
try
    SetLength(arrayFacturas, 1);
    arrayFacturas[0] := regFactura;
    result := GetsfSOAP(true, '', HTTPRIO1).AltaFactuSistemaFacturacion(ArrayFacturas);
Responder Con Cita