Oracle 表单个性化
Posted
技术标签:
【中文标题】Oracle 表单个性化【英文标题】:Oracle Form Personalization 【发布时间】:2019-10-04 11:01:54 【问题描述】:enter image description here
我在表单个性化方面遇到问题,我是 oracle 的初学者 当用户访问最终就业表格并试图终止用户时,EBS 和 Forms.i 需要在 HR 模块中进行验证。 当最终用户单击 TERMINATE 按钮时,它应该检查条件,如果条件为空,那么它应该通过错误消息。
我正在使用这些条件
select 'Y'
from dual
where exists (select 'Y'
from pa_expenditure_items_all paei,
pa_expenditures_all pae
where paei.expenditure_id = pae.expenditure_id and
pae.incurred_by_person_id = : person_id and
cost_distributed_flag = 'N'
)
【问题讨论】:
如果你有问题,那么你应该问它。 【参考方案1】:我猜应该是这样的:
declare
l_yes varchar2 (1);
begin
select max ('Y')
into l_yes
from dual
where exists
(select 'Y'
from pa_expenditure_items_all paei, pa_expenditures_all pae
where paei.expenditure_id = pae.expenditure_id
and pae.incurred_by_person_id = :person_id
and cost_distributed_flag = 'N');
if l_yes is null
then
message ('Condition is not met');
raise form_trigger_failure;
else
-- Do something; probably terminate that user
null;
end if;
end;
【讨论】:
嗨 LittleFoot 能否请您提供完整的导航。我用你的查询仍然出错 不幸的是,我不能。我不知道 EBS 及其程序。我发布的代码在 Forms (Builder) 中工作,但这或多或少是我能为你做的所有事情。对不起。【参考方案2】:在“条件”字段中,您不要输入完整的查询。您只需放入一个布尔表达式(例如您将放入查询的WHERE
子句)。
所以,不如试试这个:
exists (select 'Y'
from pa_expenditure_items_all paei,
pa_expenditures_all pae
where paei.expenditure_id = pae.expenditure_id and
pae.incurred_by_person_id = :person_id and
cost_distributed_flag = 'N'
)
:person_id
假定 PERSON_ID
是您的表单触发器触发的块中的一个字段。最好使用:block.field
形式使其更加明确。
【讨论】:
嗨,马修,这些是字段 :PERIOD_OF_PLACEMENT.TERMINATE 和 :person_id 是参数 这也很好,所以:parameter.person.id
。我希望您在这里有几个问题,而不仅仅是在条件字段中放错了东西。您应该用实际问题和问题更新您的帖子。以上是关于Oracle 表单个性化的主要内容,如果未能解决你的问题,请参考以下文章