ich sitze in den letzten Tage an einer Aufgabe, die ich bisher alleine nicht gelöst bekomme, daher mein Ersuchen nach Hilfe
Derzeit entwickle ich eine Schnittstelle aus NAV an ein Telemetriksystem. Dabei erstelle ich XMLs und sende diese an einen Webservice, das funktioniert so weit alles. Die Technik, die ich dazu nutze, habe ich mir hier abgeschaut.
In einem zweiten Schritt möchte ich einen Anhang (Lieferschein als PDF - aus einem NAV Report erstellt) an eine .../file_storage/upload_file.php?... URL senden, die Methode muss dabei 'POST' sein. Auch bis hierhin noch kein Problem, dafür kann ich die webClient.UploadFile(url, 'POST', fileName) nehmen. Zurück kommt laut Schnittstellenbeschreibung eine JSON, die wie folgt aufgebaut ist:
[
{
"name": "file.png",
"status": "OK",
"uuid":"08910afd0bfcc7aa193d40c486ca156a"
}
]
Nun habe ich jedoch keine Ahnung, wie ich die Antwort "einfange" und dann die UUID auslesen kann. Der RĂĽckgabewert von webCient.UploadFile ist ein Byte Array, wo nun meine JSON drin steckt. Nur weiĂź ich nun nicht, wie ich das lesbar mache, so dass ich mir die UUID in NAV wegschreiben kann. Muss dazu sagen, dass ich nur Low Code und C/AL (und ein wenig AL) programmiert habe und kein gelernter Entwickler bin, deswegen oft bei den DotNet-Geschichten an meine Grenzen stoĂźe.
Mein Code sieht (jetzt gerade - nach diversen trial and error) so aus:
System.Net.WebClient.'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
System.Net.WebResponse.'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
- Code: Alles auswählen
// dotnet webclient Instanz erzeugen
webClient := webClient.WebClient();
// temporäre Datei erzeugen und den namen merken
locFile.CREATETEMPFILE;
fileName := locFile.NAME;
locFile.CLOSE;
IF locReport.SAVEASPDF(fileName) THEN BEGIN
// eigentliches uploaden
WebResponse := webClient.UploadFile(url, 'POST', fileName);
txt := WebResponse.ToString;
MESSAGE(txt);
// nach dem upload Datei wieder löschen
ERASE(fileName);
EXIT(TRUE)
END ELSE
EXIT(FALSE);
Da kommt dann aber nur ein "Byte[]" raus. Mir ist klar, dass der Code so nicht funktionieren kann, da nach der Zuweisung der Antwort irgendeine Art von Konvertierung fehlt. Aber wie?
Bin fĂĽr jede Hilfestellung danbkar.
MfG
fips