Ver Mensaje Individual
  #2389  
Antiguo 30-08-2017
razorxxx razorxxx is offline
Miembro
 
Registrado: jul 2015
Posts: 19
Reputación: 0
razorxxx Va por buen camino
Error al generar un archivo XML de Libro Cobros Emitidas

Muy buenas!
Estoy tratando de generar desde Delphi un archivo XML de tipo Libro Cobros Emitidas. Utilizando el XML Data Binding generé la unit necesaria desde SuministroLR.xsd
El caso es que en una parte del código me lanza el error EIntfCastError: "interface not supported", pero no veo el fallo. Mi código es el siguiente (los datos fiscales son ficticios):

Código Delphi [-]
var
   Libro: SuministroLR.IXMLSuministroLRCobrosEmitidas;
   Cobro: SuministroLR.IXMLDatosPagoCobroType_sii;
   Document: IXMLDocument;
   FichEntrada: TextFile;
   NumSerieFacturaAnterior: String;
   Linea: WideString;
   I, J: Integer;
begin
     // Creamos documento XML en blanco, sólo con los namespaces necesarios
     try
        Document := TXMLDocument.Create(nil);
        Document.ParseOptions := [poResolveExternals, poValidateOnParse];
        Document.Options := Document.Options + [doNodeAutoIndent];
        Document.NodeIndentStr := '    ';
        Document.XML.Text := ' +
                             'xmlns:sii="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">';
        Document.Active := True;
     except
           SWERROR := 1;
           EXIT;
     end;
     try
        Libro := GetSuministroLRCobrosEmitidas(Document);
        Libro.AddChild('sii:Cabecera');
        Libro.Cabecera.IDVersionSii := VERSION_SII;
        Libro.Cabecera.AddChild('sii:Titular');
        Libro.Cabecera.Titular.NombreRazon := 'Prueba'
        Libro.Cabecera.Titular.NIF := 'A12345678';
        Libro.AddChild('siiLR:RegistroLRCobros');
        Libro.RegistroLRCobros[i].AddChild('siiLR:IDFactura');
        Libro.RegistroLRCobros[i].IDFactura.AddChild('sii:IDEmisorFactura');
        Libro.RegistroLRCobros[i].IDFactura.IDEmisorFactura.NIF := 'A12345678';
        Libro.RegistroLRCobros[i].IDFactura.NumSerieFacturaEmisor := '170001';
        Libro.RegistroLRCobros[i].IDFactura.FechaExpedicionFacturaEmisor := '20-08-2017';
        Libro.RegistroLRCobros[i].AddChild('siiLR:Cobros');
        Cobro := Libro.RegistroLRCobros[i].Cobros.Add;   // Aquí es donde me tira el error!

Si muestro el XML mediante ShowMessage(Libro.XML) me va mostrando el árbol correctamente:

Código:
<siiLR:SuministroLRCobrosEmitidas xmlns:siiLR="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd" xmlns:sii="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">
    <sii:Cabecera>
        <sii:IDVersionSii>1.0</sii:IDVersionSii>
        <sii:Titular>
            <sii:NombreRazon>Prueba</sii:NombreRazon>
            <sii:NIF>A12345678</sii:NIF>
        </sii:Titular>
    </sii:Cabecera>
    <siiLR:RegistroLRCobros>
        <siiLR:IDFactura>
            <sii:IDEmisorFactura>
                <sii:NIF>A12345678</sii:NIF>
            </sii:IDEmisorFactura>
            <sii:NumSerieFacturaEmisor>170001</sii:NumSerieFacturaEmisor>
            <sii:FechaExpedicionFacturaEmisor>20-08-2017</sii:FechaExpedicionFacturaEmisor>
        </siiLR:IDFactura>
        <siiLR:Cobros/>
    </siiLR:RegistroLRCobros>
</siiLR:SuministroLRCobrosEmitidas>
¿A alguien se le ocurre dónde puede estar fallando? Gracias de antemano.

Última edición por razorxxx fecha: 30-08-2017 a las 13:28:03.
Responder Con Cita