Sunteți pe pagina 1din 26

1.

What is Lotus Notes


Ans: Lotus Notes® is powerful, multifaceted software for Windows® and Macintosh computers that gives you
instant access to all the information that is important to you. You can use Notes to send and receive Internet
mail, schedule appointments, browse the Web, contribute to Internet newsgroups, and take advantage of the
Welcome Page for tracking all your important daily information.

2. How many levels of security that we can implement on applications and what are
they?
7 Levels:
 Network Level
 Authentication
 Server Level
 Database Level
 Design Element Level
 Document Level
 Field Level

Network Level: Providing security from any network threats to access domino server using firewalls
User Authentication: Password
Server Level: Provide security using server document, having multiple passwords, cross certificates etc..
Database Level: Provide security using Access Control List (ACL)
Design Elements Level: all readers and above and all readers and above & all Authors and above in the
security tab of Form/View properties
Document Level: Provide security using Readers and Authors field
Field Level: Provide security by specifying options in the Security Options section that exist in 3 rd Tab of
field properties like must have at least editor access to use, enable Field encryption , Electronic
signatures.

3. Two Replica’s of a database is not following same ACL. What could be the reason?
Ans: may the option “Enforce a consistent Access Control List across all replicas” in advanced tab of DB
ACL not checked.

4. I have Manager Access to the DB, but I am not able open the application link. Why?
Ans: “Don’t allow URL open” option may be checked from first tab of the database properties

5. How many maximum number of Roles that can exists in a database?


Ans: 75

6. What is the difference between Group and User Role?


Ans: Both are same in the way, they represent a set of Users or Servers, will be given explicit access to the
design elements. But scope of a Role is at Database level only and this will be defined in Database ACL
where as a Group is defined in Names.nsf and its scope is at Server level.

Definition Given in the Help:


Role defines a set of users and/or servers. Roles are similar to groups that you can set up in the
Domino Directory. However, unlike groups, roles are specific to the database in which they are created.
Once you create a role, you can use it in database design elements or functions to restrict access to those
elements or functions. For example, you may want to allow only a certain group of users to edit certain
documents in a database. You could create a role named "DocEditors". That role would then be added to the
Authors fields of those documents, and assigned to those users who are allowed to edit those documents .

7. What is Maximum Internet name and password?

Ans: Notes cannot identify Users who have Internet or intranet browser access to a database in the same
way Notes users are identified. Use the "Maximum Internet name & password access" setting in the ACL to
control the maximum type of access that Internet or intranet browser users have to a database. The list of
available access levels mirrors the standard access levels for Notes users.
This setting applies to users who use name-and-password authentication or access the server
anonymously over the Internet and connect to servers using either the TCP/IP port or the SSL port. This
setting does not apply to users who have SSL client certificate IDs and who access the database over the
Internet on the SSL port. Users with SSL client access receive the level of access specified in the database
ACL.
Add an entry for the group Anonymous to the database ACL, if appropriate for this database.
Then select the maximum access level you want to assign to all Internet and intranet users who use name-
and-password authentication for a particular database. Users who access a Notes database over the Internet,
either anonymously or by using name-and-password authentication, never have an access level higher than
what is specified as the "Maximum Internet name & password access" level.
Caution The "Maximum" access level overrides the access level that a user may have been
explicitly given in the database ACL.
For example, a user, Sandra Smith/West/Sales/Acme, can use a name and password to access a
server using a Web browser. If Sandra Smith/West/Sales/Acme is assigned Editor access in the ACL and the
"Maximum Internet name & password access" setting is Reader, the lower of the two access levels applies
and Sandra is allowed only Reader access. Similarly, if Sandra Smith/West/Sales/Acme is assigned Reader
access in the ACL and the "Maximum" access setting is Editor, Sandra is allowed only Reader access. If
Sandra Smith also uses a Notes client to access the database, the "Maximum" access setting is ignored and
Sandra is allowed Editor access.
The default for this option is Editor access. Tasks such as creating folders, views, and agents, do not apply to
Internet users

8. Scenario: I have manager access in database ACL, but I am just able to read the
documents and not able to edit or any other actions. What could be the reason?
Ans: May be “Maximum Internet name and password” is set as reader.

9. There is a Readers field in document and its value is null, Who can read the
documents?
Ans: All Users can be able to read the documents.

10. Scenario: There is a Readers and Authors fields in a document. I have Manager
Access in Database Acl and my name is mentioned in readers field but it is
mentioned in Authors field. Can I able to read the document? Why?
Ans: Yes, You can read and also edit the document. In absence of Authors field, Readers field can restrict the
users irrespective the access level that they have. Means if a user is having Manager access and his name is
not mentioned in readers field then he can’t read the document. But in presence of Authors field, Authors field
will take the precedence and user will be given access.

11. Scenario: I have Editor access in database ACL, and my name is not mentioned in
Authors field of the document. Can I able to read and edit document? Why?
Ans: Yes, you can read and edit the document. Authors field can only restrict the users having Author or less
than an Author access in Database and can’t restrict users having the access above the author.

12. There is no Authors field in the document, but I have Author access to the
database. Can I edit the documents? If yes, Can I edit the documents created by
others?
Ans: No you cannot edit the document, not even created by you.

13. Scenario: I have Author access to the database. Can I edit the documents? Can I
edit and delete the documents?
Ans: 1. You can create the documents if and only if you have given access to create documents.
2. You can edit your own documents if there exist Authors field in document and your name is
mentioned in it.
3. You can delete your own documents if and only if you have given access to delete documents

14. Scenario: I have manager access in database ACL, and my name is not mentioned
in Readers field of the document. Can I able to read? Why?
Ans: No, You can not read the document, because document’s readers field restrict the users from reading
document irrespective of their access level to the database.

15. What is the difference between Names.nsf and Directory Assistance?


Ans: Names.nsf is Primary nab. DA we will be used to specify secondary Nabs

16. How Many secondary Nabs a Server can have?


Ans: Any number.

17. Secondary nab is having some groups. If those groups are specified in database
ACL, will they work?
Ans: yes, they will work.

18. What is the Directory Assistance (DA) and how server recognizes what is primary
and what is secondary?
Ans: Primary nab is names.nsf which was created while installing domino server. Secondary nabs are
specified in the Directory Assistance(In Server Document).

19. What are the form events that can use lotus script, which run on the web?
Ans: WebQueryOpen & WebQuerySave
The only formula events that work in a browser are WebQueryOpen and WebQuerySave in forms, and
these events are restricted to executing the @commands ToolsRunMacro or RunAgent (which run an agent
on the Domino server).

20. Can a controlled access section work on the web? How can we achieve this in the
web?
Ans: No, this can be achieved using Hide and When Formulas.

21. Can tabbed table work on the web? How can we achieve this in the web?
Ans: No, this can be achieved using Div statement.

22. What are the CGI Variables?


Ans: CGI is a standard for connecting external applications with HTTP servers. CGI programs allow you to do
some background processing on a Web page. To run CGI programs, place them in the default cgi-bin
directory or in a directory that has execute access.

23. What is a Query_String?


