an R4 client the following warning message is displayed:
"Lotus Notes: This design element has been modified by a later version of
Notes. Saving any changes could cause a loss of design information". While
this message should be taken serious by the programmer it nonetheless
can become annoying if you are sure that your agent will keep
working if you re-store it under R4. Unfortunately there is no built-in
way to prevent this message from appearing.
The following piece of code - written as an agent itself - removes the design
note's field responsible for this message.
Please be aware that this code uses undocumented features of Notes, so
precautions like backing up your original code should be taken.
Sub Initialize ' ++++++++++++++++++++++++++++++++++++++++++++++++++++++ ' + Agent "Remove R5 designer warning" ' + sub Initialize ' + lm/edcom 25-APR-2001 ' + =================================================== ' + This agent changes another agent from R5 to R4 design; ' + Since there is no other way (at least none that I know of) it loops ' + through all possible Note IDs from 0x0001 to 0xFFFF; if the agent ' + isn't found within this range and misspelling can be excluded as a ' + reason the range has to be redefined (resulting in longer ' + processing time !). ' + Once the agent to be changed is found the design note field ' + "$DesignerVersion" is removed. This field obviously was introduced ' + with R4, it isn't found in R4 and earlier agents (if an agent ' + has been created or saved in R5 its design note contains this field ' + with a value of "5") ' + ' + USE THIS AGENT AT YOUR OWN RISK ! Be sure to make a ' + backup copy of the agent before manipulating it !! ' ++++++++++++++++++++++++++++++++++++++++++++++++++++++ Dim sn As New NotesSession Dim thisdb As NotesDatabase Dim coll As NotesDocumentCollection Dim doc As NotesDocument Dim agnt As NotesAgent Dim strTitle As String Dim strFlag As String Dim strL As String Dim strR As String Dim strNID As String Dim intSuccess As Integer Dim intPos As Integer Dim lngCnt As Long intSuccess = False ' preset the SUCCESS flag Set thisdb = sn.CurrentDatabase strTitle = Ucase(Inputbox("Enter the agent's title: ", "CHANGE AGENT FLAGS")) ' looping Note IDs 0001 to FFFF For lngCnt = 1 To 65535 strNID = Hex (lngCnt) Set doc = thisdb.GetDocumentByID (strNID) ' is there a document with this Note ID ? If Not doc Is Nothing Then ' if doc has an item "$AssistFlags" it must be an agent's design note If doc.HasItem ("$AssistFlags") Then ' does the design note belong to our agent ? If Ucase(doc.GetItemValue("$TITLE") (0)) = strTitle Then ' if doc has an item called "$DesignerVersion" it will display the warning message under R4 If doc.HasItem ("$DesignerVersion") Then Call doc.RemoveItem ("$DesignerVersion") Call doc.Save (True, True) End If ' set the SUCCESS flag for a final message intSuccess = True Exit For ' no further looping necessary End If ' UCASE($TITLE)... End If ' HasItem($AssistFlags) End If ' not doc is nothing Next If intSuccess Then Msgbox "The agent " & strTitle & " won't tell you any longer that it
was modified by a later version of Notes.", _ 64, "AGENT FLAGS CHANGED" Else Msgbox "An agent named " & strTitle & " could not be found",
64, "AGENT FLAGS NOT CHANGED" End If End Sub