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”.