![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
|||
|
|||
|
Cita:
<?xml version="1.0"?> <RegistroAlta> <RegistroFacturacionType> <IDVersion>1.0</IDVersion> <IDFactura> Y además añade ese <?xml version="1.0"?> al principio, aunque eso es lo de menos porque puedo quitarlo a mano. Supongo que también debo quitar a mano el <RegistroFacturacionType> y </RegistroFacturacionType> para dejarlo limpio? Ahora que tengo la parte del XML correspondiente al RF (uno o varios), habría que crear el XML del envío, con el "bloque" de RF a enviar. ¿Hay algún ejemplo para extraer todos los XML de los RF a enviar al crear el XML del envío? Yo lo tengo más o menos así: Código:
veriFactu:=RegFactuSistemaFacturacion.Create;
veriFactu.Cabecera := cabeceratype.Create;
veriFactu.Cabecera.ObligadoEmision := PersonaFisicaJuridicaESType.Create;
veriFactu.Cabecera.ObligadoEmision.NombreRazon := VeriFactuForm.Edit7.Text;
veriFactu.Cabecera.ObligadoEmision.NIF := VeriFactuForm.Edit8.Text;
veriFactu.Cabecera.RemisionVoluntaria := RemisionVoluntaria.Create;
veriFactu.Cabecera.RemisionVoluntaria.Incidencia := IncidenciaType(1); //0=S / 1=N
setLength(listaFacturas,Query.RecordCount);
j:=0;
while not (Query.Eof) do
begin
mov:=Query.FieldByName('TIPO').AsString;
fac:=Query.FieldByName('NUM').AsString;
ser:=Query.FieldByName('SER').AsString;
//Añadiendo Fac. al bloque...
FacturaEnvio := obtenerXMLdelRF();
listaFacturas[ j]:= FacturaEnvio;
Query.next;
inc(j);
end;
veriFactu.RegistroFactura:= listaFacturas;
if length(listaFacturas)>0 then
enviarbloque(verifactu);
![]() |
|
#2
|
|||
|
|||
|
Ok, he estado haciendo pruebas para convertir ahora de XML al objeto adecuado y tengo esta función:
Código:
function CargarRegistroAltaDesdeXML(const XMLText: string): RegistroFacturaType;
var
XMLDoc: IXMLDocument;
RootNode: IXMLNode;
SOAPConv: TOPToSoapDomConvert;
Resultado: RegistroFacturaType;
begin
XMLDoc := TXMLDocument.Create(nil);
try
XMLDoc.LoadFromXML(XMLText);
XMLDoc.Active := True;
RootNode := XMLDoc.DocumentElement;
SOAPConv := TOPToSoapDomConvert.Create(nil);
try
SOAPConv.Encoding := 'utf-8';
SOAPConv.Options := [
TSOAPConvertOption.soDontSendEmptyNodes,
TSOAPConvertOption.soSendUntyped,
TSOAPConvertOption.soTryAllSchema,
TSOAPConvertOption.soUTF8EncodeXML
];
Resultado := RegistroFacturaType.Create;
Resultado.SOAPToObject(RootNode, RootNode, SOAPConv);
Result := Resultado;
finally
SOAPConv.Free;
end;
finally
XMLDoc := nil;
end;
end;
Si alguien puede echarme un cable se lo agradecería, porque no sé si voy por buen camino o no. Nunca he usado los conversores estos Soap <-> XML |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| 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 guardar en postgresql (como trabaja el datamodule) | mematanlimon | Lazarus, FreePascal, Kylix, etc. | 0 | 15-02-2010 19:06:12 |
| Como guardar .JPG como Bitmap en Base de Datos | Javi2 | Gráficos | 4 | 25-03-2007 17:21:57 |
| ¿Cómo guardar el Valor de TColor como un String? | nesetru | Gráficos | 3 | 27-02-2004 20:21:32 |
|