首页  >> 配置管理  >> IBM Rational ClearQuest / ClearDDTS/TestManager
[实现CQ需求]--9. 怎样在发给用户的Email提醒信中,自动包含...
作者 anthelion   查看 8219   发表时间 2006/10/30 14:07  【论坛浏览】
orzmphhz
orzmphhz
  引用:
在 derd 发的那个帖子中我跟的帖子不够详细,现在我写一下详细的步骤.-------想走捷径,结果总是走弯路:-)
orzmphhz
1.在Defect中加一条字段email_link,String类型.并置于Record form上面orzmphhz
2.在CQ的Global Scipt-->Perl中添加一个方法叫做 SetDefectEmailLink,然后把下面的代码拷贝到里面去.orzmphhz
orzmphhz
  引用:
my($dbid);orzmphhz
my($userdbname);orzmphhz
my($schemadbname);orzmphhz
my($defname);orzmphhz
my($dbDescObj);orzmphhz
my($emailLink);
orzmphhz
orzmphhz
my($session);orzmphhz
orzmphhz
orzmphhz
# inite the sessionorzmphhz
$session = $entity->GetSession();orzmphhz
orzmphhz
# Get IDorzmphhz
$dbid = $entity->GetFieldValue("dbid")->GetValue();
orzmphhz
# Get userdb nameorzmphhz
$dbDescObj = $session->GetSessionDatabase();orzmphhz
$userdbname = $dbDescObj->GetDatabaseName();
orzmphhz
# Get entity definiation nameorzmphhz
$defname = $entity->GetEntityDefName();
orzmphhz
orzmphhz
# Set your CQ web addressorzmphhz
$schemadbname = "CQ_Connection_Name"; # for example "2003.06.00"orzmphhz
orzmphhz
$webpc = "xxx.xxx.xxx.xxx"; # for example 192.168.0.3
orzmphhz
# Get the Defect email linkorzmphhz
orzmphhz
$emailLink = "http://".$webpc."/cqweb/main?command=GenerateMainFrame&service=CQ&schema=".$schemadbname."&contextid=".$userdbname."&entityID=".$dbid."&entityDefName=".$defname;orzmphhz
orzmphhz
orzmphhz
$entity->SetFieldValue("email_link", $emailLink);
orzmphhz
3. 在Defect的Submit action的Validation中加入一行orzmphhz
orzmphhz
  引用:
SetDefectEmailLink();
orzmphhz
4. 保存Schema,Upgrade Database,Submit Defect后,查询该Defect,看看email_link中是不是有该Defect的emailink,然后再点击测试一下.orzmphhz
orzmphhz
5.在Email Rule的邮件通知规则中的邮件通知字段中,加上这个email_link字段.orzmphhz
orzmphhz
*论坛中可能会把http的东西加上个URL,不要把论坛自动加上的东东也copy进去.orzmphhz
*如果你在Defect中加的字段不叫email_link,假如叫foobar,那你要把$entity->SetFieldValue("email_link",$emailLink)改成orzmphhz
$entity->SetFieldValue("foobar",$emailLink);orzmphhz
*祝大家可以顺利通过测试.orzmphhz
*如有遗漏,烦请指正.orzmphhz
orzmphhz
  引用:
orzmphhz
[ 本帖最后由 anthelion 于 2006-10-30 16:34 编辑 ]

序号 评论者 共有评论 38   【论坛浏览】  【发表评论】 评论时间
1 听雨屋檐人 支持楼主!马上测试中! 2006/10/30 14:22
2 听雨屋檐人 楼主请看报错情况:

Validating Schema...
Global HookDef "SetDefectEmailLink" : Validation failure from the HookDef language processor:
(in cleanup) Can't call method "GetSession" on an undefined value at (eval 63) line 13."

1 error(s) found

Validating Form(s)...

0 warning(s) found
2006/10/30 15:27
3 anthelion 前面定义变量加一个
my ($session)
再试.
2006/10/30 15:52
4 听雨屋檐人 继续报错
Validating Schema...
Global HookDef "SetDefectEmailLink" : Validation failure from the HookDef language processor:
(in cleanup) Search pattern not terminated at (eval 63) line 31."

1 error(s) found

Validating Form(s)...

0 warning(s) found
2006/10/30 16:22
5 懂你 听雨,你看看你新加的这个GlobalScript是不是叫SetDefectEmailLink?
如果不是的话,改一下应该就可以了!
2006/10/30 16:34
6 anthelion 刚才没注意,多加了个},已经删除. 2006/10/30 16:34
7 听雨屋檐人

  引用:
原帖由 anthelion 于 2006-10-30 16:34 发表
刚才没注意,多加了个},已经删除.

这个我发现了!
我贴的错误是去掉这个的报错!
我的全局是这个名字
继续!
2006/10/30 16:38
8 lingd 我这里编辑时到是没有报错
只是在客户端提交记录时,报错

ERROR!Execution of a hook failed during the action Submit.
It was theACTION_VALIDATION hook attached to the Defect “Test00000036”. The reason for the failure was:
Undefined subroutine &SetDefectEmailLink called at main::Defect_Validation line 268

[ 本帖最后由 lingd 于 2006-10-30 16:55 编辑 ]
2006/10/30 16:43
9 anthelion 我用的系统是Cq6.15+patchs+SQLServer2000SP3
OS是Widnows2000 Advanced Server.
不知道你们用的是什么系统.
可否把操作的详细步骤写上来.
2006/10/30 16:55
10 lingd 听雨,你的问题可能是这个问题引起的
论坛中可能会把http的东西加上个URL,不要把论坛自动加上的东东也copy进
去掉相关的url代码应该就可以了
2006/10/30 17:04
 共有评论数 38  每页显示 10
页码 1/4  |<  <<   1 2 3 4   >>  >|