I have an application (written in R5, no special R6 features used in code) where a user can click a button to “tag” a mail document (the user clicks a button, which creates a document field). When the mail document is tagged, the process then creates what I’ll call a “control document” in another database. The database that contains the control documents has a scheduled agent that checks all the other mail files to find the same document so they can get the same tag applied.
These '“duplicate” documents are simply when usrs have been copied on an email. Note: The mail document that gets tagged might not be the original document, but one of the copies.
Right now, I capture the following values to try to find the duplicate documents:
-
Document UNID (universalid)
-
$MessageID
-
$Orig
-
Subject
I capture additional information, but it is not pertinent to finding the duplicate documents. However, are there other fields that might help with this?
The checks are made against the following to try to determine whether a document in another Db is a duplicate. Also, of course, the checks are only made when the values exist.
o If the documents has a $MessageID that is longer than 4 characters, and they are equal.
o If the UNID is the same.
o If the subjects are equal (minus all the characters such as linefeeds, carriage returns, slashes, etc.).
o If the $Orig = $Orig or if $Orig does not exist, does it equal the UNID?
The control record processing has to look at more than 700 mail DBs to try to find the duplicate documents, so I started using a relational DB to store the UNID and DB.filepath for every document. Then, the control processing can query the relational DB to get the names of only the DBs that contain the same UNID documents.
This is a problem because our hit ratio has dwindled.
Can anyone suggest what elements (combined) would possbily give me a higher hit ratio? For example, if I store the UNID, $Orig, and DB filepath, then I could possibly check for UNID = UNID or $Orig = Orig (where I would set the Orig variable to the $Orig if it exists or to the UNID), etc.
The relational DB is fairly large, so I only want to store enough information to get a list of “possible duples” and let the control processing check all the possibilities before it creates the tag in the duplicate email document.
Our processing is fairly conservative and we know that we will miss some duplicate documents, which means that a user may have to tag the same document in another mail DB. We are simply trying to cut down on the number of documents the users have to tag.
So, the bottom line is: What elements should be checked to determine whether an email is a duplicate across several DBs (i.e., a document where the recipient was copied or also included in the sendto list when the eamil was sent).
FYI: I am aware of the UNID, OID (changes), GNID (not useful for this), NID, IID (changes), GIID (changes).
Thanks in advance for any thoughts on this.
Coni