So looking into something, I discovered there has been an addition called a "DirectoryNavigator", it's supposed to make it easier to get to person docs in the NAB. I needed something like this, but in Java - the examples are in LotusScript, and I'm working in a bean. Those examples are "TBD". I did get it working, so I'm sharing. It looks like this came out in R8.
What you do is create a vector with the field names you want to retrieve, and you create a vector with what you want to look up (names). You check to see if there is a match, and if so, iterate through the resultset and get the items retrieved. Here is a snippet of the code (dir is the NAB):
Vector<String> itV = new Vector<String>();
itV.addElement("ShortName");
itV.addElement("HTTPPassword");
itV.addElement("FullName");
Vector<String> nameV = new Vector<String>();
nameV.addElement("Smith");
System.out.println("before dirNav");
// DirectoryNavigator dirNav = dir.l
DirectoryNavigator dirNav = dir.lookupNames("$Users", nameV, itV, true);
while (dirNav.isMatchLocated()) {
System.out.println("found");
// dirNav.findFirstName();
System.out.println("The first value is: " + dirNav.getFirstItemValue());
for (int i = 0; i < 5; i++) {
try {
System.out.println("Next value is: " + dirNav.getNextItemValue());
} catch (Exception divE) {
System.out.println("in catch");
}
}
dirNav.findNextMatch();
}
Here is the print results. I've obscured the names, but we get the hierarchical names, and the common names.
10/28/2015 08:45:00 AM HTTP JVM: starting
10/28/2015 08:45:00 AM HTTP JVM: new start
10/28/2015 08:45:00 AM HTTP JVM: before dirNav
10/28/2015 08:45:00 AM HTTP JVM: found
10/28/2015 08:45:00 AM HTTP JVM: The first value is: [lsmith]
10/28/2015 08:45:00 AM HTTP JVM: Next value is: [(390ACEC884A01BFDF5FA36AE5E6B29B1)]
10/28/2015 08:45:00 AM HTTP JVM: Next value is: [CN=RRRRRRRRR]
10/28/2015 08:45:00 AM HTTP JVM: Next value is: []
10/28/2015 08:45:00 AM HTTP JVM: Next value is: []
10/28/2015 08:45:00 AM HTTP JVM: Next value is: []
10/28/2015 08:45:00 AM HTTP JVM: found
10/28/2015 08:45:00 AM HTTP JVM: The first value is: [RSmith, smithr]
10/28/2015 08:45:00 AM HTTP JVM: Next value is: [(CBA717BC74064A8F7EC075DA95ACB8F6)]
10/28/2015 08:45:00 AM HTTP JVM: Next value is: [CN=TTTTTTTTTTTT]
10/28/2015 08:45:00 AM HTTP JVM: Next value is: []
10/28/2015 08:45:00 AM HTTP JVM: Next value is: []
10/28/2015 08:45:00 AM HTTP JVM: Next value is: []
You can see I cheated and did hard coded 5 cycles - so when there is nothing to display, you get an empty array.
This may be useful for someone.
Cheers,
Brian
PS: If whoever does the Notes help wants to use this, or have me do the rest of the methods, I'll volunteer. BM
No comments:
Post a Comment