我来贴一个吧,使用在普通模式下,如果要使用在MultiSite模式下,判定一下当前site是哪个,重设一下$webpc就可以了.
sub GetEmailLink{
my($dbid);
my($userdbname);
my($schemadbname);
my($defname);
my($dbDescObj);
my($emailLink);
my($webpc);
$session = $entity->GetSession();
# Get ID
$dbid = $entity->GetFieldValue("dbid")->GetValue();
# Get userdb
$dbDescObj = $session->GetSessionDatabase();
$userdbname = $dbDescObj->GetDatabaseName();
# Get defname
$defname = $entity->GetEntityDefName();
# Set your CQ webpc
$webpc = "127.0.0.1"; #replace with your CQ WEB server IP.
$ combine the emailLink
$emailLink = "http://".$webpc."/cqweb/main?command=GenerateMainFrame&service=CQ&schema=".$schemadbname."&contextid=".$userdbname."&entityID=".$dbid."&entityDefName=".$defname;
return $emailLink;
}
使用方法:
在CQ的state record type中增加一个字段 email_link,然后当一个Defect提交时,调用这个方法生成email link,再填充到这个字段中,发送email时包括这个字段即可.
[ 本帖最后由 anthelion 于 2006-10-30 11:39 编辑 ]