pythonlotus-noteshcl-notes

How to open a document from a Notes View with python noteslib?


I have an established connection with a notes database and I am able to loop through all the records in a view. What I am curious about if it is possible to open a document and get the data from it using python. (Like double clicking on a record from an HCL Notes Client). Here is my code simplified:

import noteslib
db = noteslib.Database('my-domino-server','my-db.nsf', 'mypassword')
view = db.GetView('my_view')
doc = view.GetFirstDocument()
while doc:
    print(doc.ColumnValues)
    #here after printing the column values, I want to open the document and store it's values in a variable.
    doc = view.GetNextDocument(doc)

I tried googling about LotusScript and I found the Open() method, but doc.Open() did not work.


Solution

  • Just use the LotusScript documentation to find examples for everything you need.

    In your case you start with the NotesDatabase - class, then get an object of type NotesView and finally get a NotesDocument object.

    This doc object does not need to be opened. You can directly access all items in that document either by their name or -if you don't know the name- by cycling through all items.

    If you e.g. know the name of an item (can be found in the document properties box on the second tab, found with Alt + Enter) then you can read the value like this:

    #Subject of a given mail
    subject = doc.GetitemValue( "Subject" )[0]
    
    #Start date of a calendar entry
    startdate = doc.GetItemValue( "StartDate" )[0]
    
    # cycle through all items
    for item in doc.Items
        print(item.Name)
        value = item.Values
    

    Take care: items are always arrays, even if they contain only a single value. To get the value of a single value item, always access the element at position 0.