Ans: The information that follows the question mark (?) in the URL that referenced this script.
Eg: OpenForm in http://localhost/testdb.nsf/readeraccess?OpenForm

24. What is “In Memory” document for ?OpenAgent?


Ans:
 For an agent activated in a view through the Notes client UI, the in-memory document is the
document highlighted in the view.
 For an agent run from a browser with the OpenAgent URL command, the in-memory document is
a new document containing an item for each CGI (Common Gateway Interface) variable
supported by Domino
 For an agent run from a browser with @Command[ToolsRunMacro], the in-memory document is
the current document.
o In the case of WebQueryOpen, this is the document before Domino converts it to HTML
and sends it to the browser
o in the case of WebQuerySave, this is the document before Domino saves it.

25. Can more than one value be passed as key in case of getDocumentByKey? If Yes,
How can we do it?
Ans: Yes, Using array we can pass more than one value as key.
Eg:
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim keys( 1 To 2 ) As String
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Set view = db.GetView( "By Category and Author" )
keys( 1 ) = "Expense Report"
keys( 2 ) = "Robson Da Silva"
Set doc = view.GetDocumentByKey( keys )

26. To work @DBLookup/GetDocumentByKey, should column accessing be first


column that is to be sorted or any column that is the first sorted column in view?
Ans: In order to work @DBLookup, What ever the key column mentioned should be the first sorted column in
the view and it is no need to be the first column in the view.

27. What is the lotus script equalent to @DBLookup?


Ans: GetdocumentByKey

28. What are the font-end classes in Lotus-Script? Specify them in order.
Ans: UI Classes:
a. NotesUIWorkspace
b. NotesUIDatabase
c. NotesUIView
d. NotesUIDocument

29. Can Notes UI Classes used in web?


Ans: No, Notes UI Classes can’t be supported in web.

30. How to get current document handle in the web?


Ans:. Set notesDocument = notesSession.DocumentContext

31. What are the Back-End classes in Lotus-Script? Specify them in order.
Ans:
a. NotesSession
b. NotesDatabase
c. NotesView
d. NotesViewEntryCollection/NotesDocumentCollection
e. NotesDocument
f. Notes Item

32. What is disadvantage in using ODBC Connnector?


Ans: It needs odbc drives.

33. How to hide the attachments that will be displayed end of the document?
Ans: There are 2 ways to hide attachments from documents, Those are:
a. Write an HTML instruction “<NoScript>” at the end of the form. This hides everything that will be
attached to the document.
b. By using $V2AttachmentOptions field anywhere in the form and setting it to text, editable,
computed or computed for display and set the value as text 0 i.e “0”.

34. What is Hierarchy in DomDoc?


Ans: Library, File room, File cabinet, Binder category, Binder Title

35. What is the physical and logical structure in DomDoc?


Ans: I Don’t know

36. What is Spanning? How it works in DomDoc?


Ans: I Don’t know

37. Can we give JavaScript instructions in Lotus script? What about vice versa?
Ans: Yes, We give JavaScript instructions in Lotus script through Print statement. But reverse is not possible.

38. When a document is selected to open, How domino will open the document?
Ans: While document is opening domino will check for following to open the document using a form.
a. Checks weather form is stored in the document. If it is, It reads the form name from $Title field
and open the document using that form.
b. If $Title is not available in the document, then it checks for Form Formula written in View. If it is
there it uses that form to open the document.
c. If Form formula also not there, then Domino checks for the form that is used to create the
document. If it exists, then open the document using that form.
d. If that one also not there, then it check for any default form available in the database. If it is there,
domino uses that form to open the document
e. If default form also not there in database then domino don’t open the document.

39. What is a $Title field? Can you update its value using Lotus Script?
Ans: If the form is stored in the document, fields named $TITLE, $Info, $WindowTitle (if the design specifies a
window title), and $Body are available in the document. $TITLE contains the name of the form.
It uses RemoveItem to delete the five fields that make up a stored form in a document: $TITLE, $INFO,
$WINDOWTITLE, $BODY and $ACTIONS.

Sub removeStoredForm_
( collection As NotesDocumentCollection )
Dim doc As NotesDocument
Set doc = collection.GetFirstDocument()
While Not(doc Is Nothing)
If doc.HasItem( "$TITLE" ) Then
formName = doc.GetItemValue( "$TITLE" )
Call doc.ReplaceItemValue( "Form", formName )
Call doc.RemoveItem( "$TITLE" )
Call doc.RemoveItem( "$INFO" )
Call doc.RemoveItem( "$WINDOWTITLE" )
Call doc.RemoveItem( "$BODY" )
Call doc.RemoveItem( "$ACTIONS" )
Call doc.Save( True, True )
End If
Set doc = collection.GetNextDocument(doc)
Wend
End Sub

40. How can I get handle to all the documents that I have selected from a view for
processing using lotus Script?
Ans: Set notesDocumentCollection = notesDatabase.UnprocessedDocuments

41. I want to process some set of documents from a database. In how many ways, I
can Get the handle to these documents?
Ans: There are different ways to get handle to set of documents. All these will return a NotesCollection
Object.
a. Set notesDocumentCollection = notesDatabase.UnprocessedDocuments
b. Set notesDocumentCollection = notesDatabase.AllDocuments
c. Set notesDocumentCollection = notesDatabase.FTSearch( query$, maxdocs%, [ sortoptions% ],
[ otheroptions% ] )
Parameters
query$
String. The full-text query. See below for the syntax.
maxdocs%
Integer. The maximum number of documents you want returned from the query. Set this
parameter to 0 to retrieve all documents (up to 5,000 - see the Usage section for more
details) that meet the search criteria.
sortoptions%
Integer. Optional. Sorting options. Choose one.
FT_DATE_ASC (64) sorts by document date in ascending order.
FT_DATE_DES (32) sorts by document date in descending order.
FT_DATECREATED_ASC (1543) sorts by document creation date in ascending order.
FT_DATECREATED_DES (1542) sorts by document creation date in descending
order.
FT_SCORES (8) sorts by relevance score (default).
otheroptions%
Integer. Optional. Search options. Combine options by adding.
FT_DATABASE (8192) includes Domino databases.
FT_FUZZY (16384) searches for related words. Need not be an exact match.
FT_FILESYSTEM (4096) includes files that are not Domino databases.
FT_STEMS (512) uses stem words as the basis of the search.
FT_THESAURUS (1024) uses thesaurus synonyms.
Return value
notesDocumentCollection
NotesDocumentCollection. A collection of documents that match the full-text query, sorted by the
selected option.

d. Set notesDocumentCollection = notesDatabase.Search( formula$, notesDateTime, maxDocs% )

Parameters
formula$
String. A Notes @function formula that defines the selection criteria.
notesDateTime
A cutoff date. The method searches only documents created or modified since the cutoff
date. Specify Nothing to indicate no cutoff date.
maxDocs%
Integer. The maximum number of documents you want returned. Specify 0 to receive all
matching documents.
Return value
NotesDocumentCollection

e. Set notesDocumentCollection = notesDatabase.UnprocessedSearch( formula$, notesDateTime,


maxDocs% )

