Skip to main content link. Accesskey S
  • Log In
  • Help
  • IBM Logo
  • IBM Notes and Domino wiki
  • All Wikis
  • All Forums
  • Home
  • Product Documentation
  • Community Articles
  • Learning Center
  • IBM Redbooks
Community Articles Product Documentation Learning Center IBM Redbooks This category IBM iNotes 9.0 Social Edition - Administering IBM iNotes 9.0 Social Edition - Using IBM Notes 9.0 Social Edition IBM Notes Traveler 9.0 - Administering IBM Notes Traveler 9.0 - Using Lotus Notes 8.5.3 Documentation Lotus Notes Traveler 8.5.3 Administration Documentation Lotus Notes Traveler 8.5.3 Usage Documentation Custom Search Scope...
Search
Community Articles > Lotus Notes > IBM Lotus Notes 8 Recent Contacts and Type-ahead features: FAQs
  • New Article
  • Share Show Menu▼
  • Subscribe Show Menu▼

About the Original Author

Robert Ransdell
Contribution Summary:
  • Articles authored: 1
  • Articles edited: 1
  • Comments Posted: 0

Recent articles by this author

IBM Lotus Notes 8 Recent Contacts and Type-ahead features: FAQs

IBM Lotus Notes 8 Recent Contacts and Typeahead features: FAQs and more Robert Ransdell Software Developer IBM Software Group Westford, MA May 2009 Abstract: This article provides answers to frequently asked questions about the IBM® Lotus® Notes® 8 Recent Contacts feature and the Typeahead ...

Community articleIBM Lotus Notes 8 Recent Contacts and Type-ahead features: FAQs

Added by Robert Ransdell | Edited by IBM contributor Robert Ransdell on October 2, 2009 | Version 7
expanded Abstract
collapsed Abstract
No abstract provided.
Tags: 8.0.2, 8.5, 8.x
IBM Lotus Notes 8 Recent Contacts and Type-ahead features: FAQs and more


Robert Ransdell

Software Developer
IBM Software Group
Westford, MA


May 2009



Abstract:
This article provides answers to frequently asked questions about the IBM® Lotus® Notes® 8 Recent Contacts feature and the Type-ahead drop-down list in Local Contacts and the Search directory.


1  FAQ's
 

Q. How does Lotus Notes determine who goes into Recent Contacts?


A
. Your Recent Contacts are the people you communicate with the most. Lotus Notes determines this by keeping track of the number of times you send and receive mail from each person. After you send an email or close an email after reading it, Lotus Notes stores the contacts' information and uses it to determine your Recent Contacts.

NOTE: If you read an email only in the preview pane, Lotus Notes will not process the contacts' information unless you have selected to “Mark documents as read when opened in preview pane” in your Basic Notes Client Configuration preferences.  


Q. Are integrated IBM Lotus Sametime chats added to my Recent Contacts?


A.
If you choose in Notes preferences to save your chat to the Notes mail file, the participants of the chat are used to determine your Recent Contacts as well. Their information is added when the chat is saved.


Q. How does Lotus Notes determine the order in my type-ahead list?


A.
Lotus Notes does this the same way that it determines who goes in your Recent Contacts. After you send an email, or close an email after reading it, Lotus Notes stores the sender's or recipients' information and uses it to determine the order for your type-ahead drop-down. Contacts that you send or receive e-mail from more frequently will appear higher on the type-ahead drop-down list.


Q. How long do people's names stay in my Recent Contacts list?


A.
There is a maximum number of people who can be in your Recent Contacts; the default is approximately 3000. (You or your administrator can change the maximum number of contacts allowed with the Notes.ini parameter   DPAB_MAX_DIP_TABLE_SIZE=3000.)

If you have more than the maximum number of contacts, the people you communicate with the least will be deleted from your Recent Contacts whenever your Recent Contacts are updated, which happens approximately every seven days. If you do not have more than the maximum number of contacts, no contacts will be deleted.


Q. How do you add people to your Recent Contacts?


A.
You cannot add or edit your Recent Contacts. However, if you would like to edit a Recent Contact's information, or if you are worried someone might drop off of your Recent Contacts, you can add that person to your My Contacts list. You cannot, however, manually make someone appear higher in your type-ahead list.


Q. How do you delete people from your Recent Contacts?


A.
If you have a bad email address in Recent Contacts, you can remove it, but the procedure is a bit tedious:

NOTE: You can delete a Recent Contact only in Notes 8.0.1 and later.

1.        If you have not already, open your Contacts database; select Recent Contacts in the left-hand navigation pane.
2.        Right-click on the contact you would like to delete, and select Delete from the context menu.
3.        Select Trash in the navigation pane at left , and click Empty Trash in the action bar above the message list.
4.        Send an email to yourself.
5.        Restart Notes.


