加入收藏 | 设为首页 | Life家族 | SCMLife | RMLife | PMLife | SQALife | TESTLife | 企业VIP专区 | 中文化荣誉殿堂
 
发新话题
打印

[已解决] 为何在记录脚本里无法正确写入列表视图( 此文章被查看:545次,被回复:2篇!! )

为何在记录脚本里无法正确写入列表视图

1. 昨天按yunshan说的写代码,可以正确将记录写入到列表视图
2. 同样的这段代码,
2.1 我把到它放在close操作的验证栏可以正确地写入到列表视图;
2.2 如果我新建一个action,类型为record_script_alias,关联记录脚本为gettree,
然后把这段代码放在gettree这个记录脚本,发现无法写入到列表视图中, 我可以保证$entity->AddFieldValue("recordtree", $child);执行这段代码前$child取得的值是正确的,但是不知道在记录脚本内不能写入到列表视图;
3. 没写过record_script_alias的action,不知道我这样创建这种类型的action是否正确;我估计Record_script有他的特殊的地方,不知道在对列表视图的操作上有什么注意的地方。
4. 哪位达人多多指教啊, 谢谢。


问题已经解决 [打开主题]
本主题的最佳答案为 [ 2 楼].



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

TOP

回复 楼主 的帖子

record_script_alias脚本与一般的Action hook是有区别的:
除了record_script_alias之外,其他的Action都相当于一个Modify操作。
所以问题就在这里,当你在record_script_alias之中向当前记录中写数据的时候,当前记录并没有处于Modify状态,这个时候就像往一个只读的记录中写数据,结果可想而知。

解决方法如下:
先使用EditEntity将当前对象置为修改状态,
然后写数据,validate...

下面是一小段record_script_alias对应的参考代码,vbs的。
        dim session, myentity
        set session = GetSession
        set myentity = session.GetEntity("Defect", GetFieldValue("id").GetValue)
        session.EditEntity myentity, "Modify"
        myentity.SetFieldValue "Description", "test"
        status = myentity.Validate
        if status = "" then
                myentity.Commit
        else
                myentity.Revert
        End If


最佳答案
该回答被楼主/管理员列为正解!



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

TOP

回复 沙发 的帖子

yunshan的回答总是很精辟!谢谢!
perl下的代码:
$entity->EditEntity("Modify");
$entity->AddFieldValue("recordtree", $child);
$entity->Validate();
$entity->Commit();



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

TOP

发新话题