以编程方式在adf中的实体对象中设置验证器消息

时间:2014-04-24 11:47:53

标签: oracle-adf

在ADF中执行oracle表单“when-validate-item”触发器 示例代码如下所示。

declare
sysdate1 date;
begin
begin 
select sysdate into sysdate1 from dual; 
if to_char(:xdate,'cc') < '20' then 
message('Verify the Century Please'); 
message('Verify the Century Please', NO_ACKNOWLEDGE); 
raise form_trigger_failure; 
end if; 
if x_date > sysdate1 then 
message('You cannot enter future date'); 
message('You cannot enter future date', NO_ACKNOWLEDGE); 
raise form_trigger_failure; 
end if; 
dp_date();
end;

这是否可以以编程方式更改实体对象中的验证器消息?因为我正在实现oracle表单“When-validate-Item-trigger”,其中基于条件错误消息如上所述。[在ADF中我们可以创建多个消息]我引用此语句 “脚本表达式验证程序允许您输入多个错误消息。如果验证脚本有条件地在此链接http://docs.oracle.com/cd/E23943_01/web.1111/b31974/bcvalidation.htm#CACCGAJH上返回不同的错误或警告消息,这很有用,但没有提供任何示例, 可以任何机构向我提供任何“指针”或任何其他实现方式吗? 在此先感谢。

1 个答案:

答案 0 :(得分:1)

在上面的场景中,我们可以使用两种方式解决问题(据我所知)。如果我们在代码中有来自其他实体对象的项目(除了此项目可用的当前EO),那么我们可以在托管bean中编写“when-validate-item”触发器方法,我们可以在模糊中调用它该项目的事件。

有趣的是,在实体对象的项目的业务规则中创建一个表达式验证器,选择“脚本表达式”作为规则类型并给出“规则定义” “source.customValidateItem(newValue)”其中“customValidateItem”是您的EntityImpl类中的自定义方法,并且正在使用groovy表达式调用它,并设置失败处理消息,如下图所示。enter image description here

在此之前你需要创建一个瞬态变量,如ex:message,我们可以使用groovy表达式“source.message”从EntityImpl类访问该项(消息)的值,并在其中设置“message”项值基于if条件的类,例如:if(gid!=223) { setmessage("Please check gid is not 223!!"); return false;
}else if(gid!=224){ setmessage("please check gid is not 224!!"); return false; }

setmessage是在EntityImpl中创建的访问者。

希望这有助于某些身体

感谢。