如何使用java改变Domino数据库names.nsf中用户的群组?

Pitt_Zhou 2005-06-14 04:54:12
软件环境:jdk1.3 + Lotus Domino 6.5.1 + Windows 2003 Server
详细描述:在names.nsf中有5000个用户user1 ~ 5000,加入的群组是group1,
现在新建一个群组group2,需要改变其中1000个用户的群组为group2。
如果通过Lotus管理客户端一一改动这些用户的群组,工作量太大,并且容易遗漏。
那么,如何使用java这些用户的群组?

谢谢提供参考信息。
...全文
238 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
goldpiece 2005-06-16
  • 打赏
  • 举报
回复
把domino/data/domino/java目录下的Notes.jar添加到classpath里
服务器上启动DIIOP服务:load diiop

然后代码大致如下:
(至于那个一千个用户名的数组,收集好后,可以用很多编辑工具如editplus等直接生成,或者每次导一两百个也成)


import lotus.domino.*;
import java.util.Vector;

public class DIIOPTest {
public static void main(final String args[]) {
try {
Session ss = NotesFactory.createSession(
"192.8.200.206:63148", "admin_dev" , "password");
//需要移动的用户列表...
String[] rgstr = {"CN=张三/O=xx", "CN=李四/OU=xx/O=xx"};
//取出群组文档
Database dbNames = ss.getDatabase( ss.getServerName(), "names.nsf", false );
View vwGroups = dbNames.getView( "($VIMGroups)" );
Document doc1 = vwGroups.getDocumentByKey( "goup1" );
Document doc2 = vwGroups.getDocumentByKey( "goup2" );
//移动用户
Item itMembers1 = doc1.getFirstItem( "Members" );
Item itMembers2 = doc2.getFirstItem( "Members" );
Vector v1 = itMembers1.getValues();
Vector v2 = itMembers2.getValues();
int nIdx = -1;
for ( int i=0; i<rgstr.length; i++ ) {
nIdx = v1.indexOf( rgstr[i] );
if ( nIdx != -1 ) {
v1.remove( nIdx );
v2.add( rgstr[i] );
}
}
//重新给成员域赋值,并保存文档
itMembers1.setValues( v1 );
itMembers2.setValues( v2 );
doc1.save(true,true);
doc2.save(true,true);

} catch(Exception e) {
e.printStackTrace();
} finally {
}
}
}
goldpiece 2005-06-16
  • 打赏
  • 举报
回复
用jndi!这才是高手啊,不能太局限于Domino了
我也学习一把:)
Pitt_Zhou 2005-06-16
  • 打赏
  • 举报
回复
to goldpiece(老白鼻):
tks.

to maplescloud(花瓣雨):
tks, too.

不过,我用jndi也实现了。
maplescloud 2005-06-15
  • 打赏
  • 举报
回复
你不是打算用JAVA访问吗,JAVA去访问关系数据库应该很方便吧。我所说的一整套对应后台的DOMINO类也是指JAVA类。你的JAVA里面就可以直接用了。
Pitt_Zhou 2005-06-15
  • 打赏
  • 举报
回复
to maplescloud(花瓣雨):
如果需要根据外部数据库比如(sql server)的某些表的字段内容决定用户的群组,这些Domino类是否也有类似jdbc的接口?
maplescloud 2005-06-15
  • 打赏
  • 举报
回复
用LS应该很快就改好了,用JAVA也不必用到什么jndi去访问,用CORBA方式去访问DOMINO的DIIOP服务,查查DESIGN的帮助,有一整套对应后台的DOMINO类让你的JAVA去访问,呵呵,帮助里面就有例子,拷贝一个测试下。GOOD LUCK!
Pitt_Zhou 2005-06-15
  • 打赏
  • 举报
回复
to goldpiece(老白鼻) :
能给个jndi的例子?zf2lj@sina.com
Pitt_Zhou 2005-06-15
  • 打赏
  • 举报
回复
up
goldpiece 2005-06-15
  • 打赏
  • 举报
回复
从names里读出群组文档,然后改吧改吧就OK了啊
Pitt_Zhou 2005-06-15
  • 打赏
  • 举报
回复
up
Pitt_Zhou 2005-06-15
  • 打赏
  • 举报
回复
up

535

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 Exchange Server
社区管理员
  • 消息协作社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