При необходимости вы можете поместить нужный PL / SQL непосредственно в Условие, используя тип условия «Тело функции PL / SQL, возвращающее логическое значение». Например (используя ваш код сверху, который мне не совсем подходит - все дороги ведут к скрытому = 3!):
DECLARE
a NUMBER;
b NUMBER;
hidden NUMBER;
BEGIN
select count(1) into a from TN_HISTORY_ITEMID where itemid in (select id from TN_TREE where pid = (select id from tn_tree where pid =:P1_ID));
select count(1) into b from surv_host_data where id_client = :P1_ID;
if b <> 0 AND a = 0 then hidden := 3;
elsif a = 0 then hidden := 3;
elsif b = 0 then hidden := 3;
else hidden := 3;
end If;
return (hidden = 3);
End;
Если вам нужно сделать это с процессом и элементом страницы, то вам нужно убедиться, что элемент отображается перед областью и что процесс запускается до отображения области, которая будет скрыта. В противном случае ко времени установки предмета будет слишком поздно.