QC实例-后台邮件通知功能代码
上一篇 / 下一篇 2008-11-25 17:28:28 / 个人分类:QC
转载请保留:本文出自zte_boy的51Testing软件测试博客:http://www.51testing.com/?161787
C1oDY#fz051Testing软件测试网HQ!~AmJN k/KQualityCenter自带的邮件发送配置功能实在是不好用:51Testing软件测试网Wo%AF
^+N&ZF"^
1)邮件发送标题不够直观,不能明确缺陷处理阶段51Testing软件测试网 Z^Oro
2)邮件发送延时现象及其严重,甚至有时候会丢失
DJo/O Fj*C6G`0鉴于以上两个原因,特意在后台重写了邮件通知功能,新建了两个方法
'a3IL/sEGm01)GetInfo51Testing软件测试网d-yrvxO3LSl
负责查找需要发送责任人的邮件地址
&m!z&B3q%I2C02)SendMail
~/{0i zCf&^6e+W0 调用GetInfo方法,并利用BugFactory对象获取Bug的具体信息,并发送邮件51Testing软件测试网(A*]JCq(~Z+S~6\
3)完成后在Defects_Bug_AfterPost过程中调用SendMail即可
r"Ct*D.nh0在后台实现的邮件通知功能效率明显高于配置,10S内就能接收到通知邮件,且标题一目了然
!a&\1P\0G0!p M:E-r,GK7^*@0代码:51Testing软件测试网{A8W6Cp5q$L
~ Q%Q:b]W J8m0Function GetInfo(User,Psw,DSource,DBase,SqlStr)
.PC%U)X9UT;l2g0 'Dim rs,conn,sqlstr,strcon51Testing软件测试网!z1^ w
E;B
StrCon = "Provider=sqloledb;User ID="&User &_
!_8B
Aq^4H0 ";Password="&Psw &_
(kN R.j&U:LN{u.l-y/a0 ";Data source="&DSource &_
T8m6^;h
ZsV0 ";DATABASE="&DBase
*|/B
@5[y0`s3z!h6q0 Set Conn = createobject("adodb.connection")51Testing软件测试网Bw(`5m.P4`
Conn.open StrCon51Testing软件测试网'Qh!}L'X`,S4{U
Set Rs=createobject("adodb.recordset")
4H2?Z%d7b0 Rs.open SqlStr,Conn,1,151Testing软件测试网)GoTO%TZ wz*Gcg
XL]F/[Q;Z0 If NOT(Rs.BOF = True And Rs.EOF = True) Then51Testing软件测试网(KAS!~~J(|7g%RG
'RsCount = Rs.Fields.Count51Testing软件测试网!v f;Kj;bkj,S
'For i = 0 To RsCount - 1
(R7q|vh0 Info = Rs.Fields(0).value
f-t
^:o.n0 'Next51Testing软件测试网fE R3B
Y]7y
End If51Testing软件测试网!a.j)p'|+M9X-E3q8^!U
GetInfo = Info
)`%c k,W/i0.],F`9o@:EOsJ0 set Rs = Nothing51Testing软件测试网)eO]]!m\
Set Conn = Nothing51Testing软件测试网5a4nIPBZ%ui
End Function
Sub SendMail()51Testing软件测试网c%KMn%[b)B|^%i
]
On Error Resume Next
UserId = "xxx"51Testing软件测试网R,o+Q-i6`oqs
a
PWord = "xxx"
l}8X{,w5}%E0 DataSource = "xxx"
-Y3e OyR2N0 DataBase = "qcsiteadmin_db"
-o[m%VzoOE4NZ0 Id = Bug_Fields("BG_BUG_ID").Value51Testing软件测试网'VT,f;c KS\
51Testing软件测试网/N5xk.{b Set ōbjBugFactory = TDConnection.BugFactory51Testing软件测试网!T"O:K}
A}8M6Zh*{
'set BugFilter = ObjBugFactory.Filter51Testing软件测试网@+ah
zi+o U
1f|EB
Cs1RZo0 'BugFilter.Filter("BG_BUG_ID") = Id51Testing软件测试网&ct/h
d(GO9B
k)Ie
set ōbjBug = ObjBugFactory.Item(Id)51Testing软件测试网s'fy)ZR)k/Z
'set BugList = BugFilter.NewList
']{Q1K^?x051Testing软件测试网x7}$WnL fwx'For each ObjBug in BugList51Testing软件测试网|T ]2\y,y;JkL&@
51Testing软件测试网Hoc4\D@o '获取项目
I-}/Z.Mc'lF0 PojName = TDConnection.ProjectName
StrComment = ""
7z7X&^]LL051Testing软件测试网.r1f O$o KR7Y7iv '已提交51Testing软件测试网Fe
o9swK`K
If ((Bug_Fields("BG_USER_01").Value = "已提交") And _
mt
{w.{6Z0 (Bug_Fields("BG_RESPONSIBLE").IsModified))Then51Testing软件测试网zS i;[Gf"EN-H
gW_)SS!P0 '设置邮件接收人和标题
?T*Q!L.y2Z#h0 UName = ObjBug.Field("BG_RESPONSIBLE")51Testing软件测试网{
B;s
f SI+`
'msgbox UName
9T*U|N'Bg&X%i2O7V051Testing软件测试网U!H1M2@ojbSql = "select EMAIL from td.USERS where USER_NAME = "&"'"&UName&"'"51Testing软件测试网.C,?Z%uP9JH
!k Pi*AG0 'msgbox Sql
4@x6GywoVb051Testing软件测试网)OSl7tN(g9CStrTo = GetInfo(UserId,PWord,DataSource,DataBase,Sql)
b}#fM@:g@\is051Testing软件测试网$em-j2FVw.g(o'Msgbox StrTo51Testing软件测试网x6[*q zmJ4G T
G)e6]rvkT6zL*iZ
\n0 StrCc = ""
T$}7rI+g,l0\"s*}0 StrSubject = PojName&":您有新分配的缺陷"&"(ID:"&Id&")"& _51Testing软件测试网0?h7m3bLW!{9E
",请及时修改!"
`MVy3u7r)[0 '发送邮件
#tVqO9s m0 ObjBug.Mail StrTo, StrCc, TDMAIL_TEXT, StrSubject, StrComment51Testing软件测试网8]-]3s?"fL8rl
.c#}Av0q.N.E#}$w5L0 End If51Testing软件测试网k7N_opE!R
51Testing软件测试网C5my v"|#pb/s[ '未修复-修改状态未更改责任人51Testing软件测试网+^.DulD8v1a&@j
If ((Bug_Fields("BG_USER_01").IsModified) And _51Testing软件测试网eJH4vk+]O
(Bug_Fields("BG_USER_01").Value = "未修复"))Then
'设置邮件接收人和标题
h2mJJ3hC0 UName = ObjBug.Field("BG_RESPONSIBLE")51Testing软件测试网8\m(}w8j\1q
Sql = "select EMAIL from td.USERS where USER_NAME = "&"'"&UName&"'"
/cyq G|0'F??9J$]"|)X4~)T0 StrTo = GetInfo(UserId,PWord,DataSource,DataBase,Sql)51Testing软件测试网Q3@1v;Gl R;P
51Testing软件测试网3]0kqzb)|$kk:z)K!t3v StrCc = ""
aH$A%x{z%Awo0 StrSubject = PojName&":您修改的缺陷"&"(ID:"&Id&")"& _
9B1oGAR0 "验证未通过!"