Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = workspace.CurrentDocument
Messagebox uidoc.FieldGetText("Subject")
Ask the right questions to secure the right LotusScript talent among an increasingly shrinking pool of talent.
LotusScript is a proprietary, object-oriented programming language developed by Lotus Development Corporation, now owned by IBM. It was first introduced in 1993 as part of Lotus Notes Release 4 and is primarily used for automating tasks within the Lotus platform. The language shares similar syntax and semantics with Visual Basic, facilitating ease of use for those familiar with VB. Despite its specific application scope, it remains an integral part of the IBM Domino environment due to its robust capabilities in manipulating text files and databases. Today, it continues to be utilized in various business applications that require complex document manipulation or integration with legacy systems.
The next 20 minutes of the interview should attempt to focus more specifically on the development questions used, and the level of depth and skill the engineer possesses.
In LotusScript, errors can be handled using 'On Error' statement. For example, 'On Error Goto ErrorHandler' would direct the program control to the ErrorHandler section if an error occurs.
The 'Option Declare' statement forces explicit declaration of all variables. This helps in preventing errors due to misspelled variable names and also improves code readability.
A conditional statement in LotusScript can be written using 'If', 'ElseIf' and 'Else' keywords. For example: 'If x > y Then print "x is greater" Else print "y is greater" End If'.
LotusScript supports several data types including Integer, Long, Single, Double, String, Variant, Date/Time, and user-defined types.
In LotusScript, you declare a variable using the 'Dim' keyword. For example, 'Dim x As Integer' declares a variable named x of type Integer.
The tech field is always evolving, so it's important for developers to be open to learning new skills and adapting as needed.
Most development projects require teamwork, so it's important that they can collaborate effectively with others.
While the focus is on LotusScript, having a broader understanding of related technologies can be beneficial and allow for more versatile development.
Good communication skills are important in any role, but especially in development where they may need to explain complex concepts to non-technical colleagues.
Problem-solving is key in development roles as they will need to troubleshoot and resolve any issues that arise in the coding process.
This is crucial as the primary responsibility of the role is to develop and maintain applications using LotusScript.
The next 20 minutes of the interview should attempt to focus more specifically on the development questions used, and the level of depth and skill the engineer possesses.
In LotusScript, you can connect to a Domino server using the 'NotesSession' class. For example, 'Dim session As New NotesSession' creates a new session.
Data in a NotesDocument object can be accessed using the 'GetItemValue' method or by referencing the field directly. For example, 'doc.GetItemValue("FieldName")' or 'doc.FieldName'.
In LotusScript, an array can be created using the 'Dim' keyword followed by the array name and dimensions. For example, 'Dim arr(5) As Integer' creates an integer array with 6 elements.
LotusScript supports several types of loops including 'For', 'While', 'Do While', and 'Do Until'.
In LotusScript, a function is a procedure that returns a value, while a sub is a procedure that does not return a value.
At this point, a skilled LotusScript engineer should demonstrate proficiency in LotusScript programming, a solid understanding of Lotus Notes/Domino applications, and problem-solving abilities. Red flags include lack of practical experience, inability to troubleshoot, or poor communication skills.
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = workspace.CurrentDocument
Messagebox uidoc.FieldGetText("Subject")
Dim x As Integer
Dim y As Integer
x = 10
y = 20
Print x + y
Dim arr(1 To 5) As String
arr(1) = "Apple"
arr(2) = "Banana"
arr(3) = "Cherry"
arr(4) = "Date"
arr(5) = "Elderberry"
Forall fruit In arr
Print fruit
End Forall
Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.GetDatabase("", "names.nsf")
Call db.OpenByReplicaID("8525646F:006B2E5C")
Class Car
Private brand As String
Sub New(b As String)
brand = b
End Sub
End Class
Dim myCar As New Car("Toyota")
Dim doc As NotesDocument
Set doc = New NotesDocument( db )
doc.Form = "Memo"
doc.Subject = "Test"
Call doc.Save( True, True )
The final few interview questions for a LotusScript candidate should typically focus on a combination of technical skills, personal goals, growth potential, team dynamics, and company culture.
A 'NotesDocumentCollection' can be created using the 'Database' class's 'Search' method or 'View' class's 'GetAllDocumentsByKey' method. It can be manipulated using methods like 'AddDocument', 'DeleteDocument', etc.
'Call' is used to invoke a sub or function in the same script, while 'Run' is used to execute a command or another script.
The 'NotesDatabase' class represents a Domino database. It provides methods and properties to create, delete, open, and manipulate databases.
LotusScript provides several functions for string manipulation including 'Left$', 'Right$', 'Mid$', 'InStr', 'Len', 'Trim', 'Lcase', 'Ucase', etc.
'GetDocumentByUNID' retrieves a document by its Universal ID, while 'GetDocumentByKey' retrieves a document based on a key in a view.
Back-end App Developer
Front-end Web Developer
Full Stack Developer (Java)
Full Stack Developer (.Net)
Full Stack Developer (MEAN)
Full Stack Developer (MERN)
DevOps Engineer
Database Engineer (AzureSQL)
Database Engineer (Oracle)
Database Engineer (General)
Solution Architect (.NET)
Solution Architect (Java)
Solution Architect (Ruby)
Solution Architect (Python)
AI Engineer (Python)
Sr. AI Engineer (Python)
AI Strategist (Python)
Business Intelligence Engineer
Systems Analyst
Mainframe Developer (COBOL)
Mainframe Developer (General)