Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1133
  • Last Modified:

Hide when Formula required for a button in Lotus notes

Hello,

Hoping for some help with a hide when formula below which sits behind a "Approve" button within a workflow document.
-------
Current Hide when
Assign = ""|
@LowerCase(Assign) !=@LowerCase((@Name([CN];@UserName))) |
Status_K!=NULL

-----

This formula works OK for a single user in the "Assign" field which is on the form however when there are multiple entries seperated by a semi colon  i.e one of five people can approve the button remains hidden.

Not quite sure on how to do this in a formula argument . In english it would be something like :

if a your name is one of many listed in the assign field  seperated by a semi colon then unhide the button.

The answer can not be use a role as the assign field is dynamic i.e depending on who you are you will have different approvers.


Hoping you can help.

Thanks
0
ianmcalder
Asked:
ianmcalder
1 Solution
 
iPinkyCommented:
try to exchange the part @LowerCase(Assign) !=@LowerCase((@Name([CN];@UserName)))

with !@ismember( @LowerCase((@Name([CN];@UserName))); @LowerCase(Assign) )
0
 
Sjef BosmanGroupware ConsultantCommented:
My guess... There is often a LOT of confusion about the formula to use as hide-when. I assume it's like that in this case. But actually, it is simple mathematical logic that you have to apply. I'll chop it up in digestible parts for you.

ismember:= @LowerCase(@Name([CN];@UserName))=@LowerCase(Assign);
isstatusok:= Status_K!=NULL;
showwhen:= ismember & isstatusok;
hidewhen:= !showwhen;

By the way, what is NULL? In formula language it doesn't exist, so it's assumed to be a variable without a value, probably with an empty string value. Hence it works. But someone evil could assign a value to NULL, e.g. NULL:= "0" and your formula will stop to work. Theoretically speaking of course...
0
 
mbonaciCommented:
One small suggestion, instead of
    !@IsMember

use
    @IsNotMember

It sounds better:
    "Hide when current user is not member of the field Assign"

@IsNotMember( @LowerCase( @Name( [CN]; @UserName ) ); @LowerCase( @Name( [CN]; Assign ) ) )
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
iPinkyCommented:
mbonaci: well.. if we go with tips: my all time best tip is to form the formula to "Show when" and put !( ) around it...

cause with this technique it's much easier (usually) to get the right formula, basically sjef_bosmans approach, which also lacks the last line: which would be "hidewhen"; (cause, obviously the last line is simply an assignment from showwhen to hidewhen, but the formula wouldn't know what to do with it and would basically always result return a "No main or selection expression in formula"
0
 
Sjef BosmanGroupware ConsultantCommented:
I merely explained mathematical logic, and I made all the intermediate steps... Of course it can all be written as one statement, as you suggested, using parentheses and without the 'variables', but that was beside my point.
0
 
ianmcalderAuthor Commented:
Thanks for your efforts !!!
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now