Domino 9 und frühere Versionen > ND8: Entwicklung
Evaluate-statement liefert manchmal falsches Ergebnis
ata:
Hallole,
ich nehme die Rollenüberprüfung mit Permutation vor @UserRoles *= "[Rolle1]" : "[Rolle2]" - und das kann man dann auch noch mit @LowerCase absichern...
Ich denke das Problem liegt an etwas anderem, der Evaluate benötigt als Formel eine fixe String-Variable als Formel - also
Dim sFormula As String
Dim vRes As Variant
sFormula = {@LowerCase( @UserRoles ) *= @LowerCase( "[Admin]" : "[Author]" ) & Status = "DeinStatus"}
vRes = Evaluate( sFormula , docThis )
Toni
*edit
Die Berechnung innerhalb des Evaluate scheitert aus Kompilierungsgründen...
DAU-in:
--- Zitat von: marschul am 11.03.11 - 11:14:55 ---Mmmmh, schwierig, wenn der Code bzgl. des Evaluates nicht bekannt ist. Übergibst Du das richtige Objekt?
Eine Rolle würde ich nicht unbedingt über @Contains prüfen (entspricht einer Art case-sensitiven Volltextsuche). Ich arbeite immer mit @IsMember:
@IsMember("[xxxxx]"; @UserRoles)
--- Ende Zitat ---
@IsMember waren die ersten Versuche, lieferten aber kein besseres ERgebnis.
Die Formel wird in Konfigurationsdokumente eingetragen, und dann ausgewertet, das Ganze ist auf dem Server.
Der Agent nimmt dann via ScriptLib den Inhalt des Feldes und wertet ihn aus.
Ich habe die Formel auch bereits explizit in die ScriptLib gepackt mit einem Evaluate - manchmal klappts, manchmal nicht.
Es wird nur auf eine Rolle abgeprüft, wenn ich nur auf die Rolle prüfe klappt es immer.
Das Problem ist die Verkettung (da hatte ich mich mißverständlich ausgedrückt im Eingangsposting). Und ich könnte es verstehen, wenn es immer gar nicht funktioniert, aber es funktioniert halt manchmal. Und ich finde partout kein verbindendes Element bei den Fehlschlägen.
Ich hab auch schon die Reihenfolge geändert, den Feldinhalt mit @getField abgefragt, und um den Feldinhalt noch ein
@if(Feldinhalt = blabla; @True;@False) gesetzt, damit er merkt, dass er da etwas Boolesches auswerten soll.
Außerdem einmal die Ansichtsindices gelöscht (Zugriff auf die Workflowdokumente) und die DB komprimiert).
pram:
sind Konfigurationsdokumente = Profildokumente?
diese werden oft gecached, so dass der Server u.U. einen alten Inhalt sieht.
Ich würde mir mal die beteiligten Felder an der Serverkonsole mit msgbox ausgeben. Kann mir kaum vorstellen, dass die Formel manchmal ein falsches Ergebnis liefert.
Gruß
Roland
koehlerbv:
Am Evaluate liegt es bestimmt nicht - höchstens an seiner Verwendung. Anita, such in einer anderen Richtung. Wenn Du mehr Code lieferst und mehr zu dessen Umständen sagst, können wir vermutlich auch mehr dazu sagen.
Bernhard
Tode:
Also nochmal: Du hast einen Agenten, der auf dem Server läuft? Wie wird der Agent getriggert?
Das wäre nämlich LOGISCH, wenn der mal geht und mal nicht: Wenn der nämlich immer im Kontext des Entwicklers läuft (und das tun Serveragenten typischerweise), dann funktioniert er, wenn Du ihn testest (weil zufällig Benutzer = Signer) und er funktioniert NICHT, wenn ein anderer Benutzer das probiert.
Also: Beantworte unsere Fragen, liefere ein paar mehr Details, und dann können wir Dir eventuell auch helfen...
Gruss
Tode
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln