Domino9下web群组维护添加log维护记录
之前我们文章介绍了如何通过web实现群组维护,添加、删除人员,然后对添加的人员做判断,因为我们都知道domino是一个比较开发的应用程序,通过console对群组内的人员做变更时,可以手动任意格式的信息,如果添加的人员多的话,肯定会将人员信息批量复制粘贴的,这样等用户给群组发送邮件的时候,如果群组内的用户不存在domino目录下,用户会收到退信,所以添加用户是否在domino列表下的用户相当重要。今天我们主要介绍,在原有的基础之上添加log记录,我们需要记录管理员对群组的操作记录,比如管理员在某个时间段对某个组进行维护过,添加、删除过用户等信息做记录,记录见下:
我们为了方便将原有的程序复制过来,然后复制到新建的数据库下,然后修改成ntf模板文件进行替换设计,这样比较方便,方便日后维护;当然也可以不用这么麻烦,我们直接可以在原有的数据库上进行功能添加。在原有的数据库上添加显示群组维护记录。添加相应的表单即可。
我们今天两种方法都实现一下。先试试第一种方法,在原有的数据库上进行数据添加。在真实环境下我们操作前必须先要备份原有的数据库,修改错误还能还原。
我们默认的功能,只有编辑功能
我们先通过desinger打开群组维护数据库。进行编辑。我们原有的库只有三个代理程序,我们需要添加日志相关的代理程序。
我们需要添加log相关的代理程序。
名称为:显示群组维护日志,别名为:agtGetConfigLog
Option Public Option Declare Sub Initialize On Error GoTo err_line Dim session As New NotesSession Dim dbCur As NotesDatabase Dim vwLog As NotesView Dim dcLog As NotesDocumentCollection Dim docLog As NotesDocument Dim note As NotesDocument Dim logritem As NotesRichTextItem Dim gpname As String Dim loginfo As String Set note = session.Documentcontext gpname = note.strGpName(0) If gpname <> "" Then Set dbCur = session.Currentdatabase Set vwLog = dbCur.Getview("vwGpConfigLog") If Not vwLog Is Nothing Then Set dcLog = vwLog.Getalldocumentsbykey(gpname,True) Set docLog = dcLog.Getlastdocument() Set logritem = New NotesRichTextItem(note,"rtfLogInfo") While Not docLog Is Nothing loginfo = |{"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+|"}| Call logritem.Appendtext(loginfo+"@log@") Set docLog = dcLog.Getprevdocument(docLog) Wend End If End If Exit Sub err_line: MsgBox session.Currentagent.name+" error : "+Error+" at line : "+Cstr(Erl) End Sub
代理程序创建完后,我们需要创建视图:
名称为:群组维护日志、别名为:vwgppconfiglog
视图设计
维护人
维护时间
接下来就是创建表单了。
我们需要创建两个表单:群组维护日志、显示群组维护记录
首先是群组维护日志
<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>
接下来是
显示群组维护记录
<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访问