Q. How do you turn off Recent Contacts?


A.
To do this, follow these steps:

1.        Delete all Recent Contacts by following the steps in the “How do you delete people from your Recent Contacts? Answer above.

Tip:
You can select all recent contacts by clicking the first contact on the list and then holding down the Shift key as you click the last contact on the list. You can then right-click on any contact in between.

2.        Select File > Preferences, and click on the Contacts section.
3.        Select the check box next to “Do not automatically add contacts to the Recent Contacts view.”

To do this for all users, use the Notes.ini parameter DisableDPABProcessing=1 .


Q. How do you turn off type-ahead?


A.
To do this, use these steps:

1.        Select File > Preferences, and click on the Basic Notes Client Configuration section.
2.        Check the option “Disable type-ahead for all name fields and use the Notes Basic type-ahead.”

To do this for all users, use the Notes.ini $DISABLE_TYPEDOWN=1.


Q. Can you synchronize your  Recent Contacts with your BlackBerry?


A.
Although you can choose to synchronize your contacts with your BlackBerry, your Recent Contacts are not included in this.  

2  Technical details


This section explains key terms that are relevant to Recent Contacts and type-ahead:  

DPAB,or “Dynamic Personal Address Book”.
DPAB is a repository of recently seen high-value contacts. It is represented in the user's Personal Contacts as Recent Contacts.


DIP,or “Dynamic Interest Profiler”.
DIP controls the weighting that determines the order of the type-ahead drop-down list in Local Contacts and the Search Directory.

This weighting represents the user's relationship to a person. It is based on the number of times the user sends and receives mail from that person, either as a To or CopyTo recipient. The DIP weighting is not visible to the user.

User Summary.
The DPAB/DIP starts processing the names on unread mail when the Note is closed. The DPAB/DIP does not process mail from the preview pane, unless the user has selected to mark documents viewed in preview as READ.

Processing is also done when the user sends mail. It's done in background queues so as to not disrupt the user, collecting the list of names and queueing up that list for DIP weighting.

Next, the names that are new to the DIP list are queued up to be added to the user's Recent Contacts. For each new recent contact, a new Recent Contact record is created. This record is created from the server contact when that can be found. If it cannot be found, the Recent Contact record is still created, but it contains only the information that was available from the mail.

A special case is made for Groups. The Group Recent Contact contains only a stub record with no members. It was assumed that information in the Recent Contact group record was more likely to be obsolete than the content of a Person record. The members of the group are retrieved from the server copy of  the group record when they are needed.

The information in Recent Contacts is updated from the server contact information once every seven days.

The Recent Contacts and their weighting value are used when creating the type-ahead drop-down list. The names displayed in both the Local Contact type-ahead drop-down and the Search Directory drop-down are sorted by “weight”, not alphabetically, either by first or last name. Weight is defined as how often a person or group has appeared in message address fields.

For the Local Contacts drop-down, names are obtained from local Contact records, which include Recent Contacts, My Contacts, and any additional local address books the user has set up in user preferences.


For the Search Directory, results are obtained from the server directories and are limited to fifty matches. The drop-down displays a maximum of twenty names sorted by weight. Weight values are not displayed.

With a common name such as “John,” it's possible that a search might not return the person you are searching for. In that case, it might be better to use part or all of the surname.

DPAB/DIP Aging.
The DIP table does not purge any entries; however, it's possible for the user to manually delete a Recent Contacts record. This feature is available in releases 8.01 and higher.

Recent Contacts does, however, have a maximum record count. The default maximum record count is approximately 3000, which can be changed via the Notes.ini parameter DPAB_MAX_DIP_TABLE_SIZE=1.

When the recent contacts are being updated, any low-weight records exceeding the maximum count will be deleted from Recent Contacts. The number of Recent Contact records can temporarily exceed the maximum number as the low-weight records are not purged until the weekly update.  

3 Other functionality
 

Moving Recent Contact records to My Contacts
 

Recent Contacts are not editable. If you want to modify the information on a Recent Contact or are concerned that an occasionally used contact might “age off” the Recent Contacts, you should move the contact to My Contacts, using the Move to My Contacts button at the top of the view (see figure 1).

Figure 1. Move to My Contacts button



Removing Recent Contacts
 

If you happen to get a bad email address into Recent Contacts, you need to fix the problem in both the Recent Contacts and in the weighting table, as follows:

1.        Delete Recent Contact entries.
2.        Delete Contacts Trash.
3.        Send mail to yourself to cause DIP to clear recent history flags. This is important because the code will not re-add a recent history name.
4.        Restart Notes.  

