Ver Mensaje Individual
  #24  
Antiguo 16-05-2019
mtxtania mtxtania is offline
Registrado
 
Registrado: may 2019
Posts: 8
Reputación: 0
mtxtania Va por buen camino
Cita:
Empezado por APO Ver Mensaje
Hola mtxtania,

Pues vaya con los de la AEAT! Bueno, de momento, puedes gestionarlo como lo estoy haciendo yo, que es trabajar sobre el XML de respuesta. Para ello, lo que yo he hecho es crear una variable de tipo TXMLDocument e ir recorriendo los nodos. Te pongo una muestra de ejemplo:

Código Delphi [-]
procedure TfrmMantenimientoTabla.ProcesarXML;
var
   XMLDocument: TXMLDocument;
   XMLDocumentBody, XMLDocumentRechazado, XMLDocumentAceptado: IXMLNode;
   i: integer;
begin
   XMLDocument:=TXMLDocument.Create(Self);
   XMLDocument.Active:=False;
   try
      XMLDocument.LoadFromXML(mXML.Text); //Memo donde tengo cargado el XML
      XMLDocument.Active:=True;
      for i:=0 to XMLDocument.DocumentElement.ChildNodes.Count-1 do
      begin
         if UpperCase(trim(XMLDocument.DocumentElement.ChildNodes[i].LocalName))='BODY' then
         begin
            XMLDocumentBody:=XMLDocument.DocumentElement.ChildNodes[i];
            for j:=0 to XMLDocumentBody.ChildNodes.Count-1 do
            begin
               if UpperCase(trim(XMLDocumentBody.ChildNodes[j].LocalName))='IE204' then
               begin
                  //MENSAJE RECHAZADO (Si el mensaje de respuesta tiene el nodo Ie204 es que ha sido rechazado)
                  XMLDocumentRechazado:=XMLDocumentBody.ChildNodes[j];
                  //...

               end
               else
               begin
                  //MENSAJE ACEPTADO
                  if UpperCase(trim(XMLDocumentBody.ChildNodes[j].LocalName))='IE201' then
                  begin
                     XMLDocumentAceptado:=XMLDocumentBody.ChildNodes[j];
                     //…
                  end;
               end;
            end;
         end;
      end;
   except

   end;
end;

Y respecto a la hora correcto, es como lo estoy haciendo yo también:

Código Delphi [-]
XML.Cabecera.HoraPreparacion.XSToNative(FormatDateTime('hh:mm:ss',now));

Saludos!

Muchas gracias!A ver si podemos hacerlo de otra forma!!
Responder Con Cita