Rich Text 101
()
About this ebook
Rich Text 101 was a series of articles about Lotus Notes rich text that were originally posted on the Genii Software blog over a period of a few years starting in 2003. Most of the information is still accurate and useful today, and some details have been updated for the release of this ebook, including updates to reflect changes in later versions of IBM Lotus Notes, now IBM Notes 9 Social Edition.
Ben Langhinrichs
Ben Langhinrichs is a software designer living in Shaker Heights, Ohio with his lovely wife and two cats. All three of their children have left the nest. He has had stories published or accepted in many magazines and anthologies, most recently several published by Pill Hill Press and the Library of Science Fiction and Fantasy.
Related to Rich Text 101
Related ebooks
Visual Basic 2010 Coding Briefs Data Access Rating: 5 out of 5 stars5/5Jump Start Git Rating: 0 out of 5 stars0 ratingsPractical Go: Building Scalable Network and Non-Network Applications Rating: 0 out of 5 stars0 ratingsLearn Multithreading with Modern C++ Rating: 0 out of 5 stars0 ratingsElements of Android Room Rating: 0 out of 5 stars0 ratingsLotus Notes Interview Questions, Answers and Explanations Rating: 0 out of 5 stars0 ratingsNios4 FIRST STEPS Rating: 0 out of 5 stars0 ratingsJava: Tips and Tricks to Programming Code with Java Rating: 0 out of 5 stars0 ratingsJava: Tips and Tricks to Programming Code with Java: Java Computer Programming, #2 Rating: 0 out of 5 stars0 ratingsSQLite Database Programming for Xamarin: Cross-platform C# database development for iOS and Android using SQLite.XM Rating: 0 out of 5 stars0 ratingsInternet Information Services 8.5 Rating: 0 out of 5 stars0 ratingsLearn Docker - .NET Core, Java, Node.JS, PHP or Python: Learn Collection Rating: 5 out of 5 stars5/5Linux 5 Day Introduction Course Rating: 0 out of 5 stars0 ratingsThe Quick Guide to Cloud Computing and Cyber Security Rating: 4 out of 5 stars4/5Foundation Dynamic Web Pages with Python: Create Dynamic Web Pages with Django and Flask Rating: 0 out of 5 stars0 ratings10 Laps around Silverlight 5 Rating: 0 out of 5 stars0 ratingsIntroduction to HTML & CSS Rating: 4 out of 5 stars4/5Implementing C# 11 and .NET 7.0: Learn how to build cross-platform apps with .NET Core (English Edition) Rating: 0 out of 5 stars0 ratingsAnsible for IT Experts Rating: 0 out of 5 stars0 ratingsBuilding Websites with VB.NET and DotNetNuke 4 Rating: 1 out of 5 stars1/5C# for Beginners: Learn in 24 Hours Rating: 0 out of 5 stars0 ratingsC# 2010 Coding Briefs Data Access Rating: 0 out of 5 stars0 ratingsDeveloping Web Components with TypeScript: Native Web Development Using Thin Libraries Rating: 0 out of 5 stars0 ratingsBeginning XML Rating: 3 out of 5 stars3/5Persistence in PHP with Doctrine ORM Rating: 0 out of 5 stars0 ratingsPolyBase Revealed: Data Virtualization with SQL Server, Hadoop, Apache Spark, and Beyond Rating: 0 out of 5 stars0 ratings
Teaching Methods & Materials For You
Becoming Cliterate: Why Orgasm Equality Matters--And How to Get It Rating: 4 out of 5 stars4/5Speed Reading: Learn to Read a 200+ Page Book in 1 Hour: Mind Hack, #1 Rating: 5 out of 5 stars5/5Speed Reading: How to Read a Book a Day - Simple Tricks to Explode Your Reading Speed and Comprehension Rating: 4 out of 5 stars4/5The Science of Making Friends: Helping Socially Challenged Teens and Young Adults Rating: 5 out of 5 stars5/5How to Take Smart Notes. One Simple Technique to Boost Writing, Learning and Thinking Rating: 4 out of 5 stars4/5Personal Finance for Beginners - A Simple Guide to Take Control of Your Financial Situation Rating: 5 out of 5 stars5/5Troublemakers: Lessons in Freedom from Young Children at School Rating: 5 out of 5 stars5/5How You Learn Is How You Live: Using Nine Ways of Learning to Transform Your Life Rating: 4 out of 5 stars4/5Jack Reacher Reading Order: The Complete Lee Child’s Reading List Of Jack Reacher Series Rating: 4 out of 5 stars4/5The Chicago Guide to Grammar, Usage, and Punctuation Rating: 5 out of 5 stars5/5From 150 to 179 on the LSAT Rating: 4 out of 5 stars4/5Financial Feminist: Overcome the Patriarchy's Bullsh*t to Master Your Money and Build a Life You Love Rating: 5 out of 5 stars5/5The Lost Tools of Learning Rating: 5 out of 5 stars5/5Fluent in 3 Months: How Anyone at Any Age Can Learn to Speak Any Language from Anywhere in the World Rating: 3 out of 5 stars3/5Weapons of Mass Instruction: A Schoolteacher's Journey Through the Dark World of Compulsory Schooling Rating: 4 out of 5 stars4/5The 5 Love Languages of Teenagers: The Secret to Loving Teens Effectively Rating: 4 out of 5 stars4/5Everything You Need to Know About Personal Finance in 1000 Words Rating: 5 out of 5 stars5/5How To Do Motivational Interviewing: A guidebook for beginners Rating: 5 out of 5 stars5/5Principles: Life and Work Rating: 4 out of 5 stars4/5The Call of the Wild and Free: Reclaiming the Wonder in Your Child's Education, A New Way to Homeschool Rating: 4 out of 5 stars4/5Grit: The Power of Passion and Perseverance Rating: 4 out of 5 stars4/5Excellent Sheep: The Miseducation of the American Elite and the Way to a Meaningful Life Rating: 4 out of 5 stars4/5The 5 Love Languages of Children: The Secret to Loving Children Effectively Rating: 4 out of 5 stars4/5Lies My Teacher Told Me: Everything Your American History Textbook Got Wrong Rating: 4 out of 5 stars4/5Easy Spanish Stories For Beginners: 5 Spanish Short Stories For Beginners (With Audio) Rating: 3 out of 5 stars3/5Summary of The Dawn of Everything by David Graeber and David Wengrow Rating: 4 out of 5 stars4/5
Reviews for Rich Text 101
0 ratings0 reviews
Book preview
Rich Text 101 - Ben Langhinrichs
1 - Doclinks
Doclinks are an integral part Lotus Notes/Domino, and have been for a long time (OK, I started back in R3 days, and they were used then, but I don't know when they were added), but they still seem a bit mysterious to some developers. I thought I'd kick off this occasional series on rich text topics by explaining a few of the mysteries. I'll try to keep this at a comprehensible level, but no promises.
Composition of a doclink Doclink symbol
There are several parts to a doclink. The most critical parts are:
the DB Replica ID (identifies the database)
the View Universal ID (identifies the view through which to open the document - more on this later)
the Note Universal ID (identifies the actual document to open)
As might be expected, a view link View link symbol contains a null (zero filled) Note Universal ID, while a db link DB link symbol contains both a null Note Universal ID and a null View Universal ID. What is not so expected is that even though a document can be retrieved by universal id from a database (e.g. GetDocumentByUNID method in LotusScript), the view universal id is still critical. See below for the Mystery of the Invalid View.
There two other optional parts to doclink which are also related to navigation
. The first is the Server Hint, which is either blank or contains the name of a server. The second is the anchor, which exists when the link is an anchor link Anchor link symbol . The Server Hint is the subject of much confusion and consternation, as it can lead to accessing a database in Tokyo even when you have a perfectly usable replica at your server in London. See below for the Mystery of the Roving Replica.
Besides the navigational pieces, there is popup text/mouseover text, which is the text which displays in the status bar when you put the mouse over the link in the Notes client. This is known in R5 as the Link description
and is editable in the properties box when the doclink is selected. It usually contains the database title, the view title and the document subject, but these are purely for visual aid. Similarly, there are various HTML attributes which can be set using the tab of the properties box for the doclink.
Mystery of the Invalid View
It is not uncommon to try to access a doclink and have an error such as Doclink not found
come up, even though you can check and see that the document exists. There are three closely related causes for this mystery, but all three are related to the View Universal ID mentioned above.
Created from a private view - The user who created the doclink did so while accessing the document from a private view stored on their desktop. When the doclink is accessed, Lotus Notes looks to the view to see if the Note Universal ID exists in that view. If the view does not exist, Notes returns either an error that the doclink is not found or that the view is not found.
Created from a secured view - The user who created the doclink did so while accessing the document from a view which the current user is not permitted to access. When the doclink is accessed, Lotus Notes looks to the view to see if the Note Universal ID exists in that view. If the view cannot be opened, Notes returns an error that the doclink is not found or that the view is not found or that access is denied, depending on the circumstance.
Created from a view which no longer contains the document - The user who created the doclink did so while accessing the document from a view which no longer contains the document. This can happen if the document changes status, or if the doclink is created programmatically and the default view does not contain the document. When the doclink is accessed, Lotus Notes looks to the view to see if the Note Universal ID exists in that view. If the document does not exist in that view, Notes returns an error that the document has been deleted or that the linked document cannot be found in the view
.
It is important to ensure that in the normal workflow, doclinks are created from shared views, preferably from an All Documents type of view. It is also important that designers make the default view an All Documents type of view. If these are not possible, it may be wise to use a tool such as our Midas Rich Text LSX to programmatically fix
the links by re-assigning the View Universal ID in a QuerySave event or a scheduled cleanup agent. In Notes 6, you can also do this with the NotesRichTextDoclink class (but why would you when Midas is so easy?).
Mystery of the Roving Replica
One of the most annoying bugs/features with doclinks has to do with the Hint Server. This is supposed