"Hide design element from Notes" not working as expected

[I’ve already created a PBR on this in the IBM Lotus Partner Forum about a month ago. However, there was no response, so I suppose it did not get noticed. My apologies for re-posting this here…]

Steps to Reproduce:

  1. Create a Notes database.

2 Add two agents that have different names, but share the same alias name. Let’s assume the alias is “myAgent”. In the design properties of one of the agents, select “Hide design element from Web browsers”. In the other agent select “Hide design element from Notes 4.6 or later clients”.

  1. Add some action (on a form, view, whatever) that executes the formula @Command([RunAgent]; “myAgent”).

When a Notes client user chooses the above action from the menu, Notes will in some cases execute the wrong agent – the one that has been marked “Hide from Notes 4.6 or later clients”.

This bug seems to be hard to reproduce. We had one single occurrence with one of our customers under Notes 7 about two years ago. Now, with one customer using Notes 8.5, it is occurring on every workstation when a user accesses a local replica of a specific database. It does not occur when a user accesses a replica of the same database on the server. It does also not occur in our local testing environment, when we access a database inheriting its design from the same master template that is in use at the customer’s site.

Possibly related:

http://www-10.lotus.com/ldd/nd85forum.nsf/DateAllFlatWeb/316E9190BFD4E8288525778B004F2A06?OpenDocument&ca=drs-fo

Thanks for reading

Subject: I need to check with the programmability folk

but it sounds like it is using the first one it finds, which may be different in a local collection. I’ll forward on to someone who knows how the lookups are done in that area of the code.

Subject: *thank you

Subject: traced the code

and it is indeed doing a lookup that is not paying attention to that flag. So it is running the first one it finds.

I can fix this, but am a little worried about people who may intentionally be writing formulas to run agents that are otherwise hidden from the client. So a possibility would be to look first for agents available to the client, and if none found, then fall back to the entire list. Would this resolve the issue you are seeing?

Also looking for an SPR for this - it may already exist, but if not, I’ll write one.

Subject: thanks again, and yes,…

…your suggested solution would perfectly resolve my issue!