Zum Inhalt

Anhänge, Eingänge und Kennungen

Anhänge hochladen, Eingänge in den Bestand übernehmen und die eigenen Kennungen des Accounts lesen.

Anhänge

var response = await client.DiwassApi.AttachmentApi.SubmitAttachment(
    content:             pdfBytes,
    typeId:              AttachmentTypeId.FacilityPermit,
    mimeCode:            "application/pdf",
    filename:            "genehmigung.pdf",
    containsPersonalData: false,
    context:             ZedalCallContext.Default.WithTimeout(600));

Die Überladung mit einem vorbefüllten AttachmentBinaryObjectType gibt es weiterhin; für neuen Code ist die typisierte Form vorzuziehen. Gelesen wird über GetAttachment(attachmentIdentifier).

Deadline für Anhänge immer selbst setzen

Up- und Downloads passen nicht in die 30 Sekunden des Client-Defaults. Setz WithTimeout(...) großzügig oder übergib mit WithoutDeadline() plus CancellationToken die Zeitsteuerung ganz an deinen Code.

Die zurückgegebene Kennung ist nicht zwangsläufig die DiWaSS-Kennung

SubmitAttachment kann eine vorläufige Kennung der Form ZEDAL_TMP_ATT_ID_… liefern. Wird ein Dokument mit dieser Kennung an DiWaSS gesendet, lehnt DiWaSS es mit ATTACHMENT-NOT-FOUND ab — der Anhang existiert dort unter dieser Kennung nicht.

Eine zentrale DiWaSS-Attachment-Kennung hat die Form <Ziffern>ATT. Prüf die Kennung, bevor du sie in ein Dokument schreibst, und behandle einen ZEDAL_TMP_ATT_ID_-Präfix als „noch nicht zentral registriert” statt als Erfolg. Weitere Fehlercodes: Fehlercodes.

Eingänge übernehmen

client.DocumentHandler.CreateInboxImporter() liefert einen IInboxImporter mit ImportAsTransportAsync(...), ImportToFileAreaAsync(...) und ListPendingAsync(...). Der Importer filtert serverseitig über document_type, arbeitet seitenweise (pageSize, Default 200) und liefert einen InboxImportReport, dessen Failed-Liste die nicht übernehmbaren Einträge nennt. Standardmäßig werden nur erfolgreich importierte Einträge aus der Inbox entfernt; für unbeaufsichtigte Läufe gibt es removeOnFailure: true.

Warum dieser Schritt nicht optional ist und wie ein tragfähiger Abgleichzyklus aussieht, steht unter Aufrufe und Synchronisation — inklusive der Regel der Kommission, Ereignisliste plus gezielten Detailabruf statt Vollabzug zu fahren.

Eigene Kennungen — MyAccount

var operatorIds = await client.MyAccount.GetOwnDiwassOperatorIds();
// IReadOnlyList<long> — DiWaSS OperatorInternalIds of this account

var bmuNumbers = await client.MyAccount.GetOwnBmuZksNumbers();
// IReadOnlyList<string> — BMU ZKS numbers (national, not numeric)

MyAccount ist eine Fassade über client.CoreApi.AccountManager.GetAccountNumbers() und filtert die zugewiesenen Nummern nach Typ. Die DiWaSS-Operator-Ids brauchst du als OperatorInternalId auf den DiWaSS-Dokumenten. Nummern, die sich nicht als long lesen lassen, überspringt GetOwnDiwassOperatorIds() stillschweigend — eine leere Liste heißt also „keine passende Nummer zugewiesen”, nicht „Fehler”.