Which is faster, @DBLookup or @GetDocField? It seems none of us can agree either way. My own perspective is that it probably doesn't make much of a difference. Maybe if you plan on doing 10,000 calls to either method then you'll start to notice a difference, if indeed there is one. In practice it's unlikely you ever will.
What is for sure is that @Formula in whatever form can be both simple and extremely powerful. It never ceases to amaze me what you can do with a few lines of function calls. So much so that it's only ever a last resort that I turn to LotuScript.
As Chris Melikian pointed out on Wednesday, you can eliminate the need for the loop I was using with one line of code, because @DBLookup can take a multi-value key:
@Implode("<a href=\"" + @WebDBName + "/0/" + RelatedArticles + "\">" + @DbLookup( ""; "" ; "luArticles"; RelatedArticles ; "Title"; [ FailSilent ]) + "</a>"; "<br />");
In the above code RelatedArticles field is a list of document IDs and the result is a list of links with the title of the document as the text. The only drawback is that there's no way of dealing with deleted documents. Even though we've told the DBLookup to fail silently, which, in theory returns a "" null string (according to the help document), it actually returns nothing at all. If you dp a DBLookup with a seven-item key and two documents have been deleted the resulting list will only be five elements long. The null strings seem to be trimmed for you. The concatenation process then goes on to fill out the links with the titles of other documents in the list. It works but only until you start deleting documents!
Interestingly, you can't do the same thing with @GetDocField which doesn't like having a list passed to it.
Never underestimate the power of @Functions! Which reminds me of this Edit Any Field Smarticon tip from Breaking Par. Very useful if, like me, you were making-do with a half-baked solution that relied on you entering the name of the field and then a text value to assign to it.
Have good weekends y'all.