Table of Contents

Method FetchNumbers

Namespace
Zedal.Sdk.Apis.Core
Assembly
Zedal.Sdk.dll

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

count int

Count of numbers.

type FetchDocumentNumbersRequest.Types.NumberType

Type of the numbers.

parent string

for tfs; for DIWASS_NOTIFICATION the issuing authority id (e.g. "DE014") is required.

idempotencyKey string

Optional, geht als gRPC-Header idempotency-key mit. Der Server erkennt daran eine Wiederholung derselben Anforderung und liefert die Nummer des ersten Aufrufs, statt eine neue vergeben zu lassen. Derzeit nur für DIWASS_NOTIFICATION ausgewertet; null, leer oder nur Leerzeichen sendet keinen Header. Trägt context bereits einen anderen idempotency-key, bricht der Aufruf lokal mit InvalidArgument ab. Regeln für den Key siehe Remarks.

context ZedalCallContext

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