Zum Hauptinhalt springen

Einreichung herunterladen

Abruf von Metadaten und Fachdaten

Der Abruf einer Einreichung ist über den Endpunkt GET /v1/submissions/{submissionId} möglich. Liegen zur Einreichung neben den verschlüsselten Metadaten (encryptedMetadata) und Fachdaten (encryptedData) zusätzlich weitere Anlagen vor, so sind die IDs der Anlagen im Feld attachments zu finden. Anlagen müssen separat heruntergeladen werden (siehe nächster Abschnitt). Einreichungen und deren Anlagen können dabei nur im Status Submitted oder Forwarded abgerufen werden.

Hinweis

Die URL der Submission API findet sich im Artikel Betriebsumgebungen.

Das folgende Beispiel zeigt, wie Sie das .NET-SDK nutzen, um abholbereite Einreichungen vom Zustelldienst herunterzuladen. Wenn Sie das Polling-Verfahren verwenden, dann überprüfen Sie zunächst, ob abholbereite Einreichungen auf dem Zustelldienst vorliegen. Der folgende Quellcode erfragt die verfügbaren Einreichungen, indem er die Methode GetAvailableSubmissionsAsync() am Subscriber-Objekt aufruft. Der Rückgabewert der Methode wird der Variablen submissionForPickups zugewiesen. Dieses Beispiel bezieht sich auf den Quellcode, den Sie auf der Seite Vorhandensein neuer Einreichungen prüfen finden.

var submissionForPickups = await subscriber.GetAvailableSubmissionsAsync();

Das Beispiel durchläuft dann für jede verfügbare Einreichung die folgende Foreach-Schleife:

        foreach (var submission in submissionForPickups) {
var outputDirectory = Directory.CreateDirectory(
Path.Combine(".", "submissions", $"{submission.Id}", "attachments"));
try {
outputDirectory.Create();
var receivedSubmission =
await subscriber.RequestSubmissionAsync(submission.Id);

logger.LogInformation("Fachdaten:\r\n\tMimeType: {mimeType}\r\n\t{Data}",
receivedSubmission.GetDataMimeType(), receivedSubmission.GetData());

var metadata = receivedSubmission.Metadata;

var attachments = await receivedSubmission.GetAttachmentsAsync();

foreach (var attachment in attachments) {
if (attachment.GetBytes().Length == 0)
continue;

var content = attachment.GetBytes();
await File.WriteAllBytesAsync(
Path.Combine(outputDirectory.FullName, (attachment.Filename ?? "temp.dat")),
content);
}

await receivedSubmission
.AcceptSubmissionAsync();
}
catch (Exception e) {
logger.LogError(e, "Fehler beim Abrufen der Einreichung");
}
}

In der Foreach-Schleife führt das Beispiel die folgenden Schritte aus:

  • Für jede verfügbare Einreichung wird ein Verzeichnis angelegt.
  • Um eine Einreichung vom Zustellpunkt zu laden, wird die Methode RequestSubmissionAsync(submission.Id) aufgerufen. Der Rückgabewert der Methode wird der Variablen receivedSubmission zugewiesen.
  • Nach dem Eintragen von Log-Informationen liest das Beispiel die Metadaten der Einreichung aus.
  • Die Anhänge (attachments) werden aus der Einreichung gelesen. Jeder Anhang wird in eine Datei eingefügt. Das Beispiel speichert diese Datei im Verzeichnis, das zuvor für diese Einreichung angelegt wurde.
  • Das Beispiel setzt den Status der Einreichung auf accepted, indem es die Methode AcceptSubmissionAsync() am receivedSubmission aufruft.

Callback

Falls Sie nicht das Polling-Verfahren nutzen, sondern einen Callback-Endpunkt, dann informiert Sie der Zustellpunkt, sobald eine abholbereite Einreichung vorliegt, indem er den Callback-Endpunkt aufruft. Wenn Sie einen Callback-Endpunkt verwenden, dann können Sie den Quellcode in der Foreach-Schleife des Beispiels für Ihr Programm übernehmen.

Der Quellcode oben ist ein Auszug aus dem Projekt ConsoleAppExample, das im Repository Examples der FITKO hinterlegt ist. Eine Beschreibung des .NET-SDKs finden Sie im Hauptmenü unter "SDKs > .NET-SDK".


Anschließend können die Metadaten und Fachdaten entschlüsselt sowie deren Schemata validiert werden.

Abruf von Anlagen

Anlagen können über den Endpunkt GET /v1/submissions/{submissionId}/attachments/{attachmentId} abgerufen werden. Anlagen können dabei nur von Einreichungen im Status Submitted oder Forwarded abgerufen werden. Anschließend können auch die Anlagen entschlüsselt werden.

Das folgende Beispiel zeigt, wie Sie das .NET-SDK nutzen, um die Anlagen zu einer Einreichungen zu erhalten. Der folgende Quellcode ist ein Auszug aus dem Beispiel von oben, in dem bereits gezeigt wird, wie Sie aus einer heruntergeladenen Einreichung die Anhänge lesen. Die Einreichung ist in der Variablen receivedSubmission gespeichert:

var attachments = await receivedSubmission.GetAttachmentsAsync();
foreach (var attachment in attachments)
{
await File.WriteAllBytesAsync(
outputDirectory.FullName + "/" + (attachment.Filename ?? "temp.dat"),
attachment.GetBytes());
}

Um aus einer Einreichung die Anhänge zu lesen, rufen Sie die Methode receivedSubmission.GetAttachmentsAsync() auf.
Sie finden eine Beschreibung des .NET-SDKs im Hauptmenü unter "SDKs > .NET-SDK".