Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Gogun_Beokz am 22.08.05 - 14:28:38

Titel: Formeln werden nicht ausgeführt
Beitrag von: Gogun_Beokz am 22.08.05 - 14:28:38
Hi @all

hab ein Problem und ich hoffe ihr wisst woran das liegt. Ich habe diese Validierungsformeln für eine IP, es wird jedoch nur die letzte Formel ausgeführt (dass das Feld nicht leer sein darf)...

_______________________________________________________

alph := "A" : "B" : "C" : "D" : "E" : "F" : "G" : "H" : "I" : "J" : "K":"L":"M":"O":"P":"Q":"R":"S":"T":"U":"V": "W":"X":"Y":"Z" : "," : ":" : "#" : "+" : "*";

@If(@Contains(@ThisValue;alph) & @IsNewDoc  ; @Failure("IP ist ungültig");@Success);

@If(@Word(@ThisValue;".";5) = "" & @IsNewDoc;@Success;@Failure("IP ist ungültig"));

@If(@Word(@ThisValue;".";4) = "" & @IsNewDoc;@Failure("IP ist ungültig");@Success);

@If(@ThisValue = "" & @IsNewDoc;@Failure("Sie müssen einen RNamen angeben");@Success);

Liste := @DbColumn("":"nocache";@DbName;"Übersicht";3);
@If(@Contains(Liste;@ThisValue);@Failure("Die IP existiert bereits in der Datenbank");@Success);

@If(@ThisValue = "" & @IsNewDoc;@Failure("Sie müssen eine IP-Adresse angeben");@Success)

________________________________________________________________

eine Idee?

Mit freundlichen Grüßen

G0gUn_b3ok*Z
_______________________________________________________
Titel: Re: Formeln werden nicht ausgeführt
Beitrag von: Tode am 22.08.05 - 17:44:20
das ist doch ganz einfach:

Notes ist eine Sequentielle Sprache, die immer Ihren kompletten Code abarbeitet, wenn man es Ihr nicht explizit anders sagt.

Deine erste @If- Schleife validiert damit möglicherweise in einen Failure, der Wert des Failures wird aber nicht ausgegeben, sondern im Internen "ergebnisspeicher" gepuffert.

Mit der nächsten @If- Schleife überschreibst Du diesen Puffer wieder mit dem nächsten Ergebnis.

Wenn man in der Formel- Sprache möchte, dass die Auswertung an einer bestimmten Stelle endet, dann muss man das dem Client sagen:

@If(@Contains(@ThisValue;alph) & @IsNewDoc  ; @Return( @Failure("IP ist ungültig") );@Success);

@Return() bricht die Formelausführung an einer bestimmten Stelle ab, und führt als letztes die in den Klammern befindliche Funktion aus, in Deinem Fall wird also mit einem Failure returned (tolles denglisch) und der Client sagt "IP ist ungültig"

HTH
Tode

HTH
Tode
Titel: Re: Formeln werden nicht ausgeführt
Beitrag von: Gogun_Beokz am 23.08.05 - 08:42:17
Danke für die ausführliche Antwort!

Habs ausprobiert klappt wie eine Eins.

Mit freundlichen Grüßen

G0gUn