f. Set notesDocumentCollection = notesDatabase.UnprocessedFTSearch(query$, maxdocs%, [


sortoptions% ], [ otheroptions% ] )

g. Set notesViewEntryCollection = notesView.AllEntries


h. numDocs& = notesView.FTSearch( query$, maxDocs% )
i. Set notesDocumentCollection = notesView.GetAllDocumentsByKey( keyArray [, exactMatch% ]
)
j. Set notesViewEntryCollection = notesView.GetAllEntriesByKey( keyArray [, exactMatch% ] )

42. How many ways can we get handle to a document?


Ans: There are different ways to get handle to a document. Those are:
a. Set notesDocument = notesSession.DocumentContext
b. Set notesDocument = notesUIDocument.Document
c. Set notesDocument = notesView.GetDocumentByKey( keyArray [, exactMatch% ] )
d. Set notesDocument = notesViewEntry.Document

43. Scenario: There is a view whose selection formula is written as Select all
documents created from a form and where the Flag=1. There is an agent which
process all the documents from this view one by one through a while loop, and
make flag as 0. Before while is started CurrentDoc is set as view’s first document
and after processing of document in the loop, Setting the currentDoc as next
document of processed one. Can this agent process works fine? If not, Why?
Specify all possible ways to overcome this Problem.
Ans: No, This agent won’t run and it will through the error “Object Variable not set”, because onece a
document is processed, it will go from view the view as it’s flag value is changed to “0”. So, when the code to
get next document executes, it will through runtime error. This can be overcome in 3 different ways:
a. Get the Next document handle before saving the first document into some other temporary
notes document variable and assign the same to CurrentDoc after saving the first/ previous
document.
b. Write code to get the first document always because next document will become first
document once a previous document is processed.
c. Most Effective method (Gives more performance): Set View’s property “AutoUpdate” as
false before the while loop to specify domino explicitly, not to refresh the view in between
when ever a document is updated.

Eg: This QueryRecalc event sets AutoUpdate to False so the view is not repetitively
updated during processing.
Sub Queryrecalc(Source As Notesuiview, Continue As Variant)
Dim view As NotesView
Dim doc As NotesDocument
Set view = Source.View
view.AutoUpdate = False
Set doc = view.GetFirstDocument
Do While Not doc Is Nothing
Call doc.ReplaceItemValue("Categories", _
doc.Categories(0) & "0")
Call doc.Save(True, False)
Set doc = view.GetNextDocument(doc)
Loop
End Sub

44. What is signing and how can we do it?


Ans: when user’s private key and field value combines, then an electronic signature will be created.
but for signing a field the form should me mail enabled or the field should be present inside controlled access
section.

45. What will you do to increase the performance?


Ans: Different ways to increase the performance:
a. Update Notes to latest version (R6 improves server performance by X% compared to R5)
b. Reduce Number of @DBLookUp and @DBColumn Formulas in the form, which will take more
performance.
c. Reduce the number of views.
d. Compact the database to free the space occupied by white spaces because some of the
documents are deleted etc.
e. Try to avoid running the agents in WebQueryOpen
f. Try to avoid lot of code in onLoad event of the form.

46. What is the difference between Notes R5 & R6? OR What are the features of R6?
Ans: There is so much difference between Notes R5 and R6.
a. R6 Server performance is more compare to R5
b. R6 provides context sensitive help while programming
c. R6 has so many new @ function, @ commands.
d. R6 provides direct editing of column values in a view
e. Can create Layers (etc….)

47. Scenario: I have manager access to the database, but I am not able to read the
documents. What could be the reason?
Ans: May be because of any of these 2 reasons:
a. either doc has a reader field and that manager name isn’t present in the readers field
b. Or In the form security tab "who can read the document created form this form" the manager
name isn't present

48. What is the difference between NoteID and DocumentUNID?


Ans: Note Id varies from one replica to other replica, but doc id is same across all replicas

49. What is a NoteID? What is a DocumentUNID?


Ans:
Note ID: The note ID of a document, which is an 8-character combination of letters and numbers that
uniquely identifies a document within a particular database

DocumentUNID: The universal ID, which uniquely identifies a document across all replicas of a database. In
character format, the universal ID is a 32-character combination of hexadecimal digits (0-9, A-F).

50. What is CSS? What is its importance OR Why we use CSS in the applications?
Ans:
CSS: Cascading style sheets (CSS) give you the ability to control many aspects of your page layout, including
headers, links, text, fonts, styles, color, and margins.

Importance:
a. Consistency: We can maintain consistency throughout the application
b. Less Effort: Reduces coding effort, Means, No need to write code to apply particular style for
each item that go into design.
c. Maintenance: If any change is needed in style, we can just change the style sheet, that will be
applied through out application wherever changed classes are used and no need to go to
individual design element to apply new style. (Etc….U can list as many u want)

51. List the places where we can write CSS statements? How can we implement in the
application?
Ans: There are different ways to implement CSS in the application:
a. We can write CSS statements in a page and save the page as “[CSSFileName.css] “ and
apply this style sheet in the form using:

i. Mention the style sheet using link tag in HTML Head Content of form
"<link href=/Singdevelopment/eWork.nsf/ework.css' rel='stylesheet' type='text/css' /'>";
ii. Mention the style sheet using link tag directly in the form begging
iii. Choose Create - Insert Resource. The Insert Resource dialog box appears
b. We can add style statements with in <STYLE>….></STYLE> in the form.

c. We can apply style by writing style attribute for individual HTML tags.

d. Expand "Shared Resources" in the Design pane Select "Style Sheets" from the list of
resources. Click "New Style Sheet Resource." The Browse dialog box opens. Only files
with a CSS extension appear. Find and select the cascading style sheet you want to use
Click Open to add the style sheet to the list of style sheet resources. The Style Sheet
Resource Properties box opens, so you can change the name or other properties of the style
sheet.

52. What is @DBColumn and what is @DBLookup / what is the difference between
@DBColumn and @DBLookup?
Ans:
@DBColumn: Returns a column of values from a view or folder in a Domino database.
Syntax
@DbColumn( class : cache ; server : database ; view ; columnNumber )
Note The separator between the class and cache arguments as well as the server and database arguments
is a colon; the rest of the separators are semi-colons.

@DBLookup: Given a key value, looks in the specified view (or folder) and finds all documents containing the
key value in the first sorted column within the view. For each selected document, @DbLookup returns either
the contents of a specified column in the view, or the contents of a specified field.
Syntax
@DbLookup( class : cache ; server : database ; view ; key ; fieldName ; keywords ) or
@DbLookup( class : cache ; server : database ; view ; key ; columnNumber ; keywords)
Note The separator between the class and the cache string arguments as well as the server and database
are colons; the rest of the separators are semicolons.

Keywords:
Note This parameter is new with Release 6.
Keyword. Optional. Keywords can be concatenated.
a. [FAILSILENT] returns "" (null string) instead of an error if the key cannot be found.
b. [PARTIALMATCH] returns a match if the key matches the beginning characters of the
column value.
c. [RETURNDOCUMENTUNIQUEID] returns the UNID of the document instead of a field or
column value.

