发新话题
打印

[原创] [实现CQ需求]--9. 怎样在发给用户的Email提醒信中,自动包含bug的web访问地址。( 此文章被查看:7740次,被回复:38篇!! )

回复 #19 anthelion 的帖子

anthelion讲的两点我都没问题
但在编译时,还是有问题如下:

正在验证模式...
全局 HookDef“SetDefectEmailLink”:HookDef 语言处理器返回验证失败:
syntax error at (eval 28) line 32, near "".$defname.;

$entity->SetFieldValue("email_link"
        (in cleanup) Can't find string terminator '"' anywhere before EOF at (eval 28) line 32.

发现 1 个错误

正在验证表单...

发现 0 个错误


发现 0 个警告


我的emailLink是这样写的
# Set your CQ web address
$schemadbname = "cqtraining";
$webpc = "selinaspc";

# Get the defect email link
$emailLink = "http://".$webpc."/cqweb/main?command=GenerateMainFrame&service=CQ&schema=".$schemadbname."&c&entityID=".$dbid."&entityDefName=".$defname;

原来粗心少了个"

[ 本帖最后由 selina 于 2006-11-10 10:15 编辑 ]

© 本文为 selina 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员
我选择,我喜欢

TOP

我改成VbScript的,验证不成功,也查不出错误。有谁能提供下VBScript的版本,谢谢

© 本文为 amanda 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

楼主,我用的cq7.0
怎么都编译不过,和silana的错误一样

© 本文为 自在飞 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

问题解决。

加sub{}就可以了。

sub SetDefectEmailLink{
my($dbid);
my($userdbname);
my($schemadbname);
my($defname);
my($dbDescObj);
my($emailLink);

my($session);


# inite the session
$session = $entity->GetSession();

# Get ID
$dbid = $entity->GetFieldValue("dbid")->GetValue();
# Get userdb name
$dbDescObj = $session->GetSessionDatabase();
$userdbname = $dbDescObj->GetDatabaseName();
# Get entity definiation name
$defname = $entity->GetEntityDefName();

# Set your CQ web address
$schemadbname = "CQ_Connection_Name"; # for example "2003.06.00"

$webpc = "xxx.xxx.xxx.xxx"; # for example 192.168.0.3
# Get the Defect email link

$emailLink = "http://".$webpc."/cqweb/main?command=GenerateMainFrame&service=CQ&schema=".$schemadbname."&contextid=".$userdbname."&entityID=".$dbid."&entityDefName=".$defname;


$entity->SetFieldValue("email_link", $emailLink);}
本帖最近评分记录
  • 听雨屋檐人 威望 +1 能把自己遇到问题的解决方法发布!非常 ... 2007-1-4 18:03
  • 听雨屋檐人 金钱 +5 能把自己遇到问题的解决方法发布!非常 ... 2007-1-4 18:03

© 本文为 自在飞 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

我能出来链接,但是点击进入的是web 登陆界面:(高手快指点指点………………

© 本文为 kafei_dou 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

引用:
原帖由 kafei_dou 于 2007-1-4 14:19 发表
我能出来链接,但是点击进入的是web 登陆界面:(高手快指点指点………………
让用户首先登陆到cq-web中!然后在邮件中点击连接即可!

© 本文为 听雨屋檐人 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员
clearcase+clearquest个人博客:听雨屋檐人的博客
听雨屋檐人的淘宝小店!:听雨屋檐人的淘宝小店,欢迎光临

TOP

搞定后 该给精华

© 本文为 奥迪A6 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员
----
已经赚取了一个福牛乐乐,有没有可能赚到第二个呢?

TOP

好贴,我正需要,如果楼主能把email地址的编码格式说明一下,对我帮助就更大了

© 本文为 暗夜行路 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

我在6.15下调试报如下错误:见附件
另外,在Defect的那个动作下的Validation中加入一行“SetDefectEmailLink();”
调通实现了此功能的指点一下。谢谢!

附件

11.jpg (19.32 KB)

2007-4-17 17:52

错误信息

11.jpg


© 本文为 佳音 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

已在7.0版本实验成功,其实这个和VBScript还是Perl脚本来实现一点关系都没有,重点是这个Web地址格式,我自己实际的邮件地址格式为:
   http://10.30.2.132/cqweb/main?co ... p;entityDefName=Bug
    至于其他如何取Entity信息,如何取用户数据库名字,Perl脚本和VBScript脚本没有多大的差异。
   我说下我们用的方法:
   1、在记录类型上加一个字段如:RecordWeblink,字段类型为Short String,
   2、在该字段的Default Value Hook里写如下的代码
           dim weblink
        weblink="http://10.30.2.132/cqweb/main?command=GenerateMainFrame&service=CQ&schema=7.0.0&contextid=CMMDB"    '把固定的信息先写上,web地址后半段信息后面根据各个记录的信息动态设置。
        setfieldvalue "RecordWeblink", weblink
    3、在某Action的Notification里写Hook,这里不是完整的代码,完整的代码大家自己补充,没有全部写

    mFrom=
      mto=
      mSub=
      WebInfo="&EntityID=" & GetEntityDefName & "&entityDefName=Bug"   ' 由于我是在某实体上写的Hook,所以实体名称是已知的,当然这样做代码移植性不太好。
    mBody=mBody & vbCrLf & "详情请查看:"  & " " & getfieldvalue("RecordWeblink").getvalue & WebInfo
      msg.SetSubject mSub
       msg.SetBody mBody
       msg.SetFrom mFrom
       msg.Deliver

[ 本帖最后由 killer215 于 2007-4-17 21:04 编辑 ]

© 本文为 killer215 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

发新话题