Unter Umständen 1 Woche Lebenszeit zu verschenken: Problem: Übertragung der Bewegungsdaten per EXTF_Buchungsstapel.csv und anschließende Abfrage des Job-Status mit folgender Fehlermeldung in Kurzform: Invalid EXTF-Header "DATEV Format Label","reason":"must be 'EXTF' (1)" An der Datei oder der Headerzeile hat es nicht(!) gelegen, sondern an der Art der Übermittlung. Habe es immer mit addFile probiert, aber die Datei muss als ByteArray im Body übergeben werden. Klingt einfach, bin aber nicht ohne Anschubser darauf gekommen. Das besagte Problem das vorm Bildschirm sitzt. Lösung: // Body
filePath = documentFile.path + @"\" + documentFile.filename;
byte[] bytes = System.IO.File.ReadAllBytes(filePath);
request.AddParameter("application/octet-stream", bytes, ParameterType.RequestBody);
// Request insgesamt:
url = "https://accounting-extf-files.api.datev.de/"
+ gateway_url + "/v3/clients/" + datev_client_id
+ "/extf-files/import";
// AUTH
options = new RestClientOptions(url)
{
MaxTimeout = -1,
Authenticator = new OAuth2AuthorizationRequestHeaderAuthenticator(
code, // AccessCode
"Bearer"),
};
client = new RestClient(options);
request = new RestRequest(url, Method.Post);
// Body
filePath = documentFile.path + @"\" + documentFile.filename;
byte[] bytes = System.IO.File.ReadAllBytes(filePath);
request.AddParameter("application/octet-stream", bytes, ParameterType.RequestBody);
// Header
request.AddHeader("X-DATEV-Client-Id", X_DATEV_Client_Id);
request.AddHeader("Filename", documentFile.filename);
request.AddHeader("Content-Type", "application/octet-stream");
// Im Anschluss gibt der JobStatus dann endlich das ersehnte 'succeeded' zurück
url = "https://accounting-extf-files.api.datev.de/" + gateway_url + "/v3" + jobId_url;
request = new RestRequest(url, Method.Get);
request.AddHeader("X-DATEV-Client-Id", X_DATEV_Client_Id);
request.RequestFormat = DataFormat.Json;
RestResponse jobStatus_response = client.Execute(request); Puuh. Endlich. Bis zum nächsten Puzzleteil. VG Dino
... Mehr anzeigen