Excluding addresses from Recent Contacts


The notes.ini setting DPABRemoveRule=  is the  primary Recent Contacts filter list.

If the user wanted to filter out all the addresses from the widget company.  All of those addresses contain a sub-string of widget. For example tom@widget.com, bob@widget.com etc. Setting DPABRemoveRule=widget will cause Notes to ignore all the widget addresses when creating Recent Contact entries.   Now if the user also wanted Notes to ignore the addresses from the foobar company they would add foobar to the list separated by a comma. DPABRemoveRule=widget, foobar.

In addition to the DPABRemoveRule list, the user can set Notes.ini DPABRemoveRuleSetting=1.
When DPABRemoveRuleSetting=1 is set,  the addresses containing sub-strings =exchange and /exchange will also be  filtered out without being explicitly added to the list by the user.

Ambiguous Names dialog box
 

The Ambiguous Names dialog box comes up when the code finds multiple hits when trying to resolve mail addressing (see figure 2). This can occur whenever there are multiple Jill Smiths or, more likely, when the name is slightly different due to formatting, for example, in the case of John T. Doe and John T Doe.

If the Ambiguous Names dialog is coming up where you do not expect it, check Recent Contacts and My Contacts for entries that can be removed.

Figure 2. Ambiguous Names dialog box



Managed users
 

Recent Contact records are stored in the same file as the Local Contacts. The Recent Contacts for an Admin Assistant will be combined with the Recent Contacts that were created from the Mail files they are managing.  

Roaming users


Because the Recent Contacts are stored with the Local Contacts, that information roams with the user. Starting in Notes 8.5 the user's DIP information is roamed so that the type-ahead drop-down list order is consistent.  

BlackBerry synchronization


You can synchronize Notes contacts with BlackBerry contacts if you choose the option to store a copy of the local contacts in the mail file. However, Recent Contact records are not currently replicated as part of this copy, so the BlackBerry cannot use this information.  

Template developer information
 

The type-ahead drop-down list is presented whenever the template form creates a native OS-style “Names”- type field with the attribute “Look up names as each character is entered”.  

Disabling DPAB/DIB and Standard Type-ahead


If you want to disable DPAB/DIP/RecentContacts, you should probably first follow the “Removing Recent Contacts” steps to remove all the Recent Contacts. Then select the check box in User Contacts Preferences for “Do not automatically add names to the Recent Contacts view”, before restarting Notes (see figure 3).

Enabling the “Do not automatically add names to the Recent Contacts view” preference  sets DisableDPABProcessing=1 in the Notes.ini.

Figure 3. Contacts Preferences dialog




Notes Standard Type-ahead can be disabled via Preferences > Basic Notes Client Configuration. Select “Disable type-ahead for all name fields and use the Notes Basic type-ahead” from Basic Notes Client Configuration (see figure 4). This action sets   $DISABLE_TYPEDOWN=1 in the Notes.ini.


Figure 4. Basic Notes Client Configuration dialog



DPAB/DIP Flow
 

The flow of DPAB/DIP is diagrammed in figure 5.

Figure 5. DPAB/DIP Flow (h
igh level)

            Documents Opened or Created

    Edit                NEM                        SameTime                Recent Contacts
    d/dsave.c        nem/nemsub.cpp                ??        |                (DPAB entries)
    |                NEMAddRLToHistory                |                Created
    |                NEMAddRLToHistoryEx        |                        |
    |                CSubprogram::AddToHistory        |                        |
    |                        |                        |                dpabBackgroundThread
    |                        |                        |                CManageDPAB class
    |                        |                        |
    |                        |                        |
      _        |__        |                Create\Put MQ & Thread
                    |                                                THREAD_GROUP "ProcessDpab"
                    |                                                THREAD_MQ "ProcessDpabQueue"
                    |                                                        |
            DESK                                                                |
            desk\deskwct.cpp                                        DBmisc\ManageDPAB.cpp
            DeskWCT_ProcessDIPnRCusers                        CManageDPAB class

            DBmisc\ManageDPAB.cpp                                desk\ProcessDPABRequest.cpp
    __        CManageDIP class                                                all
    |                |                                                        |
    |                |                                                        |
Others:                Create/Put MQ & Thread                                        desk\deskmsg.cpp
    |        THREAD_GROUP "PostToDip"                                        Main MQ
Recent                 THREAD_MQ "PostToDipQueue"                        
Collaborators
    |
