今天偶然又发现了CQ的一个Bug。
重现步骤:对于Owner字段,将其在“已关闭”状态的行为设为“只读”,在其选项列表的Perl脚本中将值设为空:
my $state = $entity->GetFieldValue("State")->GetValue();
Debug("需求的状态为:".$state);
if($state eq "已关闭")
{
Debug("判断了已关闭的状态");
$entity->SetFieldValue("Owner", "");
Debug("关闭操作后, 将下一步处理人设为空");
}
测试的结果令我大吃一惊,居然以上的代码都没有得到执行!但是将Owner字段在“已关闭”状态下的行为设为“可选”,这段代码却执行了,真是疑惑不解!
后来将这段代码放到“关闭”操作的初始化脚本里面才得到我想要的结果。看来二次开发还得按照IBM的逻辑来!