Class MovementDocumentHandler
- Namespace
- Zedal.Sdk.DocumentHandler
- Assembly
- Zedal.Sdk.dll
Stateful Handler für die Unternehmens-Seite eines einzelnen DIWASS-Bewegungsdokuments im Rahmen einer genehmigten Notifizierung (Art. 16 VO (EU) 2024/1157). Ein Handler entspricht genau einer physischen Transportbewegung.
Behördenaktionen auf Bewegungsebene (Rücknahme-Anordnung, Bewegungssignale) liegen in AuthorityMovementDocumentHandler.
public class MovementDocumentHandler : DiwassDocumentHandlerBase
- Inheritance
-
MovementDocumentHandler
- Inherited Members
Examples
Movement-Template auf einer konsentierten Notifizierung anlegen und an DIWASS übermitteln (Company-Rolle):
var handler = client.DocumentHandler.CreateMovementHandler();
await handler.CreateMovementTemplate(template); // Template-Aufbau: siehe Developer-Guide
await handler.SaveToZedal();
await handler.SendToDiwass();
// Die DIWASS-MovementId (Format <NotificationId>.000001MOV) steht in handler.DiwassNotificationId.
// Die SequenceNumber fürs Template vorab mit handler.GetNextSequenceNumber(notificationId)
// ermitteln — es gibt keinen serverseitigen Reservierungsweg.
Constructors
Properties
- Movement
Aktueller zewass-Movement-Stand (mit ZEDAL-Ergänzungen). Wird nach jedem Set/Create/Refresh aktualisiert.
Methods
- CreateMovementTemplate(MovementTemplateType, ZedalCallContext)
Erstellt ein neues Bewegungsdokument-Template für eine einzelne Sendung (kein DocXml erforderlich).
- LoadFromZedalByMovementId(string, ZedalCallContext)
Lädt das ZEDAL-Doc zu einer fachlichen DIWASS-MovementId (z.B.
DE0126005197i.000001MOV). Im DocumentEntry-Index liegt die MovementId untersequence_number. Pro MovementId existiert genau ein ZEDAL-Doc; sämtliche Phasen (Announcement, CarrierTransport, ConsigneeReception, FacilityReception, FacilityCompletion) leben als BxA-Blocks darin.
- Refresh(ZedalCallContext)
Lädt den aktuellen Dokumentstatus neu von der BXA API, ohne das XML zu verändern. Subklassen rufen den passenden typisierten
GetNotification/GetAnnex7/GetMovement-Endpoint auf, pflegen ihre typisierte Property und delegieren die Common-Felder an UpdateCommonState(DiwassOperationResult).
- SetCarrierTransport(CarrierTransportDocumentType, ZedalCallContext)
Erfasst die Transportdaten des Trägers für diese Sendung (Abfahrtsdatum, Route, Fahrzeugdaten, Trägerangaben).
- SetConsigneeReception(ConsigneeReceptionDocumentType, ZedalCallContext)
Reicht die Empfangsbestätigung des Empfängers ein (innerhalb von 3 Werktagen nach Eingang der Abfälle).
- SetFacilityCompletion(FacilityCompletionDocumentType, ZedalCallContext)
Reicht die Abschluss-Bescheinigung der Anlage nach erfolgter Verwertung/Entsorgung ein (innerhalb von 30 Tagen nach Abschluss, spätestens ein Kalenderjahr nach Eingang).
- SetFacilityReception(FacilityReceptionDocumentType, ZedalCallContext)
Reicht die Empfangsbestätigung der Anlage ein, wenn Empfänger und Anlage verschieden sind (innerhalb von 3 Werktagen nach Eingang der Abfälle).
- SetMovementTakeBack(MovementTakeBackDocumentType, ZedalCallContext)
Notifier-seitige Take-Back-Anordnung auf dem Movement (Rücknahme, typischerweise nach Facility-Rejection). Permission-Matrix erlaubt die Aktion auch dem Notifizierer; die zugrundeliegende BxA-RPC liegt aktuell nur auf der IAuthorityDocumentApi — bis die Company-API ein eigenes Gegenstück bekommt (siehe Ticket zedal-grpc-apis), delegieren wir hier auf denselben Endpoint. Übergangslösung analog zu SubmitNotificationSignal(NotificationSignalDocumentType, ZedalCallContext).
- SetMovementTemplate(MovementTemplateType, ZedalCallContext)
Aktualisiert ein bestehendes Bewegungsdokument-Template (z.B. Korrekturen vor Transportbeginn).
- SubmitMovementSignal(MovementSignalDocumentType, ZedalCallContext)
Notifier-seitiges Movement-Signal — typischerweise
MovementCancelled(Stornierung einer laufenden Bewegung durch den Notifizierer). Lifecycle- Signale auf Notifizierungsebene (ProperlyCarriedOut,ProperlyCompleted) gehören dagegen ans Notification-Doc, nicht hier. Übergangslösung: Der BxA-EndpointSubmitMovementSignalexistiert aktuell nur auf der IAuthorityDocumentApi. Bis die Company-API ein eigenes Gegenstück bekommt, delegieren wir hier auf denselben Endpoint — parallel zu SubmitNotificationSignal(NotificationSignalDocumentType, ZedalCallContext).