Liest die im Wert b eines EDIFACT- oder EANCOM-DTM-Segments kodierte Zahl aus und gibt sie als ganze Zahl zurück. Der DTM-Formatcode a (Datenelement 2379) legt fest, wie der Wert b interpretiert wird.
Beispiel: In DTM+2:30:804' ist der Wert 30 und der Formatcode 804 – also eine Menge von 30 Tagen.
Nur bestimmte Formatcodes liefern eine Zahl. Sie lassen sich in drei Gruppen einteilen:
801–814– reine Mengenangaben, z. B. eine Anzahl von Tagen.107–110– die Nummer eines Tages, einer Woche oder eines Monats innerhalb eines Jahres bzw. Monats.6–9– ein Kalenderdatum mit einer angehängten Zahl. Zurückgegeben wird nur diese Zahl; der Datumsteil lässt sich mit der Funktion edifact/eancom DTM to timestamp parsing ermitteln.
Für die Verarbeitung gelten folgende Regeln:
Das Ergebnis ist eine ganze Zahl. Führende Nullen werden ignoriert, ein Vorzeichen (
+oder-) ist zulässig.Der Zahlenteil wird nicht gegen einen Wertebereich geprüft.
Führende und nachfolgende Leerzeichen im Formatcode
awerden entfernt; die Groß-/Kleinschreibung spielt keine Rolle.Der Wert
bwird unverändert verwendet und darf keine Leerzeichen enthalten.
Parameter
Parameter | Beschreibung |
|---|---|
| DTM-Formatcode (Datenelement 2379), z. B. |
| Der zu verarbeitende Wert aus dem DTM-Segment. |
| (optional) Teil eines Zeitraums, der zurückgegeben wird. |
| (optional) Fehlerbehandlung, wenn
Default: |
| (optional) Erzwingt einen leeren Wert. Bei |
Formatcodes
Formatcodes, die ein Datum, eine Uhrzeit oder einen Zeitraum ohne Zahlenkomponente darstellen (z. B. 102, 203, 718), werden zurückgewiesen. Für diese Formatcodes ist die Funktion edifact/eancom DTM to timestamp parsing vorgesehen.
Die vollständige Definition aller Formatcodes finden Sie in der Codeliste des UN/CEFACT-Datenelements 2379: UN/CEFACT UNCL 2379.
Beispiele
Die Parameter c, d und e sind leer, sofern nicht anders angegeben.
Parameter a | Parameter b | Ergebnis |
|---|---|---|
6 | 2015022 (Monatshälfte) | 2 (zweite Hälfte des Februar 2015) |
6 | 2015023 (Monatshälfte) | 3, der Bereich wird nicht geprüft |
7 | 2024031 (Woche des Monats) | 1 (erste Woche des März 2024) |
8 | 202403021 (Schicht des Tages) | 1 (Schicht 1 am 2. März 2024) |
9 | 2024030205 (Zeitabschnitt des Tages) | 5 (Zeitabschnitt 05 am 2. März 2024) |
107 | 366 (Nummer des Tages im Jahr) | 366 |
108 | 53 (Nummer der Woche im Jahr) | 53 |
110 | 31 (Nummer des Tages im Monat) | 31 |
801 | 120215 (Anzahl der Jahre) | 120215 |
801 | 007 (Anzahl der Jahre) | 7 |
801 | -12 (Anzahl der Jahre) | -12 |
804 | 30 (Anzahl der Tage) | 30 |
813 | 7 (Wochentag, Montag = 1) | 7 |
Fehlerbehandlung
Parameter a | Parameter b | Parameter d | Parameter e | Ergebnis |
|---|---|---|---|---|
8 | 20240302 (Schicht des Tages) | Abbruch mit Fehler, die Schicht-Ziffer fehlt. | ||
102 | 20240301 | Abbruch mit Fehler unable to parse '20240301' with format code '102', da der Code ein Datum darstellt. | ||
102 | 20240301 | empty | Leerer Wert (leerer Zeitstempel mit gesetztem Empty Flag). | |
801 | 12A (Anzahl der Jahre) | Abbruch mit Fehler unable to parse '12A' with format code '801'. | ||
801 | (leer) | Abbruch mit Fehler unable to parse '' with format code '801' (leerer Wert). | ||
801 | 2147483648 (Anzahl der Jahre) | Abbruch mit Fehler, der Wert überschreitet den Integer-Bereich. | ||
801 | ABC (Anzahl der Jahre) | now | Aktuelles Datum mit Uhrzeit. | |
801 | true | Leerer Wert, |