Response documents
Practically, using the Notes client software, a response document is created from a special form, which automatically links the new document to the one which is selected in the currently open view. Technically, a response document is a document that contains a reference to another document in a field named '$REF'. The reference is established using the parent documents note ID, which uniquely identifies the parent note.
Note:
Parent-child relationships can be visualized using special views. See your Domino designer documentation on how to set up views to show response documents properly.
To establish a parent-child or parent-response relationship between documents, you need to have two documents from the same database. There is only a one way assignment: from child to parent.
Here is a step-by-step example how to establish a parent-child relationship between two documents:
| parentNote childNote connection database |
"Startup runtime system"
AbtLnEnvironment startUp.
"Create a connection t local databases"
connection := AbtLnConnection local.
"Open one of the sample databases provided with the feature"
database := connection openDatabase: 'VASAMPLE\VASAMPLE.NSF'.
"Create a new document and associate it with the 'Main Topic'
form. Execute default value formulas"
parentNote := database newNoteFromComputedForm: 'Main Topic'.
"Set the Subject field to 'ParentNote'."
parentNote at: 'Subject' put: 'ParentNote'.
"Store the document. Execute input translation and input
validation formulas"
parentNote store.
"Create a new document and associate it with the'Response' form.
Execute default value formulas"
childNote := database newNoteFromComputedForm: 'Response'.
"Set the Subject field to 'Response'."
childNote at: 'Subject' put: 'Response'.
"Establish the parent/child relationship"
childNote becomeResponseNoteTo: parentNote.
"Store the document"
childNote store.
"Close the database"
database close.
"Shutdown runtime system"
AbtLnEnvironment shutDown.
There are two ways to identify child documents to a parent. You can either use a view that displays the response hierarchy and iterate using the children protocol with the tree nodes. Or you can use the responseNotes protocol with an AbtLnNote instance.
Here is a step-by-step example how to retrieve the number response documents of each Main Topic document in a discussion database.
| allParents connection database |
"Startup runtime system"
AbtLnEnvironment startUp.
"Create a connection t local databases"
connection := AbtLnConnection local.
"Open one of the sample databases provided with the
feature"
database := connection openDatabase:
'VASAMPLE\VASAMPLE.NSF'.
"Read all the main topic documents"
allParents := database allNotesFromQuery:
'Form="MainTopic"'.
"Print the subject of each document that has
responses and print the
number of responses to each document"
allParents do: [ :e |
| responses |
( responses := e responseNotes) isEmpty
ifFalse:
Transcript nextPutAll: ('The document :
', (e fill at: 'Subject'));
nextPutAll: (' has ', responses size
printString, ' response documents');
cr.
]
].
"Close the database"
database close.
"Shutdown runtime system"
AbtLnEnvironment shutDown. AbtLnEnvironment
You can certainly access each individual response document that is returned from the responseNotes message.
Last modified date: 01/29/2015