Test Partner Schedule
Zuletzt geändert: 14.03.2026 05:56

Test-PartnerSchedule #

ÜBERSICHT #

Prüft, ob für einen Partner zum aktuellen Zeitpunkt ein Datenaustausch gestartet werden darf.

SYNTAX #

Test-PartnerSchedule [-Schedule] <hashtable> [<CommonParameters>]

BESCHREIBUNG #

Diese Funktion entscheidet, ob ein automatisiertes Ereignis wie z.B. ein Uploadoder Download von Geschäftsnachrichten wie EDIFACT, gemäß dem übergebenen Zeitplan ausgeführt werden darf. Sie eignet sich insbesondere zur Steuerung von Partnerprozessen, etwa für den Austausch von INVOIC-, ORDERS-, ORDRSP-Dateien usw. Der Zeitplan Schedule kann feste Tageszeiten beispielsweise 09:00 oder 15:00 und/oder ein Wiederholungsintervall in Minuten enthalten. Entscheidend ist dabei, ob eine der Bedingungen zwischen dem letzten Ereignis und jetzt erfüllt wird.

Der Ablauf ist wie folgt: #

  1. Wenn die Prüfung fester Tageszeiten aktiviert ist useFixedTimes, wird geprüft, ob eine dieser definierten Zeiten zwischen dem letzten Zugriff lastAccess und dem aktuellen Zeitpunkt liegt. Falls ja, gibt die Funktion true zurück.

  2. Trifft dies nicht zu oder ist die feste Zeitprüfung deaktiviert, wird geprüft, ob seit dem letzten Zugriff das definierte Intervall intervalMinutes überschritten wurde. Wenn ja, gibt die Funktion ebenfalls true zurück.

Andernfalls gibt die Funktion false zurück.

PARAMETER #

-Schedule #

Type: hashtable

Hashtable, die den Zeitplan definiert. Erwartete Schlüssel: #

  • useFixedTimes [bool]: Aktiviert oder deaktiviert die Prüfung fester Tageszeiten.
  • fixedTimes [array von Strings]: Liste fester Zeitpunkte im Format HH:mm.
  • intervalMinutes [int]: Zeitintervall in Minuten.
  • lastAccess [string, optional]: Zeitpunkt des letzten Zugriffs im ISO-Datumsformat z.B. 2025-01-01T14:00:00.

AUSGABEN #

bool

Gibt true zurück, wenn ein Zugriff aktuell erlaubt ist, andernfalls false.

BEISPIELE #

# Prüft, ob seit dem letzten Zugriff ein definierter fester Zeitpunkt, `09:00` oder `15:00`, erreicht wurde oder 120 Minuten vergangen sind.
$Schedule = @{
  useFixedTimes = $true
  fixedTimes = @('09:00', '15:00')
  intervalMinutes = 120
  lastAccess = '2025-01-01T08:00:00'
}
Test-PartnerSchedule -Schedule $Schedule
# Prüft, ob seit dem letzten Zugriff mindestens 30 Minuten vergangen sind.
$Schedule = @{
  intervalMinutes = 30
  lastAccess = '2025-01-01T14:00:00'
}
Test-PartnerSchedule -Schedule $Schedule

HINWEISE #

  • Verwendet die aktuelle Systemzeit Get-Date für alle Prüfungen.
  • In Unit-Tests kann Get-Date für konsistente Ergebnisse gemockt werden.
  • Fehlt lastAccess, wird automatisch der kleinstmögliche Datumwert angenommen, sodass der Zugriff immer erlaubt ist.