Domino Code Fragment

Code Name*
How do you do a data import/merge using Lotuscript?
Date*
04/29/2024
Source (or email address if you prefer)*
Rlatulippe@romac.com
IP address:.3.145.105.108
Description*
How do you do a data import/merge using Lotuscript? This function can be placed in an action button in a database:
Type*
LotusScript
Categories*
(Misc)
Implementation:
Required Client:
Server:
Limitations:
Comments:
Files/Graphics attachments (if applicable): Code:
Sub Initialize
On Error Goto _Error


 Dim bFileOpen As Integer
Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.CurrentDatabase


 Dim view As NotesView
Dim doc As NotesDocument
Set view = db.GetView( "(CleanAddress)" )
Set doc = view.GetFirstDocument


  ' The Fields we are going to import
Dim Field1 As String
Dim Field2 As String


  ' The unique field for each record
Dim UniqueID As String


  ' Name of file to get from user
Dim FileName As String


 If Not (doc Is Nothing) Then
  FileName  = Inputbox$("Enter your import file name: ", "Data Import", "C:\")
  If (FileName = "") Then
    Messagebox ("Import has been cancelled")
    Exit Sub
  End If
Else
   ' There is nothing to merge into
  Messagebox ("Nothing to merge into! Are you sure you have already imported this file?")
  Exit Sub
End If


  ' Open the file
Dim fileNum As Integer
fileNum = Freefile()
Open FileName For Input As fileNum
bFileOpen = 1


 Dim item As NotesItem
 ' Until we eof
Do Until Eof (fileNum)
  Input #fileNum, UniqueID, Field1, Field2
  If (UniqueID > "") Then
    Set doc = view.GetDocumentByKey(URN)
    If Not (doc Is Nothing) Then
      doc.Field1 = Field1
      doc.Field2 = Field2
      Call doc.Save(True, False)
    Else
      Messagebox("File contains a record that is not in the database " + UniqueID)
    End If
  Else
    Messagebox("File contains an record without a unique id")
  End If
Loop


  ' Close file
Close fileNum
bFileOpen = 0


 Messagebox("File imported successfully")
Exit Sub


_Error:
If (bFileOpen = 1) Then
  Close fileNum
End If
Messagebox("Error importing data: " + Error$)
End Sub