In short, no. Indeed, except in a very small doc this might not be the best solution. Anyway, there is another route to discovering the same relationships: explode the original listing note and apply a prototype to all the exploded note. That prototype, whose own edict should be disabled, should have an edict like this:
The above is from one of my own docs where I’ve linked every author to any - in my case - paper of which they are an author. In natural language we might describe it thus:
Make a link, of link type ‘
authored’ to every note of prototype ‘
Paper’ whose ‘
$Authors’ (multi-value) attribute contains a value that is an exact match for the ‘
$Name’ of the note executing the
For completeness, if the target attribute in the papers were a single-value String field, for example
$MyString, then we can use a less processor intensive find query using the ‘
==’ equals operator. Thus:
So, why an edict and not a rule? Because in a document of size, that query, with all the ‘
.contains()’ calls can take a while to run and a rule runs constantly. Edicts (or a manual stamp using the same code) are a better choice as they run once on creation or being edit and then only once an hour. In truth, if this linking task only needs doing once, a stamp might be a better option.
To give an idea of use at scale, in my example above I was linking 2116 Author notes (generated by exploding a list of $Authors) to 1169 Conference Paper notes they had (co-)written.
Once done, the Roadmap dialog can be used to show the articles linked from a particular author’s note. This might seem less accessible info than using agents. But, in the scenario above, imagine trying to work in a document with over 2,000 agents running!