Objective: Shared Action for use in view or doc that pulls three address fields from the selected doc into a radio button field on the dialog box. User selects the appropriate address. Address gets passed back into action/agent and assembles and launches a URL for an online map.
This works fine except that @DialogBox by itself edits the underlying document and adds the AddressSelection field to the document. When I use [NoFieldUpdate] and [NoNewFields] in @DialogBox, the AddressSelection does not get passed back into the action/agent to correctly generate the URL.
If you were coding in LS, I would suggest using the document parameter of the dialogbox method: creating a tmpdoc before calling the method, then citing that tmpdoc in the dialogbox call. This way the dialog document displayed to the user is tmpdoc, and the user selections can be grabbed later in your code as tmpdoc fields. I am doing this in an application now…
If these parameters are not available in function code, maybe just change to LS…
Doing this with LotusScript as suggested, is actually pretty simple:
Dim ws As New NotesUIWorkspace, session As New NotesSession
Dim db As NotesDatabase, docDialog As NotesDocument
Set db = session.currentdatabase
Set docDialog = New NotesDocument(db)
’ assign any fields in docDialog that need to have values in the dialog when you open it
If ws.dialogbox(DIALOG_FORM_NAME, True, True , False, False, False, False, WINDOWTITLE , docDialog, True) Then
’ user pressed OK. Retrieve fields from docDialog and do something with them.
End If
If you feel strongly that you want to use a formula, you should be able to open the dialog on the current document without [NoFieldUpdate]. Then in the formula, after @DialogBox, read the field values set by the dialog, and then use FIELD fieldname := @DeleteField; to get rid of them.
Thank you all for your suggestions. I had already started putting together the LS Friday afternoon since it seemed the best way to go. However, the formula suggestion is good to tuck away for another time.