53. Can @DBLookup retrieve more than 64KB of data? If not how can we overcome?
Ans: It won’t return data more than 64KB. We can overcome this by using @PickList in the Notes Client
based applications.

54. Can I display a RichText value in the view? If Yes, How can we do it?
Ans: @Abstract

55. Scenario: There is a field in a document, which was created using the Lotus script.
I want to display its value in the view column. I have created view column and
given the formula as field name. But, value is not displaying in the view. What
could be the reason? What should I do to display the field in the view?
Ans:

56. What is the difference between Readers field and an Authors field?
Ans:

57. What a user with depositor access in Database ACL can do? Can read / Edit his
own documents?
Ans:

58. What is an Anonymous Entry and What it will do? What is a default Entry in
Database ACL?
Ans:

59. How to save a document?


Ans: We can save a document in any of the following ways:
a. @command[(FileSave)] – in formula
b. document.forms(0).submit() – in JavaScript
c. call Doc.Save(true) –Lotus script

60. How many type of views are there? What are they? Where Private views will be
stored?
Ans:

61. Scenario: There is a scheduled agent, which runs daily @ 4 A.M. Suddenly it
stopped running. What could be the reason?
Ans:

62. What are the different reasons in which a scheduled will fail to run?
Ans:

63. What is the difference between Computed, Computed for display and Computed
when composed?
Ans:

64. I want to access Server date and time through script. How can I get it?
Ans:

65. What is @Now? Is it returns the value from Local System or Server?
Ans: Returns the current timedate. @Now Returns Date Time value from the server always.
Syntax
@Now( flags ; serverNames )
Note The flags and serverNames parameters are new with Release 6.
Parameters
flags
Keyword or keyword list. Optional.
[SERVERTIME] gets the time-date from the server containing the database if
serverNames is not specified or from serverNames ifserverNames is specified.
[LOCALTIMEONERROR] gets the time-date from the local computer if an error occurs
getting it from a specified server.
serverNames
Text or text list. Optional. A server name or a list of server names. This parameter applies
when [SERVERTIME] is specified.

66. Which @ function returns Server Date Time in all conditions?


Ans: @Created

67. What is the difference between @Contains and @IsMember?


Ans:

68. What is @Member returns?


Ans: Given a value, finds its position in a text list.

Syntax: @Member( value ; stringlist )


Eg: This example returns 0.
@Member("Sales";"Finance":"Service":"Legal")

69. How to get the DbName? Is there any alternate @function retrieve the same with
less number of functions used?
Ans: @ReplaceSubString(@Subset(@DBName;-1);”\\”;”/”)
Yes, There @WebDbName which returns the same at single shot and no need to use 3 separate
$functions. It is effective @function to get DBName.
Note: @WebDbName returns URL format of Database path

70. what is @Abstract do?

71. what is difference between @ReplaceSubstring and @Replace?


Ans:

72. What is @Date?


Ans: Translates numbers for the various components of time and date, then returns the timedate value.
Syntax
a. @Date( year ; month ; day )
b. @Date( year ; month ; day ; hour ; minute ; second )
c. @Date( time-date )

73. How can we prevent saving of a document in the web?


Ans: Ans: To prevent the document from being saved, the document must contain a text field named
“SaveOptions” with "0" as its value.

74. What @Command([NavigateNext]) and @Command([NavigatePrev]) do?


Ans:

75. What is the difference between List and Array?


Ans:

76. how can we declare dynamic arrays? What does Preseve mean?
Ans:

Dynamic Array: You use a dynamic array if you want to defer declaring the number of the array’s elements
and dimensions until run time, or if you want to vary the array size at one or more points during execution of
the application. To declare a dynamic array, you use a Dim statement (or one of its variations) with an empty
subscript list (empty parentheses), as in the following example:
Dim myDynamicArray() As String
Since this Dim statement contains no information about the dimensions of the array, the statement simply
reserves the name myDynamicArray as the name of a dynamic array whose elements will be of type String:
When you declare a dynamic array, it has no dimensions or elements, and no storage is allocated for it. The
array is unusable until you specify its dimensions and their bounds in a ReDim statement, which defines the
array size and allocates storage for the elements and initializes them. The syntax of the ReDim statement is:
ReDim [ Preserve ] arrayName ( bounds ) [ As dataType ]
Preserve: When you define the size of a dynamic array in the first ReDim statement that applies to it, this
permanently defines the number of dimensions for that array. You can later change the values of any of the
lower or upper bounds in the bounds list as long as the ReDim statement you use does not include the
Preserve keyword. LotusScript then reallocates the amount of storage for the array that the bounds list
specifies and initializes the array’s elements to the default values appropriate to their data type. If you do
include Preserve in a ReDim statement, the only bound that LotusScript lets you change (by incrementing) is
the upper bound of the last array dimension, in which case LotusScript allocates the appropriate amount of
additional storage and initializes the additional array elements. You cannot change the number of dimensions
of an array or the data type of its elements with a ReDim statement.

77. What is DECS And LEI?


Ans:

78. What is replication?


Ans:

79. What are the different reasons in which replication fails?


Ans:

80. Scenario: In a replica there are 1000 documents and in other replica 500
documents. After Replication both replicas are not having same number of
documents? What could be the reason?
Ans: May be Document level security is implemented. Means document is having Readers and Authors fields
and Destination server name is mentioned in them.

81. Scenario: I have deleted some of the documents from a replica. But after
replication, deleted documents are reappeared? What could be the reason?
Ans: Reasons can be 2 Reasons:
a. May deletion stubs, by which domino understands a document is deleted and during the
replication it will delete from other replica. If deletion stubs are deleted before replication, Domino
doesn’t understand which document is deleted and don’t pass the deletions.
b. If document undergone editing once it has been deleted, Then Editing takes precedence, and will
reappear after replication.

82. Where can I check Replication history.


Ans: Right click on DatabaseReplicationHistory

83. How to load a sub form based on a value that is selected from a combo box?
Ans:
84. What is a environment variable?
Ans:

85. What is a profile document? What is its significance?


Ans:

86. What is @URLEncode and @URLDecode?


Ans:

87. How many an agent can be triggered?


Ans: 2 ways 1.on Event 2. On schedule

88. Where can we write instructions to run an agent?


Ans:

89. List the Different kind of $$Forms available in Domino? What is difference between
$$ViewTemplateForDefault and $$ViewTemplateFor[ViewName]?
Ans: Available $$Template forms:
a. $$ViewTemplate for viewname
b. $$NavigatorTemplate for navigatorname
c. $$ViewTemplateDefault
d. $$NavigatorTemplateDefault
e. $$SearchTemplate for viewname
f. $$SearchTemplateDefault

90. How can I provide navigation in web for viewing next and previous pages of a
view?
Ans: Create 2 Buttons Previous and Next and formulas as follows.
a. Previous: @DbCommand("domino";"viewpreviouspage")
b. Next : @DbCommand("domino";"viewpnextpage")

91. How to get the value of checkbox field from javascript?


Ans:

92. How to get the value of a combo box field from javascript?
Ans: doc.fiNam.options[doc.fiNam.selectedindex].value
doc.fiNam.options[doc.fiNam.selectedindex].text

