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

Попробую парсить owa_util.get_cgi_env('QUERY_STRING');
...
Рейтинг: 0 / 0
09.01.2015, 14:30
    #38850792
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В процессе определить вызвана ли страница с параметром clear cache
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
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / В процессе определить вызвана ли страница с параметром clear cache / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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