Domino 9 und frühere Versionen > ND8: Entwicklung
Evaluate-statement liefert manchmal falsches Ergebnis
DAU-in:
Ich beiße mir seit Tagen schon die Zähne an einer eigentlich einfachen Geschichte aus.
In einem Workflow werden mit dem Evaluate-Statement Formeln ausgewertet um festzustellen, welche Workflowschritte tatsächlich erlaubt sind. Die Formeln setzen sich zusammen aus einer Abfrage auf die Rollen des Benutzers und teilweise der Abfrage von Feldinhalten.
@Contains(@UserRoles; "[xxxxx]") & oldStatus = "NameAlterStatus"
Wenn ich die Formeln in berechnete Felder pinne, erhalte ich eine 1, wenn ich die per evaluate rechne in der ScriptLib, kommt manchmal eine 1 und manchmal eine 0 raus. Ich finde absolut keinen Anhaltspunkt, warum es einmal so und einmal so ist.
Gibt es irgendwelche Einschränkungen für die Berechnung von der Dokumentenseite her?
P.S.: Version 8.5.2 deutsch
marschul:
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)
Tode:
Du arbeitest aber nicht zufällig mit einem Agenten, der entweder per RunOnServer gestartet wird oder unter "Run on behalf" einen anderen Benutzernamen eingetragen hat? Denn dann würde die Formel die UserRoles des AGent- Signers bzw. der eingetragenen Person berechnen.
Unabhängig davon stimme ich meinem Vorredner zu: Mit @Contains fühle ich mich in den Zusammenhang auch nicht zu 100% wohl, obwohl es sicherlich funktioniert und ich das schon oft gesehen habe. Ich würde auch mit @IsMember arbeiten...
Gruss
Tode
Peter Klett:
Wenn es mit Feldern funktioniert, warum berechnest Du es nicht in versteckten Felder (berechnet zur Anzeige) und greifst im Script auf die Felder zu?
Alternativ würde ich mir nur mal @Userroles über das Evaluate ausgeben lassen, vielleicht kannst Du dann erkennen, warum es nicht klappt. Spielt vielleicht noch Groß-Klein-Schreibung mit? Dann solltest Du die Werte mit @LowerCase oder @UpperCase auf den gleichen Stand bringen.
marschul:
Oder testest Du in einer lokalen Replik / Kopie ohne konsistente ACL? Da werden die Rollen nämlich ignoriert...
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln