This one should be simple, but I can’t seem to figure it out. If I have an attribute $APIType. How do I find all the notes here the “has a value” argument is true?
(post withdrawn by author, will be automatically deleted in 24 hours unless flagged)
“Chagrined emoji” … see I told you it was obvious. Thanks.
For any type of attribute the query:
$AnyAttribute
is true
if the attribute AnAttribute
has a locally set value (this can also be tested with hasLocalValue(). This was added for the case where the user mistakenly set an attribute in an note using a prototype rather than in the prototype, but as here may be used more widely.
In the past it was possible (per the previous post) to, for instance, to set a local value of ""
(i.e. no string) for string-type attributes. But in recent versions (version?+) if a note is set to a value matching the default - i.e. setting a String with default ""
to ""
the attribute is treated as inheriting (which makes sense)
So, having given the background, an agent of:
$APIType
Will match all notes with a value for $APIType
. It matches both prototypes and notes using that plus any with a locally set, non-inherited value. If we query:
hasLocalValue("APIType")
we get the same. But likely in your case we want to match prototypes with a value for $APIType and notes with a local $APIType but not those inheriting one. So try:
$APIType & $Prototype==""
This will give you prototypees with a value for $APIType and notes with a value for $APIType which is not inherited from a prototype.
Does that help?
Corrected…yes, it does help and work…(was not patient enough to let the agent run). I was not familiar with a non-attributer action without a $. Cool, thanks.