Hey und willkommen zurück aus dem langen Wochenede
Es läuft
@Union - Danke für den Parameter, war mir gar nicht bewusst was man alles noch an der Stelle konfigurieren kann, hatte aber tatsächlich keinen Einfluss auf das ganze.
Es funktioniert jetzt tatsächlich mit dem POST den ich als letztes rein gestellt hatte.
Beim nochmaligen durchgehen der
WSDL und der daraus erzeugten
Unit/Klassen ist mir aufgefallen, das für diese "UUID" bereits etwas mitimplementiert wurde. Entspricht im Prinzip genau dem was ich vorher über den ObjectToSoap part gelöst hatte, aber warum doppelten Code pflegen? Also weg mit meinerm Krahm
In der
WSDL Unit wird automatisch eine entsprechende Headerklasse generiert und dann mit
Delphi-Quellcode:
InvRegistry.RegisterHeaderClass(TypeInfo(wsKostenstelleObj), wsKostenstelleID, 'wsKostenstelleID', 'virrpcKostenstelle/wsKostenstelle');
InvRegistry.RegisterHeaderClass(TypeInfo(kostenstelleObj), kostenstelleID, 'kostenstelleID', 'virrpcKostenstelle/kostenstelle');
"angebunden".
Das Einzige was ich noch machen musste, war mir die UUID und die Anwendungsspeziefischen Fehlermeldungen aus der Responce rausziehen. Das hab ich über das AfterExecute Event des übergebnen tHTTPRIO objekts gelöst.
Delphi-Quellcode:
procedure TForm1.HTTPRIO1AfterExecute(const MethodName: string; SOAPResponse: TStream);
var
lSL: tstringlist;
I: Integer;
lXMLDoc: IXMLDocument;
begin
lXMLDoc:= TXMLDocument.Create(nil);
lXMLDoc.LoadFromStream(SOAPResponse);
SOAPErrorMessage:=RecursiveFindNode(lXMLDOC.DocumentElement,'errorMessage');
case IndexText(MethodName,['Connect_wsKostenstelle','CreatePO_kostenstelle']) of
0: WebserviceUUID:=RecursiveFindNode(lXMLDOC.DocumentElement,'UUID');
1: CSPortUUID :=RecursiveFindNode(lXMLDOC.DocumentElement,'UUID');
end;
end;
Die RecursiveFindNode hab ich aus folgendem
Stackoverflow Eintrag
Falls jemand sowohl für das RecursiveFindNode als auch den Ansatz die Responce aus dem Event auszulösen was zu meckern hat
gern immer her damit.
Bin immer offen für konstruktive Kritik.
Bis dahin, super vielen Dank für die Hilfe. @Incocnito - Das mit dem > war üübrigens kein Problem, funktioniert ohne Probleme. Vielleicht weils nochmal gekapselt ist in verschiedenen Nodes, aber wie gesagt
XML und ich sind nicht die besten Freunde?
MFG
PJM