powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / В процессе определить вызвана ли страница с параметром clear cache
3 сообщений из 3, страница 1 из 1
В процессе определить вызвана ли страница с параметром clear cache
    #38850755
Casufi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно определить чистился ли кеш этой страницы через URL авторf?p=App:Page:Session:Request:Debug:ClearCache:itemNames:itemValues:PrinterFriendly грубо говоря, при вызове страницы в секции ClearCache упоминался ли номер этой страницы
Выхода вижу два
1) В апексе регистрируется факт очистки кеша перед рендером страницы, очень сомневаюсь что это так и даже если и так, что к этим данным можно достучаться
2) В Процессе можно получить URL с которым была вызвана страница и самому распарсить секцию ClearCache, но вот где мне получить URL? ВРоде у оракла был, пакет, который позволял стучаться к POST переменным и прочему клиентскому окружению.
...
Рейтинг: 0 / 0
В процессе определить вызвана ли страница с параметром clear cache
    #38850770
Casufi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Casufi,

Попробую парсить owa_util.get_cgi_env('QUERY_STRING');
...
Рейтинг: 0 / 0
В процессе определить вызвана ли страница с параметром clear cache
    #38850792
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Casufi,

Реализовывал недавно такую же задачу, вот код:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
function get_rp_parameter
return varchar2
-- возвращает параметр апекса reset page (Clear Cache) в верхнем регистре
-- формат стандартный - список страниц (а так же опции типа reset pagination) через запятую

-- примеры: "3", "2,0,RP"  (или null если не установлен)
-- параметр установлен только при page rendering (при page processing будет null)
as
  l_query_string varchar2(32767); -- текущий query_string (p=117:...)
  l_path_info varchar2(4000);     -- текущий path  (/F)
  l_p varchar2(32767);            -- значение параметра p
  l_rp varchar2(255);             -- значение reset page (Clear Cache) параметра p
begin
  -- example url 1: f?p=117:2:13800511843782::NO:2:P0_ID,P2_ID,P0_STATUS:,,&cs=31CE750E016BF1C3988751C9B908DF0DE
  -- example url 2: f?p_trace=yes&P=MYAPP:0:0:::2::
  -- example url 3: wwv_flow.show?p_instance=30116304714473&p_flow_id=134&p_flow_step_id=1

  l_path_info := owa_util.get_cgi_env ('PATH_INFO');
  l_query_string := owa_util.get_cgi_env('QUERY_STRING');

  -- извлекаем значение параметра p
  if upper(l_path_info) like '%/F' or upper(l_path_info) like '%.F' then

    -- на p может начинаться, или он может быть не первым параметром, если нашли, то обрезаем
    -- chr(38) - амперсанды, pl/sql developer любит их кушать
    if regexp_instr( upper(l_query_string)
                   , '(^|.+'||chr(38)||')P=([^'||chr(38)||']*)('||chr(38)||'.*)?' ) = 1 then

      l_p := regexp_replace( upper(l_query_string)
                         , '(^|.+'||chr(38)||')P=([^'||chr(38)||']*)('||chr(38)||'.*)?'
                         , '\2' );
    else
      l_p := null;
    end if;
  end if;

  -- теперь извлекаем reset page - всегда 6-й в параметре p
  if l_p is not null then

    l_rp := regexp_replace( l_query_string
                          , '([^:]*):([^:]*):([^:]*):([^:]*):([^:]*):([^:]*)(.*)'
                          , '\6' );
  end if;
  
  return l_rp;
end;
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / В процессе определить вызвана ли страница с параметром clear cache
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]