2

We are in the process of moving our mail system from Notes to Office 365 and the tool they got to help with email address translation and such will not handle applications that use stored forms in documents being routed. Is there a simple way to tell if an application is actually using stored forms?

MJ

Mike Jackson
  • 427
  • 4
  • 18

2 Answers2

1

First, a database that allows the use of Stored Forms in documents does not have a lower case "f" in the $Flags elements of the ICON note. You can access the icon not in a database using

Const NOTE_CLASS_ICON% = &H0010             '*** icon note 
Const SPECIAL_ID_NOTE& = &HFFFF0000     ' use in combination w/NOTE_CLASS when calling NSFDbGetSpecialNoteID

Dim iconNoteId&
Dim icondoc As NotesDocument

iconNoteId = SPECIAL_ID_NOTE + NOTE_CLASS_ICON
Set icondoc = db.Getdocumentbyid(iconNoteId)
If InStr(icondoc.Getitemvalue("$Flags")(0), "f") > 0 Then
    Print "Database DOES NOT support shared forms"
Else
    Print "Database supports shared forms"
End If

Second forms that support or are stored in documents have a flag in the $Info item that indicates it. This item is Rich Text and is not easily view-able in the IDE. However using the DXL version of the file via a synced Oon Disk Project (ODP) you can see it with an XML or Text editor. It looks like the sixth character is either a "I" for normal forms and a "G" for forms that are stored with the documents.

So far I have not built any code to actually test or report on the forms because turning off the capability at the DB level fixes the security issues caused by stored forms.

Newbs
  • 1,632
  • 11
  • 16
  • I'm pretty sure that forms and scripts can also send docs with stored forms, regardless of the form setting. – Richard Schwartz Aug 16 '17 at 22:56
  • @RichardSchwartz - That's correct BUT turning off at the DB level prevents it. – Newbs Aug 17 '17 at 17:20
  • Interesting. Does turning it off in databaseA prevent a script in database A from opening databaseB as a NotesDatabase object, then using databaseB.CreateDocument and sending that new doc with a stored form? If not, then that blurry line between "database" and "application" makes it a bit harder to know how to answer this! – Richard Schwartz Aug 17 '17 at 20:53
0

Examine the documents that are emailed by the applications. You could set up mail journaling to capture them if you have no other way already set up. Look for the items $Title and $Body. Their presence indicates that the document contains a stored form. You could even set up a selection formula:

SELECT @IsAvailable($Title) & @IsAvailable($Body)
Richard Schwartz
  • 14,463
  • 2
  • 23
  • 41