93. How to validate an Email through javascript?


Ans: An Email can be validated using regression function.

94. Scenario: I have Author access to the database and there is a Authors field in the
document. Can I delete my own from the document’s authors list? If Yes, Will it
trough any error? If Yes, How to over come it (Means, in which particular event I
should write the code in order to system not through an error?
Ans:
95. Can I stop an user from deleting a document explicitly using some code? If yes,
where this code goes?
Ans:

96. How many default lines that a view can have? How to specify the No of lines to be
displayed in a view?
Ans: 30 default lines will exist for a view. We can change or specify number in:
a. Right click on embedded viewspecify Line to display in Web Access Section that exists in
First Tab of Embedded View
b. We can specify the same in server document also
c. Using &count=30 in building the url..

(i.e) inbox?openview&count=30

97. Scenario: User1 is having the Manager access in the Database. there are two
Fields Authors and Readers field in the document. User1 was listed in the Authors
Field and User2 in readers Field…What access has User1 and Usre2 on the
document?
Ans:
a. User1 –can see and edit the document
b. User2 – can see the document but can’t edit the document.

98. How can we dynamically add Readers and Authors field?


Ans:
Eg1:
Dim readerNames(0 to 1) As String
readerNames(0) = "CN=Rex Rightway/O=Pings"
readerNames(1) = "[Admin]"
doc.Readers = readerNames
' If field did not previously exist, tell Notes
' it's a Readers field.
doc.GetFirstItem("Readers").IsReaders = True
Eg2:
Dim variableName As New NotesItem( notesDocument, name$, value
[, specialType% ] )
OR
Set notesItem = New NotesItem( notesDocument, name$, value [, specialType% ] )

specialType%
Optional. Constant of type integer. Indicates if a text item should be of type Names, Readers, or Authors.
Must be one of the following constants: NAMES, READERS, or AUTHORS. To use specialType%, the
value parameter must be a string or array of strings.

99. Can an agent call another agent?


Ans:
Note: Everyone (well, almost everyone) knows that agents can call other agents. A LotusScript agent can
call another LotusScript agent using the Run method.
When using the Run method, the calling and the called agents will be executed on the same machine (either
client or server). An agent running on the client can execute a server-based agent using the RunOnServer
method.

1. In which case we create Readers and Authors fields in a document? Give one
scenario:
Ans: when we want to give Authors in the ACL to edit the documents & readers field to restrict users to see
documents.

2. Did you use Roles in your application? If yes, Explain scenario?


Ans: Yes , a Role named “PublicCommunity” This is to assign to users who can access the public workgroups
and categories. (Give your own examples).

3. There are some Roles assigned in an server application. If we make a local replica
copy shall those Roles work or not?
Ans: Yes, Roles will work in local replica also, if and only if the option “Enforce a consistent Access
Control List across all replicas” in advanced tab of DB ACL checked. Otherwise Roles won’t work.

4. Is there anyway that can we make the available of securities (ACL for local
copies(databases))?
Ans: Check the option “Enforce a consistent Access Control List across all replicas” in advanced tab of
DB ACL.

5. In what way Profile documents are different from other documents?


Ans:
a. The way profile documents are displayed and the values in the fields passed back.
b. Only one profile document per form can exist for each user of a database. Or, only one profile
document can exist for a database if that form is available to all users.
c. Profile documents allow for quick data retrieval, because they are cached
d. Profile documents are somewhat invisible -- they do not display in views and are not included in a
document count for the database
e. A user must have at least Author access in the ACL of a database to create a profile document

6. explain the scenario where you have used profile documents?


Ans: Specify your own experience.

7. How can we create profile documents?


Ans:
a. Create a form with fields to hold the values you want to store in profile documents.
b. Choose Design - Form Properties and deselect "Include in Menu."
c. Save the form.
d. Do not include the form in any view.
e. Create a button, action, or agent that uses either the LotusScript NotesDatabase
GetProfileDocument method or UIWorkspace.EditProfile, or the Formula language
@Command([EditProfileDocument]) to create or access the document.

8. What are the functions that we use for profile document?


Ans: You can use @SetProfileField and @GetProfileField to set and retrieve field values in profile documents
in both Notes and Web applications. In Notes, you can create or edit a profile document by using
@Command([EditProfileDocument]) or @SetProfileField. In Web applications, use @SetProfileField to create
profile documents. Note that @Command([EditProfileDocument]) does not work on the Web.

9. How can we access the profile document through script?


Ans:
a. To set or retrieve field values for a profile document with a script, use the GetProfileDocument
method to access the document.
b. Use the IsProfile property for the NotesDocument class to determine if a NotesDocument object
is a profile document.
c. Use the NameOfProfile property to retrieve the name of the profile document.

10. What are Environment variables? Where they are stored?


Ans:
a. Environment variables are useful for saving state and data between program invocations
where no conflicts are possible. They are also useful for obtaining Domino environment
information, such as KitType, Directory, Preferences, Domain, Port, and so on.
b. which are stored in the local notes.ini file

11. What are the functions to operate the environment variable available?
Ans:
a. @Environment( variable )  To get the specified Environment variable value
b. @Environment( variable ; value )  To set the value specified Environment variable
c. @SetEnvironment( variable ; value ) To set the value specified Environment variable

12. I wrote a script in an agent to get the value of an Environment variable. But it failed
to get the value. What could be the reason?
Ans:

13. Can we get Environment variable values from other server?


Ans: Yes

14. What are Restricted and Un-Restricted agents?


Ans:
Restricted Agent: The agent can perform restricted operations because it is has been granted unrestricted rights. (like
handling OS Files, etc..)
Un-Restricted Agent: The agent is not allowed to perform restricted operations.

15. Scenario: I wrote an agent. It is running fine. When I made to Scheduled agent, it is
not working. What could be the reason?
Ans:

16. What is the minimum access level needed to create a scheduled agent?
Ans: Designer

17. How to save a document through script? What are parameters that have to be
passed and explain about them?
Ans:

18. How can a RichText field can be validated?


Ans:

19. How many ways we can compose a document?


Ans:
a. @Command([Compose];FormName)  Formula Language
b. Set notesDocument = notesDatabase.CreateDocument

20. How many possible ways that you can connect to ODBC?
Ans:

21. Explain the objects of the script classes in order to connect to ODBC?
Ans:
a. Using Fomulas
b. Using Scripts
Writing the formulas and Script to access relational databases.
The following @functions access an external database through ODBC and return a value or list of
values:
c. @DbColumn returns all the values in one column of a table, or all the distinct values.
d. @DbLookup returns selected values in one column of a table by matching keys.
e. @DbCommand passes a command to an external DBMS and returns the result.
@DbColumn and @DbLookup can only retrieve data. They can't add, delete, or modify data, or perform
other operations. @DbCommand can retrieve data or send other SQL statements that can change data.
LotusScript provides a wider range of capabilities including the ability to update the external database.

@DbColumn:
Uses data source information to activate the appropriate ODBC driver. The driver then locates the
specified DBMS, table, and column, and returns all values in that column. You can optionally
specify whether the returned list of values is sorted, whether duplicate values are deleted, and
how null values are handled.
Note @DbColumn can only retrieve data; it can't add, delete, or modify data.
Syntax
@DbColumn( "ODBC" : cache ; data_source ; user_ID1 : user_ID2 ; password1 : password2 ;
table ; column : null_handling ; "Distinct" : sort )
Parameters
"ODBC"
String argument. Indicates that you are accessing an ODBC data source.
cache
String argument. Optional. In the initial lookup, specify either "" or "NoCache." If the former
case, subsequent lookups to the same data source, you can specify "ReCache."
"" (null string) caches the results of the lookup. Each subsequent lookup to the same
location (within the same Domino session and so long as the database executing this
lookup remains open) reuses that data until you specify "ReCache." Cached data
improves performance and may be a good choice for stable data.
"ReCache" refreshes the cache with the latest data from the database. If you want to
ensure that this lookup gets the latest information, specify this option.
Note "ReCache" is new with Release 6.
"NoCache" gets the results of the lookup from the database; no cache is used. If you
want to ensure that Lotus Domino retrieves the latest information for every lookup,
specify this option.
data_source
Text. The name of the external data source being accessed. A data source indicates the
location of one or more database tables.
See "Specifying the data source."
user_ID1 : user_ID2
Text list. The user IDs needed to connect to the external database. You may need up to two
IDs, depending on the DBMS being accessed.
See "Specifying IDs and passwords."
password1 : password2
Text list. The passwords required by the user IDs.
See "Specifying IDs and passwords."
table
Text. The name of the database table being accessed.
column
Text. The name of the column from which data is being retrieved.
null_handling
Text. Specifies how null values are treated when the data is retrieved.
See "Specifying null handling."
"Distinct"
String argument. Optional. Removes duplicate values from the list before returning data.
See "Specifying Distinct."
sort
String argument. Specify "Ascending" to sort the list of values into ascending order before
it is returned; specify "Descending" to sort the list in descending order.
See "Specifying sort."
Return value
valuesFound
Text, number, date-time, or a list of these types. The values found in the column you
indicated.
See "Accessing the values found," later in this chapter.
Note If you use the option button or the check box user interface for a keywords field, Lotus
Domino updates the keyword list only when the document is composed or is loaded for editing. If
you use the Standard user interface for the list, the keyword list is updated every time the
document is recalculated.
Specifying the data source
The data source name can contain up to 32 alphanumeric characters.
@DbLookup can access data sources that have already been registered in the ODBC.INI file (or
similar registry on platforms other than Windows™).
Specifying IDs and passwords
You only need these arguments if your DBMS requires them.
Instead of storing the IDs in the @DbColumn formula, you can replace them with null strings ("").
If an ID is required, the user will be prompted for it. This is useful when you do not want other
designers to see IDs, or when you want users to enter their own IDs when accessing external
data. However, you must include IDs and passwords in formulas that run automatically (such as
an agent) because these formulas don't prompt for information.
The user IDs and passwords for accessing a data source are required only once per Domino
database session, as long as that database remains open. If the user opens another Domino
database and executes a formula that accesses the same data source, the user ID and password
will be required again.
Password parameters are necessary only when ID parameters are specified. Like IDs, passwords
can either be stored in the @DbColumn formula, or prompted for by substituting the null string. If
the database password is null, you can omit it from the formula.
For example, for the full ID/password specification, enter:
"";"" (two null strings, separated by a semicolon) to specify no ID and password, or to
prompt for both
"user_ID1";"password1" to specify one user ID and password combination
"user_ID1":"user_ID2";"password1":"password2" to specify two user ID and password
combinations
Specifying the table name
You can optionally include the name of the table's owner to remove ambiguity; use the format
"owner_name.table_name", with a period to separate the owner name from the table name. For
example:
"dbo.author"
Table can also refer to a database view in the DBMS being accessed.
Specifying null handling
Normally, null values are ignored and the resulting list is shortened (same as using the Discard
option described below).
To control how null values are handled, specify one of the following, appended to the column
parameter with a colon:
"Fail" generates this error message if the column of data contains any null values:
Null values found - canceling @Db function
No data is returned with the message.
"Discard" discards the null values, thus shortening the returned list of values. If one or
more values are discarded when the @DbColumn formula is executed, you see this
message on the status bar:
Caution: NULL values discarded from @Db list.
"Replacement value" specifies a replacement value for null values. The replacement value
must be a quoted string, but if the column is numeric or date-time, the string must be
convertible to that type.
If your formula includes a sort string argument, the list of values to be returned is sorted
before the replacement values are inserted. During sorting, all null values are placed at the
beginning of the list for an ascending sort; and at the end for a descending sort. They are
not replaced until sorting is complete. This can result in a list that has some values sorted
incorrectly. For example, if you specify "zzz" as your replacement value, all the "zzz" values
will appear at the beginning of the list, even if you sorted it in ascending order.
If one or more values are replaced when the @DbColumn formula is executed, you see this
message on the status bar:
Caution: NULL value replaced with user-defined value in @Db list
Generally, the replacement value should be one that is not likely to appear in the list as
valid data; for example, if the column is text, your replacement value might be "***" so that
you can easily find those values in Lotus Domino.
Specifying Distinct
The Distinct string argument is similar to @Unique in Lotus Domino, except that Distinct ensures
that duplicate values are removed before the data is returned. Using Distinct instead of @Unique
has two advantages:
The formula operates more quickly because the additional work is performed outside of
Lotus Domino.
You can potentially retrieve a larger amount of useful data into Domino -- since the
duplicate values are removed at the back-end, more unique values can be returned to
Lotus Domino.
Note Distinct is not supported by all ODBC drivers. If there are null values in the data and you
specify Distinct, one null is usually returned.
Specifying sort
If you use the Distinct string argument, you can append the sort parameter to it with a colon. Use
one of these keywords for the sort parameter to specify sorting of the return values:
Ascending sorts the list in ascending order.
Descending sorts the list in descending order.
If no sort string argument is specified, values are returned in arbitrary order.
Note The sort keywords are not supported by all ODBC drivers. If you attempt to use both
Ascending and Descending in your formula, you see an "Invalid argument" message.
If multiple values are returned, they are formatted as a list and are separated with the multi-value
separator designated for the current field.
@DbColumn can return no more than 64KB of data. Use the following equations to determine
how much of your data can be returned with @DbColumn.
For lookups that return text:
2 + (2 * number of entries returned) + total text size of all entries
Each text string is limited to 511 bytes; if only one text string is returned, it is limited to
64KB.
For lookups that return numbers or dates:
(10 * number of entries returned) + 6
If the user's NOTES.INI file includes the statement
NoExternalApps=1
the @DbColumn formula is disabled. The user will not see an error message; the formula fails to
execute. This applies to @DbColumn only when you use it with ODBC.
Usage
@DbColumn is intended mainly for keyword formulas. Instead of hardcoding a list of keywords
and then periodically updating that list, @DbColumn allows you to dynamically retrieve a list of
values from an external database table.
This function only works in Web applications if the remote server hosting the table from which data is
being retrieved exists on the same machine as the Domino server, which is rarely the case.

@DbCommand:

Given data source information from the ODBC.INI file (or equivalent), uses this information to
activate the appropriate ODBC driver. The driver then locates the specified DBMS, passes the
specified command to it for processing, and returns the data retrieved by that command.
Note @DbCommand only works with ODBC data sources and only with SELECT statements. If
used with statements that don't retrieve a result set, @DbCommand simply transmits the
statement. Use the ODBC capabilities of LotusScript for more extensive interaction.
Syntax
@DbCommand( "ODBC" : cache ; data_source ; user_ID1 : user_ID2 ; password1 :
password2 ; command_string : null_handling )
Parameters
"ODBC"
String argument. Indicates that you are accessing an ODBC data source.
cache
String argument. Optional. In the initial lookup, specify either "" or "NoCache." If the former
case, subsequent lookups to the same data source, you can specify "ReCache."
"" (null string) caches the results of the lookup. Each subsequent lookup to the same
location (within the same Domino session and so long as the database executing this
lookup remains open) reuses that data until you specify "ReCache." Cached data
improves performance and may be a good choice for stable data.
"ReCache" refreshes the cache with the latest data from the database. If you want to
ensure that this lookup gets the latest information, specify this option.
Note "ReCache" is new with Release 6.
"NoCache" gets the results of the lookup from the database; no cache is used. If you
want to ensure that Lotus Domino retrieves the latest information for every lookup,
specify this option
Text. The name of the external data source being accessed. A data source indicates the
location of one or more database tables. See "Specifying the data source."
user_ID1 : user_ID2
Text list. The user IDs needed to connect to the external database. You may need up to two
IDs, depending on the DBMS being accessed. See "Specifying IDs and passwords."
password1 : password2
Text list. The passwords required by the user ID(s). See "Specifying IDs and passwords."
command_string
Text. An SQL statement, command statement, or name of a procedure to be executed. See
"Specifying a command string."
null_handling
Text. Specifies how null values are treated when the data is retrieved. See "Specifying null
handling."
Return value
valuesFound
Text, number, date-time, or a list of these types. The values returned by the command_string. See
"Accessing values found."

@DBLookup:
Uses data source information from the ODBC.INI file to activate the appropriate ODBC driver.
The driver then locates the specified DBMS, table, and column, and returns only the values in that column
belonging to records whose value in the key column matches the specified key. You can optionally specify
whether the returned list of values is sorted, whether duplicate values are deleted, and how null values
are handled.
Note @DbLookup can only retrieve data; it can't add, delete, or modify data.
Syntax
@DbLookup( "ODBC" : cache ; "data_source" ; "user_ID1" : "user_ID2" ; "password1" : "password2"
; "table" ; "column" : "null_handling" ; "key_column" ; "key" ; "Distinct" : "sort"

The LotusScript Data Object (LS:DO)


This LSX-compliant module allows you to use LotusScript to write applications that incorporate data from
external non-Notes data sources. Your script may perform the following steps:
Establish a connection with the data source.
Each connection requires the data source name. If the data source name is not already registered, you
must also provide additional information.
Use SQL statements to send queries or other actions to the data source.
Retrieve and use result sets.
Read, modify, or add information into relational databases.
Disconnect from the data source.
For more information on writing scripts to access external databases, see the he

Eg:
This agent executes an SQL query. The agent also displays some of the ODBCResultSet
properties after the Execute method and after all the rows in the result set are accessed.
Uselsx "*LSXODBC"
Dim con As ODBCConnection
Dim qry As ODBCQuery
Dim result As ODBCResultSet
Dim firstName As String
Dim lastName As String
Dim msg As String

Sub Initialize
Set con = New ODBCConnection
Set qry = New ODBCQuery
Set result = New ODBCResultSet
Set qry.Connection = con
Set result.Query = qry
con.ConnectTo("ATDB")
qry.SQL = "SELECT * FROM STUDENTS"
If Not result.Execute Then
Messagebox result.GetExtendedErrorMessage,, _
result.GetErrorMessage
Exit Sub
End If
REM Display result set properties after Execute
Call DisplayResultSetProperties
msg = "Student names:" & Chr(10)
Do
result.NextRow
firstName = result.GetValue("FIRSTNAME", firstName)
lastName = result.GetValue("LASTNAME", lastName)
msg = msg & Chr(10) & firstName & " " & lastName
Loop Until result.IsEndOfData
Messagebox msg,, "Student Names"
REM Display result set properties after processing
REM result set
Call DisplayResultSetProperties
result.Close(DB_CLOSE)
con.Disconnect
End Sub

22. can we achieve the @isnotmemeber functionality with @ismember?if yes how?
what is the need of @isnotMember if youachieve the same functionality with
@ismember?
Ans:

23. What is the diffrence between a view and a folder?


Ans: View can have selection formula where as folder don’t have selection formula.

24. How can you get the list of documents from a particular category through the @picklist
functin from a Categorized view?
Ans: @PickList( [CUSTOM] : [SINGLE] ; server : file ; view ; title ; prompt ; column ; categoryname )

25. What is difference between @functions and @Commands?


Ans:
@Commands : An @command executes a Domino command
@functions: Notes @functions are builtin formulas that perform specialized calculations and return a value

26. In what situation we go for writing the Lotus script?


Ans:

27. What is the difference between a DBMS and an RDBMS?


Ans:

28. How can we run an agent on particular field from current document on the web?
Ans:

29. What is a @PickList? How it differs from @DBColumn?


Ans: Unlike @DbColumn and @DbLookup, @PickList counts all columns, regardless of the types of formula
they contain.

30. What is domino.doc?


Ans:

31. What is a layout region? How can we use it?


Ans:

32. What is Meta Data?


Ans:

33. There is a notes application. What can you do it to make a web application in first
step?
Ans:

34. List all possible places where can java script functions can be written?
Ans:
35. How can you pop up a window on web?
Ans:

36. How many ways that you can run an agent on the web?
Ans: Different ways to run an Agent in the web:
a. @command([ToolsRunMacro];”AgentName”) in a button formula
b. WebQueryOpen event
c. WebQuerySave event
d. AgentName?OpenAgent
e. Agent.run() method in Lotus Script

37. Suppose I have 3 @command([ToolsRunMacro];”AgentName”) in WebQueryOpen.


Then what will happen?
Ans: All agents will be executed one after another.
38. Scenario: I have a database db1 on server 1 and I have a replica copy of db1 on
server2. While replication, the documents are updating fine in both copies, whereas the
design elements are not replicating. Why?(Note: in replica setting, we enable the both
design and documents have to replicate)
Ans: In order to replicate design Changes, Source server should be given a designer access in ACL of
destination server. Here also, May be destination server is not given designer access to source server.

39. Scenario: I have an author access for the database on a server. I have created the document in which
author field kept as empty. Then what access that I can have on that document? Can I able to edit the
document, which is created by me? If not, who can edit the document?

Ans: You can’t edit the document, because your name is not listed in authors field [Authors field restrict edit
access to the document only the users with access level as author / below the author]. Users with access
level above Author, can edit the document.

40. Even the anonymous is set to no access, I like to display some form or
page(means I don’t like to discourage the web user when he tries to open the db
on web).How can I do it?
Ans: The database ACL controls access to specific design elements, such as pages, documents, forms,
outlines, views, folders, and style sheets. Users with No Access or Depositor access in the ACL cannot
access the design elements of a database. There are times, however, when you might want to make design
elements accessible to all users, regardless of access level. To do so, you make the design elements
available for Public Access.

For example, public documents are necessary for calendar applications where one user lets another user
read or create appointments on his or her behalf. To create the public documents for this application, you
must first create a public access form containing a public access field. Then you create a public folder or view
to display the document.
Note that you can also make manually run agents available for public access.
To designate a page, form, or subform for public access
1. Open the page, form, or subform.
2. Choose Design - <design element> Properties.
3. Click the Security tab.
4. Select "Available to Public Access Users."
5. On a form or subform, create a field.
6. In the Name field, enter $PublicAccess.
7. In the Type field, select Text and Computed when composed.
8. In the Programmer's pane at the bottom of the form, enter "1" as the default value for the
field.
9. To hide this field from users, select the Field Hide When tab and specify hide-when
conditions.
To designate a view for public access
1. Open the view.
2. Choose Design - View Properties.
3. Click the Security tab.
4. Check "Available to public access users" if you want to make documents in this view
or folder available to users with public access read or write privileges in the access
control list for this database.

41. Scenario: I like to mail the document whenever I click the button in which
command file save written. How? Where should I write the code?
Ans: Sometimes it makes sense to mail documents automatically, as in the following situations:
You want users to work on documents sequentially. You want to send documents to a mail-in database for
centralized tracking. For these applications, you must create a form with a SendTo field field that specifies
the recipients, or Use a formula or program that includes the SendTo information.

Use any of these methods:


a. Add a MailOptions field with a value of 1 to force the document to be mailed when it is saved.
b. At the Defaults tab of the Form Properties box, select "On Close: Present mail send dialog" to
let users decide if they want to mail the document.
c. Create an agent, event, form or view action, hotspot, or button that uses:
i. The simple action "Send Document"
ii. The formula functions @Command([MailSend]) for optional mailing or @MailSend for
automatic mailing
iii. A LotusScript program that uses the Send method of the NotesDocument class or the
NotesUIDocument class
iv. A Java program that uses the Send method of the lotus.notes.Document class

In addition, all forms and views contain the default action "Send Document" that you can display in the
Actions menu or the action bar.

42. What is NotesViewEntry Class?


Ans: Represents a view entry. A view entry represents a row in a view.

43. Scenario: I got handle to a doc1 from a view using GetFirstDocument and doc2
from document property of View entry (Means: set ViewEntry=view.getFirstEntry
and doc2=ViewEntry.document). Is doc1 and doc2 represents same document? If
not, why?
Ans:

44. Where can I place the cgi-programs/java/dhtml code files to access on the server?
Ans: server document Internet protocols  http  html & cgi directory

45. What is $$Return field? Why we use this field? Do you know any other $$fields?
List them.
Ans: After Web users submit a document, Domino responds with the default confirmation "Form processed."
To override the default response, add a computed text field to the form, name it $$Return, and use HTML as
the computed value to create a customized confirmation . $$Return is a reserved field.
Yes, I have used some other $$fields in my applications, like:
$$ViewBody
Fields that I know:
$$NavigatorBody
$$HTMLHead
46. What is reserved field and what is an internal field? What is the difference between
these two?
Ans:

47. Is it possible to register a person from web? Domino server  webadmin.nsf


Ans:

48. What is DomCFG?


Ans:

49. What is the difference between Design Refresh and Design Replace?
Ans:
Refresh Design: Refreshing a design updates a database whose design is linked to a template. Design
elements that prohibit design replace or refresh are not included in the updates.

If you use a template to refresh or replace the database design, to ensure that the option "Prohibit design
refresh or replace to modify" takes effect, select this option as well as the option "Propagate this prohibition of
design change" in the design properties of the template.
Automatically refreshing a design
The Designer server task automatically synchronizes all server databases that are linked to a template. This
server task runs by default at 1:00 AM. For the update to work, a template must reside on the same server as
the databases linked to it. Replicas synchronize with the templates stored on their servers.
Manually refreshing a design
Use the Refresh Design command to distribute design changes manually from a template to any databases
linked to it. Manually refresh the design of a database when:
a. The database is stored locally; therefore, the nightly Designer server task doesn't update the
design.
b. You want to receive design updates before the scheduled update.
c. You don't have Designer access to the database.
Components that are not refreshed
The following are not changed during an automatic or manual refresh procedure:
a. The database icon (unless you have disabled the "Prohibit design refresh or replace to
modify" box in the Design Properties box)
b. The database title and category
c. The database ACL and encrypt database settings
(Note that the ACL roles are updated (File - Database - Access Control - Roles).)
d. The "Using Database" and "About Database" documents (unless you have disabled the
"Prohibit design refresh or replace to modify" box in the Design Properties box)
e. Individual elements whose design is protected from updates (that is, if "Prohibit design
refresh or replace to modify" is selected in the Design Properties box for the element)
f. A component whose template, specified in the "Inherit from the design template" box in the
Design Properties box, is unavailable
Caution An element with inheritance set is not replaced even if its design is not protected from
updates (that is, if "Prohibit design refresh or replace to modify" is not selected).
g. The "List as advanced template in 'New Database' dialog" option on the Design tab of the File
- Database Properties box
h. All options on the Advanced tab of the File - Database Properties box, except "Document
table bitmap optimization" and "Don't support specialized response hierarchy"

Replace Design:
The Replace Design command makes a database identical to a template and is the only way to distribute
design changes if the database doesn't inherit its changes from a template. If you have at least Designer
access in the database ACL, you can replace the design of a database with the design from a template.
If you use a template to refresh or replace the database design, to ensure that the option "Prohibit design
refresh or replace to modify" takes effect, select this option as well as the option "Propagate this prohibition of
design change" in the design properties of the template.
Components that are not replaced during Replace Design
The following components are not changed during a Replace Design procedure:
a. The database icon (unless you have disabled the "Prohibit design refresh or replace to
modify" box in the Design Properties box)
b. The database title and category
c. The database ACL and encrypt database settings
(Note that the ACL roles are updated (File - Database - Access Control - Roles).)
d. The "Using Database" and "About Database" documents (unless you have disabled the
"Prohibit design refresh or replace to modify" box in the Design Properties box)
e. Individual elements whose design is protected from updates (that is, if "Prohibit design
refresh or replace to modify" is selected in the Design Properties box for the element)
f. Individual elements whose template is inherited (that is, if "Inherit from the design template" is
selected in the Design Properties box for the element)
Caution An element with inheritance set is not replaced even if its design is not protected from
updates (that is, if "Prohibit design refresh or replace to modify" is not selected).
g. The "List as advanced template in 'New Database' dialog" option on the Design tab of the File
- Database Properties box
h. All options on the Advanced tab of the File - Database Properties box, except "Document
table bitmap optimization" and "Don't support specialized response hierarchy"