Total Recall
    |        dipBackgroundThread                                                Main MQ
    |_        CManageDIP class                                                XML command
            XML command                                                        |
                    |                                                        |
                    |_ (Java) DIP handler        |
                                                    |                |
                                                    |                Weighted List
                                                    Queue                |
                                                    |_        DIP          |
                                                            Processing


The name information is captured whenever you send or receive mail or calendar invitations. The hook routine for this capture is:

DeskWCT_ProcessDIPnRCusers
    edit\d\dsavq.c\DocMailAndSave – Mail Only
        edit\d\dsave.c\DocSave – Save Mail
    nem\nemsub.cpp\FindDuplicateHistory – New Mail/Sametime Chats

The DIP weighting uses a count value and an importance value. The count value is constructed from:

•        Sent To [one per contact] - Stores the number of emails sent by the user to each given person (as identified by email address).
•        Received From [one per contact] – Stores the number of emails received from each person (as identified by their email address).
•        Cc To [one per contact] – Stores the number of times a person (as identified by their email address) is carbon copied on e-mails received or sent by the user.

The importance value represents the relationship between the user and the person, as identified by their email address.  

Type-ahead flow
 

edit\t\tvalue.c ProcessTextValue processes the key strokes from the user. When the user pauses in his/her entry, these key strokes (token) are sent through the IPC to the Java™ side.

The Java side packages up the token as an IPC name lookup request against either local or server contacts.

Wct\notes.process\tonotes\namelookuprequest.cpp does the lookup and sends the results back to the Java side. A maximum of fifty names are retrieved.

The Java code gets the weight from the DIP table and displays the drop-down widget in weighted order. A maximum of twenty names are displayed. When the user makes a selection, the address from the item of focus is returned to the editor through the IPC, and the editor replaces the user keystrokes with the selected item:

(Ccode)Editor gets token->(Java)Format lookup request against local or server->(C code)Lookup request done->(Java)DIP weighting applied->(Java)List trimmed and sorted on weight->(C code)User selection replaces token  

Resources
 

•        How many type-ahead recent contacts can display in Lotus Notes?:
http://www-01.ibm.com/support/docview.wss?uid=swg21320717

•        Can you disable the Recent Contacts feature using a policy?:
http://www-01.ibm.com/support/docview.wss?uid=swg21368098

•        IBM Lotus Notes and Domino 8 Deployment Guide
http://www.redbooks.ibm.com/abstracts/sg247506.html?Open

•        Lotus Notes documentation (incl. the InfoCenter):
http://www.ibm.com/developerworks/lotus/documentation/notes/

•        Lotus Notes and Domino wiki:
http://www-10.lotus.com/ldd/dominowiki.nsf

•        IBM Software Support site:
http://www-01.ibm.com/software/support/index.html?ibmsst=allSupport


About the author

Robert Ransdell lives in Massachusetts and has been working for IBM for thirteen years, eight of which he's worked on the Notes client.
     
expanded Attachments (0)
collapsed Attachments (0)
expanded Versions (11)
collapsed Versions (11)
Version Comparison     
VersionDateChanged by              Summary of changes
13Dec 3, 2012 9:12:38 AMCraig Lordan  IBM contributor
12Dec 3, 2012 9:06:59 AMLDD Webmaster  IBM contributor
11Jan 10, 2012 6:12:09 PMRobert Ransdell  IBM contributor
9Oct 5, 2009 2:15:52 PMPam Gilday  IBM contributor
8Oct 5, 2009 2:00:00 PMPam Gilday  IBM contributor
8Oct 5, 2009 2:00:00 PMPam Gilday  IBM contributor
This version (7)Oct 2, 2009 4:21:08 PMRobert Ransdell  IBM contributor
6Jul 27, 2009 3:15:55 PMRobert Ransdell  IBM contributor
4Jun 10, 2009 9:48:06 AMKendra Bowker  IBM contributor
2Jun 9, 2009 11:09:16 AMRobert Ransdell  IBM contributor
1Jun 9, 2009 11:09:16 AMRobert Ransdell  IBM contributor
Copy and paste this wiki markup to link to this article from another article in this wiki.
Go ElsewhereStay ConnectedHelpAbout
  • IBM Collaboration Solutions wikis
  • IBM developerWorks
  • IBM Software support
  • Twitter LinkIBMSocialBizUX on Twitter
  • FacebookIBMSocialBizUX on Facebook
  • ForumsLotus product forums
  • BlogsIBM Social Business UX blog
  • Community LinkIBM Collaboration Solutions
  • Wiki Help
  • Forgot user name/password
  • Wiki design feedback
  • Content feedback
  • About the wiki
  • About IBM
  • Privacy
  • Accessibility
  • IBM Terms of use
  • Wiki terms of use