之前我们文章介绍了如何通过web实现群组维护,添加、删除人员,然后对添加的人员做判断,因为我们都知道domino是一个比较开发的应用程序,通过console对群组内的人员做变更时,可以手动任意格式的信息,如果添加的人员多的话,肯定会将人员信息批量复制粘贴的,这样等用户给群组发送邮件的时候,如果群组内的用户不存在domino目录下,用户会收到退信,所以添加用户是否在domino列表下的用户相当重要。今天我们主要介绍,在原有的基础之上添加log记录,我们需要记录管理员对群组的操作记录,比如管理员在某个时间段对某个组进行维护过,添加、删除过用户等信息做记录,记录见下:
我们为了方便将原有的程序复制过来,然后复制到新建的数据库下,然后修改成ntf模板文件进行替换设计,这样比较方便,方便日后维护;当然也可以不用这么麻烦,我们直接可以在原有的数据库上进行功能添加。在原有的数据库上添加显示群组维护记录。添加相应的表单即可。
我们今天两种方法都实现一下。先试试第一种方法,在原有的数据库上进行数据添加。在真实环境下我们操作前必须先要备份原有的数据库,修改错误还能还原。
我们默认的功能,只有编辑功能
我们先通过desinger打开群组维护数据库。进行编辑。我们原有的库只有三个代理程序,我们需要添加日志相关的代理程序。
我们需要添加log相关的代理程序。
名称为:显示群组维护日志,别名为:agtGetConfigLog
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
Option PublicOption DeclareSub InitializeOn Error GoTo err_lineDim session As New NotesSessionDim dbCur As NotesDatabaseDim vwLog As NotesViewDim dcLog As NotesDocumentCollectionDim docLog As NotesDocumentDim note As NotesDocumentDim logritem As NotesRichTextItemDim gpname As StringDim loginfo As StringSet note = session.Documentcontextgpname = note.strGpName(0)If gpname <> "" Then
Set dbCur = session.CurrentdatabaseSet vwLog = dbCur.Getview("vwGpConfigLog")
If Not vwLog Is Nothing ThenSet dcLog = vwLog.Getalldocumentsbykey(gpname,True)Set docLog = dcLog.Getlastdocument()Set logritem = New NotesRichTextItem(note,"rtfLogInfo")
While Not docLog Is Nothingloginfo = |{"optUser":"|+docLog.strUserName(0)+|",|
loginfo = loginfo + |"OptTime":"|+docLog.strDateTime(0)+|",|
loginfo = loginfo + |"AddMembers":"|+docLog.rtfGpAdd+|",|
loginfo = loginfo + |"DelMembers":"|+docLog.rtfGpDel+|",|
loginfo = loginfo + |"OthMembers":"|+docLog.rtfOth+|"}|
Set docLog = dcLog.Getprevdocument(docLog)WendEnd IfEnd IfExit Suberr_line:MsgBox session.Currentagent.name+" error : "+Error+" at line : "+Cstr(Erl)
End Sub |
代理程序创建完后,我们需要创建视图:
名称为:群组维护日志、别名为:vwgppconfiglog
视图设计
维护人
维护时间
接下来就是创建表单了。
我们需要创建两个表单:群组维护日志、显示群组维护记录
首先是群组维护日志
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
<table><tr><td>群组名</td><td></td></tr><tr><td>维护人</td><td></td></tr><tr><td>维护时间</td><td></td></tr><tr><td>添加成员</td><td></td></tr><tr><td>删除成员</td><td></td></tr><tr><td>保存时被忽略成员</td><td></td></tr></table> |
接下来是
显示群组维护记录
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
<div style="display:none">
数据库路径:日志信息:</div><style type="text/css">
table {;border:0px;margin:0px;border-collapse:collapse;border-spacing:0px;}table td {padding:0px;height:25px;border:1px solid #c0c0c0;}.tbl_head {text-align:center;height:40px;font-weight:bold;font-size:22px;}.td_head {text-align:center;height:27px;font-weight:bold;font-size:15px;white-space:nowrap;padding-left:5px;padding-right:5px;}.td_content {height:27px;font-size:15px;padding-left:5px;padding-right:5px;white-space:nowrap;}.div_remark {font-size:15px;color:red;margin-top:10px;margin-bottom:10px;}.td_showMore {text-align:center;cursor:pointer;font-size:12px;height:20px;}</style><div class="div_remark">
说明:<br> 1.[被忽略的成员]表示编辑群组并保存时因在系统中不存在而未被添加的成员<br>
2.记录中[添加成员][删除成员][被忽略的成员]均为空时,表示此次操作只是保存了群组文档,并未进行其他操作<br>
3.维护记录每次只加载<span id="loadMax">100</span>行,如需查看更多记录可点击表格最后一行的“显示更多…”
</div><table id="GpConfigLog">
<tr><td colspan="5" class="tbl_head"> 维护记录</td>
</tr><tr><td class="td_head" ;10%">维护人</td>
<td class="td_head" ;13%">维护时间</td>
<td class="td_head" ;30%">添加成员</td>
<td class="td_head" ;30%">删除成员</td>
<td class="td_head" ;17%">被忽略的成员</td>
</tr><tbody id="showLog" style="display:none">
<tr><td colspan="5"></td></tr>
</tbody><tr><td colspan="5" style="height:0px;border-bottom:0px;"></td></tr>
</table> |
我们保存后,然后重启服务,我们发现多了一个维护日志。
验证:
验证查询组内成员
接下来我们测试一下维护日志的功能。我们分别添加有效用户、添加无效用户、删除用户看看是否能记录用户的操作记录
添加一个有效的用户(真是存在的)
然后保存成功
接下来我们是添加一个无效的用户(domino目录下不存的用户)
保存忽略不存在的用户
接下来我们测试删除用户
保存
接下来我们查看群组的维护日志
我们发现删除人员的log有问题,我们确认问题是保存代理有问题,需要修改
打开代理程序---保存群组成员;可根据以下提示修改
删除:Dim delMVar As Variant
将delMVar = split(DelM,”;”)修改后logDeM=split(DelM,”;”)
删除以下字段
删除logDelM=split(“”)
修改完成后,我们保存代理后,然后通过添加用户及删除用户查看log记录
我们发现可以记录用户信息了。如果记录多了的话,需要通过notes console打开该数据库进行维护:
打开可对这些记录进行维护---维护等操作。
注:为了记录更加真实,我们需要设置acl进行权限控制,禁止anonymous访问
本文转自 高文龙 51CTO博客,原文链接:http://blog.51cto.com/gaowenlong/1418448,如需转载请自行联系原作者