Gracias,. keys.
Estuve revisando el XML Data Binding a ver si había forma de que fuera automático, pero no. Haciendo el cambio manualmente ya no me da ese error.
Me dio otro error relacionado con el orden en el que van los campos en el XML. Al parecer si no están en el orden esperado (Modelo, Capítulo, Subcapitulo, Operacion...) dice que se ha encontrado un campo pero esperaba otro. Se pone tiquismiquis el señorito, pero bueno.
Después de colocarlo todo en el orden correcto, ahora obtengo un error que me hace mucha menos gracia que todos los anteriores:
B4_1000002 - Todos los registros incluidos en la petición son incorrectos.
Pues menuda gracia.
Me ocurre con el 240 y con el 140. Este es el código que utilizo para generar y firmar el XML:
Código Delphi
[-]
f := NewLROEPJ240FacturasEmitidasConSGAltaPeticion;
f.Cabecera.Modelo:='240';
f.Cabecera.Capitulo:='1';
f.Cabecera.SubCapitulo:='1.1';
f.Cabecera.Operacion:='A00'; f.Cabecera.Version:='1.0';
f.Cabecera.Ejercicio:=2021;
f.Cabecera.ObligadoTributario.NIF:='XXXXXXXX';
f.Cabecera.ObligadoTributario.ApellidosNombreRazonSocial:='XXXXXXXXXXXXXXXX';
with f.FacturasEmitidas.Add do
begin
TicketBai := EncodeFileToBase64('firmado.xml');
end;
XMLDocument2.XML.Text:=f.XML;
xmldocument2.Active:=True;
xmldocument2.SaveToFile('lroe.xml');
FicheroCorregir := TStringList.Create;
FicheroCorregir.LoadFromFile('lroe.xml');
FicheroCorregir.Text := AnsiReplaceStr(FicheroCorregir.Text, '','');
FicheroCorregir.Text := AnsiReplaceStr(FicheroCorregir.Text, '','');
FicheroCorregir.SaveToFile('lroe.xml');
comprimir('lroe.xml','archivo.gz');
Y este el del envío:
Código Delphi
[-]
RequestBody := TFileStream.Create('archivo.gz', fmOpenRead);
NetHTTPClient1.SecureProtocols := [THTTPSecureProtocol.TLS12];
NetHTTPClient1.CustomHeaders['Accept-Encoding'] := 'gzip';
NetHTTPClient1.CustomHeaders['Content-Encoding'] := 'gzip';
NetHTTPClient1.CustomHeaders['Content-Type'] := 'application/octet-stream';
NetHTTPClient1.CustomHeaders['eus-bizkaia-n3-version'] := '1.0';
NetHTTPClient1.CustomHeaders['eus-bizkaia-n3-content-type'] := 'application/xml';
json := f_cabecera_LROE('LROE', '1.1', 'XXXXXXXX', 'XXXXXXXXXXXXXXXXXX', '', '', '240', '2021');
NetHTTPClient1.CustomHeaders['eus-bizkaia-n3-data'] := json;
AResponse := NetHTTPClient1.Post('https://pruesarrerak.bizkaia.eus/N3B4000M/aurkezpena',RequestBody);
¿En serio? TODOS los registros incluidos en la petición son incorrectos???!?!?
Obviamente en el xml y en el envío no he puesto XXXXXXXX sino los datos correctos, que coinciden con el del certificado digital que estoy usando.
¿Alguien más ha tenido este problema? ¿A qué campos se refiere exactamente?