Kurze Frage.
Ihr habt in diversen Aktionen (Annehmen,Schließen,etc.) die Funktion CheckAndEvaluate, dessen Ergebnis anschließend mit IsEmpty überprüft wird:
Evalstring = |@unique(@NameLookup ( [Exhaustive]; "| + uidoc.Document.user(0) + |" ;"FullName"))|
EvalVar = CheckAndEvaluate(Evalstring, uidoc.document)
If IsEmpty(EvalVar) Then
isnotesuser = False
Else
isnotesuser = True
End If
Als Ergebnis von CheckAndEvaluate erhalte ich (Debugger) ...
EvalVar as Variant
- EvalVar(0) As String
Und bei der IsEmpty-Abfrage spring Notes grundsätzlich immer zum Else-Teil.
Fazit: IsEmpty prüft, meiner Laienmeinung nach, nicht korrekt.
Selbst wenn ich vorab (testweise) EvalVar = "" setze, springt die IF-Abfrage immer zum Else-Teil.
Hat jemand einen Tipp, woran das liegen könnte?
Hmm, ärgerlich.
Jetzt bin ich an einem Punkt, wo ich langsam Probleme bekomme. :)
Ich habe nun im Feld User eine Emailadresse drinstehen, die beim Evaluate wirklich einen leere Wert zurückliefert.
Inhalt User (mit Anführungszeichen, etc.):
"Vorname Nachname" <abcdef@domain.de>
Somit erhalte ich bei ...
if trim(EvalVar(0)) ="" then
... die Fehlermeldung:
Variant enthält keinen Container
Ein EvalVar(0) existiert halt nicht und EvalVar ist "".
Hat evtl. jemand einen Tipp, wie ich das dauerhaft lösen kann? Am besten direkt in der Funktion CheckAndEvaluate, um auch weitere Inkompatibilitäten abzusichern?
Danke.
[Update]
Irgendwie ärgert mich dieser Quick&Dirty-Workaround. Aber so funktioniert es halt:
isnotesuser = False
If Isarray(EvalVar) Then
If Trim(EvalVar(0)) <> "" Then isnotesuser = True
Else
If EvalVar<>"" Then isnotesuser = True
End If