Friday 23 December 2011

Retrieve list of documents in Lotus Notes database

Retrieve list of documents in Lotus Notes database
This task use java to retrieve list of documents in Lotus Notes database.
Filter documents with aliases
  1. Create getDocuments method as following
  2. Call getDocuments method as following
Call method
try {
    String idfile = "path to your id file";
    String password = "your password";
    // <server>!!<filepath> | <filepath>
    String filename = "path to database file";
    String form = "your form";
    String filter = "your document filter";
    NotesThread.sinitThread();
    Session s = NotesFactory.createSessionWithFullAccess();
    s.createRegistration().switchToID(idfile, password);
    Database d = openDatabase(s, filename);
    DocumentCollection dc = getDocuments(d, form, filter);
    logger.info(dc.getCount());
    d.recycle();
    s.recycle();
} catch (Exception e) {
    logger.info("", e);
}
    
getDocuments method
public DocumentCollection getDocuments(Database database, String form, String filter) throws Exception {
    if (filter.trim().length() == 0) {
        return database.search(grabFormCond(database, form));
    } else {
        return database.search(grabFormCond(database, form) + " & (" + filter + ")");
    }  
}  
  
private String grabFormCond(Database database, String form) throws Exception {
    String target = "((Form='" + form + "')";
    try {
        Vector aliases = database.getForm(form).getAliases();
        for (int i = 0; i < aliases.size(); i++) {
            target += "|(Form='" + aliases.get(i) + "')";
        }
    } catch (Exception e) {
        logger.error("", e);
    }
    return target + ")";
}
    

  Protected by Copyscape Online Copyright Protection

No comments:

Post a Comment