$[if $[v1]$ zs_contains 'Tag' 'd' 'Monat' 'M' 'Jahr' 'y' '']$

Ziel: Überprüfen, ob der Wert in $[v1]$ einem der Begriffe „Tag“, „d“, „Monat“, „M“, „Jahr“ oder „y“ entspricht.

Beobachtung:
Sobald im Vergleich der Wert 'd' auftaucht – also z. B. $[v1]$ = Tag und im Ausdruck 'd' enthalten ist – liefert die Bedingung immer ein falsches Ergebnis, obwohl 'Tag' korrekt enthalten ist.

Alle anderen Vergleichswerte wie 'M''y''Monat', etc. funktionieren problemlos.


Vermutung:

Möglicherweise wird das kleine 'd' intern mit dem d-Kommando von Tomedo (für Tage, Datumsrechnungen, Zeiträume) verwechselt oder kollidiert an dieser Stelle mit einem reservierten Ausdruck.


Frage in die Runde:

  • Ist dieses Verhalten bekannt?

  • Gibt es Einschränkungen für Buchstaben wie 'd''M' oder 'y', wenn sie innerhalb von Bedingungen verwendet werden?

Ich freue mich über Rückmeldungen – und gern auch über offizielle Hinweise, ob das so gewollt ist oder ein Bug vorliegt.

Folgende Syntax

$[if $[v1]$ zs_contains 'Tag' 'd' 'Monat' 'M' 'Jahr' 'y' '']$

liefert bei Tag > d immer ein falsches Ergebnis. Liegt das möglicherweise daran, dass das kleine "d" für das d-Kommando reserviert ist. Mit allen anderen Eingaben klappt es.

Gefragt in Bug von (38.8k Punkte)
Bearbeitet von
0 Punkte

1 Antwort

Moin Christian,

 

ich kann dein Problem noch nicht ganz erfassen.

Ich habe die Syntax bei mir einmal nachgestellt und sie funktionert.

Sobald in v1 das Wort "Tag" enthalten ist, wird "d" ausgegegen. Analog für Monat und Jahr.

Was genau funktioniert bei dir nicht? Wie genau wäre dein gewünschtes Ergebnis? Was genau meinst du mit

liefert bei Tag > d immer ein falsches Ergebnis

 

willst du am Ende sowas dastehen haben wie dMy?

Beantwortet von (30.9k Punkte)
0 Punkte

Hallo Andreas

habe dir eben per Mail ein CKE geschickt.

Es funktioniert auch diese Version nicht 

$[if $[E1]$ zs_equals 'd' 'Tag' 'M' 'Monat' 'q' 'Quartal' 'y' 'Jahr'  '']$

Im Beispiel unten lese ich per regex aus dem Karteieintrag DOK einen bestimmten Inhalt aus.
Die Kürzel d,M,q,y möchte ich über das if-Kommando umwandeln.
Es funktioniert immer nur bei "d" klappt es nicht. Ich vermute schwer dass der begriff von Tomedo reserviert ist.

Aha!

Du meinst also nicht 

$[if $[v1]$ zs_contains 'Tag' 'd' 'Monat' 'M' 'Jahr' 'y' '']$

sondern 

$[if $[v1]$ zs_equals 'd' 'Tag' 'M' 'Monat' 'y' 'Jahr'  '']$

 

Das Problem kann ich nachstellen und vermute auch, dass das if-Kommando dann aufs d-Kommando zurückgreifen möchte. Hab es auch mit diversen Tricks nicht hinmogeln können. 

Da muss Tomedo ran ;-)

welche möglichen Ergebnisse hat denn E1? Sind diese begrenzt?
Ja die sind begrenzt. Ich habe das Problem anderweitig gelöst. Habe aber lange geknobelt und stundenlang den Fehler gesucht. Weil das sehr komplexe Aktionen sind, war die Analyse sehr aufwändig. Ich habe jetzt nur der besseren Darstellung wegen, das einfache Beispiel gewählt.
19,701 Beiträge
28,146 Antworten
50,835 Kommentare
33,405 Nutzer