Method FetchNumbers
FetchNumbers(int, NumberType, string, string, ZedalCallContext)
Requests document numbers that have not yet been used from the server, which can be assigned for new documents.
Task<IEnumerable<string>> FetchNumbers(int count, FetchDocumentNumbersRequest.Types.NumberType type, string parent = "", string idempotencyKey = null, ZedalCallContext context = default)
Parameters
countintCount of numbers.
typeFetchDocumentNumbersRequest.Types.NumberTypeType of the numbers.
parentstringfor tfs; for
DIWASS_NOTIFICATIONthe issuing authority id (e.g. "DE014") is required.idempotencyKeystringOptional, geht als gRPC-Header
idempotency-keymit. Der Server erkennt daran eine Wiederholung derselben Anforderung und liefert die Nummer des ersten Aufrufs, statt eine neue vergeben zu lassen. Derzeit nur fürDIWASS_NOTIFICATIONausgewertet;null, leer oder nur Leerzeichen sendet keinen Header. Trägtcontextbereits einen anderenidempotency-key, bricht der Aufruf lokal mit InvalidArgument ab. Regeln für den Key siehe Remarks.contextZedalCallContextOptionale Deadline-/Cancellation-Steuerung; ohne Angabe gilt der Client-Default.
Returns
- Task<IEnumerable<string>>
A Task representing the asynchronous operation.
Remarks
Ohne Key vergibt DIWASS bei jedem Abruf eine neue Notifizierungsnummer. Der Server sperrt den Account deshalb, solange ein Abruf ohne Key läuft und eine Weile danach (ResourceExhausted).
Einen Key je Dokument und Behörde zufällig erzeugen (z.B. Guid.NewGuid().ToString()),
nie aus Dokument- oder Behördendaten ableiten — sonst bekämen zwei Dokumente derselben
Behörde dieselbe Nummer. Denselben Key für jede Wiederholung derselben Anforderung
nehmen: erneuter Klick, Retry nach Timeout oder Netzfehler, auch nach einem Fehler, denn
der Server hält nur Erfolge fest. Einen neuen Key, wenn sich parent
ändert oder bewusst eine weitere Nummer angefordert wird; denselben Key mit anderer
Behörde lehnt der Server mit InvalidArgument ab.
Der Key gilt innerhalb der Session, über Token-Refreshes hinweg, aber nicht nach einem neuen Login. Die erhaltene Nummer deshalb sofort im Dokument speichern.