之前我们文章介绍了如何通过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 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

视图设计

维护人

维护时间

接下来就是创建表单了。

我们需要创建两个表单:群组维护日志、显示群组维护记录

首先是群组维护日志

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>
&nbsp;&nbsp;&nbsp;&nbsp;1.[被忽略的成员]表示编辑群组并保存时因在系统中不存在而未被添加的成员<br>
&nbsp;&nbsp;&nbsp;&nbsp;2.记录中[添加成员][删除成员][被忽略的成员]均为空时,表示此次操作只是保存了群组文档,并未进行其他操作<br>
&nbsp;&nbsp;&nbsp;&nbsp;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,如需转载请自行联系原作者

Domino9下web群组维护添加log维护记录相关推荐

  1. 深度学习框架下群组行为识别算法综述

    源自:电子学报       作者:邓海刚  王传旭  李成伟  林晓萌 摘 要 群组行为识别目前是计算机视觉领域的一个研究热点,在智能安防监控.社会角色理解和体育运动视频分析等方面具有广泛的应用价值. ...

  2. linux添加有效群组,Linux中的有效群组和初始群组

    在Linux中,每个账号都可以加入多个群组,那用户登录后默认的用的是哪个群组呢?关于这个问题就要说说有效群组和初始群组了. 在用户账号信息文件/etc/passwd中,那个由冒号分割的7个栏目中,第四 ...

  3. 腾讯云im:用户端来实现群组消息的功能

    前言: 腾讯云im如果放在服务端来实现是非常便捷的,但是也受腾讯im的并发等限制,这里提供  用户端,也就是前端  来实现群组消息的相关功能. 实现效果: 实现具体功能需求: 1.群组中有主播.用户. ...

  4. Zabbix和agent端部署、图示Zabbix Web端搭建以及添加设备的4种方法、Zabbix API

    Zabbix zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员 ...

  5. Linux用户与群组管理

    用户账户与群组概念 Linux操作系统是多用户多任务的操作系统,系统依据账户来区分属于每个用户的文件.进程,任务,并给每个用户提供特定的工作环境(例如,用户的工作目录.shell版本以及图形化的环境配 ...

  6. linux存储群组名称的文件是,群组管理(分组,群组密码,身份切换,常见问题)- 系统管理 -Deepin深度系统用户手册...

    群组介绍 Linux中为了使用户共享文件或者其他资源方便,引入了群组的功能: Linux中每一个用户属于一个群组(group),而每一个群组(group)都有一个group标示符,即GID. 所有群组 ...

  7. 置放群组(Placement groups)

    关注公众号:AWS爱好者(iloveaws) 文 | 沉默恶魔(禁止转载,转载请先经过作者同意) 网站:www.iloveaws.cn Hello大家好,欢迎来到<AWS解决方案架构师认证 Pr ...

  8. Linux 学习笔记 文件、目录操作与用户群组权限

    一.命令行提示符 1.1 命令行基础 bearpi:当前用户名,在@前是用户名 ubuntu:用户所在的域名,在@后面,这是我自定义的,默认应该是主机名 ~ 波浪线为目前所在目录,~代表家目录(hom ...

  9. Linux账号与群组系统介绍

    一.使用者辨别码:UID与GID 虽然我们使用账号(一个字符串)登入Linux主机,但是Linux主机并不会直接识别我们的账号,而是识别ID(一组数字).账号仅仅是为了让我们方便记忆,账号与对应的ID ...

最新文章

  1. Vaadin学习经验
  2. Log4Net组件的应用详解
  3. Docker 容器技术 — 容器存储
  4. 在 Django 中使用 pyecharts
  5. 和功率的计算公式_电机电流的计算公式是什么,具体怎么计算?
  6. 卸载unixodbc_完全卸载旧的unixODBC并在redhat 6.3中安装2.3.2 unixODBC
  7. android下raw目录的作用,【android】读取/res/raw目录下的文件
  8. 从十四五规划看 物联网(NB-IoT、Cat.1、5G)将何去何从?
  9. Android系统的开机画面显示过程分析
  10. implements OnClickListener
  11. leetcode —— 面试题68 - II. 二叉树的最近公共祖先
  12. Shell命令对整数求和,每行一个?
  13. JavaScript冒泡排序算法(1)
  14. 6.5 XGBoost实战
  15. 微信背后的产品观-学习笔记
  16. [Mongodb] 3.使用mongodb -----------使用compass
  17. python制作动态表情包_sorrypy
  18. Ubuntu 安装微信,网页版无法登陆
  19. 金融初学者的感受:兴趣的魔力
  20. 智慧非智能,智慧园区智慧在哪里?

热门文章

  1. Linux(Ubuntu)使用日记------自定义命令的使用
  2. MySQL备份还原知识要点
  3. hibernate中查询方式(二):常用查询
  4. 理解perl的编码转换——utf8以及乱码
  5. 离开,是一个新的开始
  6. 手把手教你写个ORM(一)
  7. 静态成员变量和非静态成员变量
  8. 树莓派4做服务器哪个系统好,【树莓派】树莓派4无痛安装系统(NOOBS篇)
  9. python样本不均衡_三招提拔数据不均衡模子的机能(附python代码)
  10. sql有循环吗_我把 SQL 执行效率提高了 10,000,000 倍!