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: #
Wenn die Prüfung fester Tageszeiten aktiviert ist
useFixedTimes, wird geprüft, ob eine dieser definierten Zeiten zwischen dem letzten ZugrifflastAccessund dem aktuellen Zeitpunkt liegt. Falls ja, gibt die Funktiontruezurück.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 ebenfallstruezurü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 FormatHH: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-Datefür alle Prüfungen. - In Unit-Tests kann
Get-Datefür konsistente Ergebnisse gemockt werden. - Fehlt
lastAccess, wird automatisch der kleinstmögliche Datumwert angenommen, sodass der Zugriff immer erlaubt ist.