HOOK_BANK
На страницу Пред. 1, 2, 3
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Эмиралька Эксперт
Вступление в Клуб: 09.11.2015
|
Вт Июн 05, 2018 07:15   |
|
Полезность: 3
|
raxat_tl пишет: | vtar пишет: | FO_EXECUTE ?
тогда скопируйте (перетащите мышкой) из ТБП Расширение.Дистрибутив в ТБП Расширения.Банк.
У Вас получится хук банка, и в теле пишите
begin
Ваш код, для начала можно тестовый debug_pipe('зашли в хук ',0);
end; |
Точно так и сделали, но дело в том что дебаг не отрабатывает, т.е. в ТБП Расширения.Банк операция FO_EXECUTE не вызвался |
Давайте по шагам.
Открываете операцию HOOK.FO_EXECUTE с помощью АРМ Администратор словаря данных. Если в HOOK_BANK тоже есть такая операция, предварительно удалите её.
Заходите в закладку "Пакет", подзакладка "Тело". Ищете функцию FO_EXECUTE_EXECUTE.
Запомните текст. Закройте окно.
Теперь переключитесь в основное окно АРМ и перетащите мышкой операцию FO_EXECUTE из типа "Расширения. Дистрибутив" в "Расширения. Банк". Согласитесь со всеми вопросами. Дождитесь компиляции. Закройте все окна с операциями.
Снова откройте операцию HOOK.FO_EXECUTE с помощью АРМ Администратор словаря данных. Снова зайдите в закладку "Пакет", подзакладка "Тело". Сравните текст функции FO_EXECUTE_EXECUTE с запомненным ранее.
Обратите внимание на появившийся текст: Код: | if plp$class$ != 'HOOK' then
if plp$class$ = 'HOOK_BANK' then
return Z$HOOK_BANK_FO_EXECUTE.FO_EXECUTE_EXECUTE(plp$THIS,nvl(plp$CLASS,plp$class$),P_FOLDER,P_DATE,P_ADDS);
end if;
end if;
|
Здесь и осуществляется перенаправление функционала.
Если перенаправление функционала у вас не происходит, попробуйте вставить в ПАКЕТ Z$HOOK_FO_EXECUTE вывод какой-нибудь отладки. Особо обратите внимание на параметры this и plp$class и переменную plp$class$. |
|
 |
raxat_tl Участник со стажем
Вступление в Клуб: 04.03.2016
|
Вт Июн 05, 2018 08:11   |
|
Полезность: Нет оценки
|
vtar пишет: | raxat_tl пишет: |
Точно так и сделали, но дело в том что дебаг не отрабатывает, т.е. в ТБП Расширения.Банк операция FO_EXECUTE не вызвался |
Проверил только что. Скопировал хук в хук банка.
добавил в теле хука банка
Код: |
begin
stdio.put_line_buf('test!');
debug_pipe('test!');
end; |
Скомпилировал.
при исполнении ФР получаю тестовое сообщение 'test!'в всплывающем окне и в Мониторе .Все работает. |
Но у меня почему то не отрабатывается на операции FO_EXECUTE |
|
 |
raxat_tl Участник со стажем
Вступление в Клуб: 04.03.2016
|
Вт Июн 05, 2018 08:34   |
|
Полезность: Нет оценки
|
Эмиралька пишет: | raxat_tl пишет: | vtar пишет: | FO_EXECUTE ?
тогда скопируйте (перетащите мышкой) из ТБП Расширение.Дистрибутив в ТБП Расширения.Банк.
У Вас получится хук банка, и в теле пишите
begin
Ваш код, для начала можно тестовый debug_pipe('зашли в хук ',0);
end; |
Точно так и сделали, но дело в том что дебаг не отрабатывает, т.е. в ТБП Расширения.Банк операция FO_EXECUTE не вызвался |
Давайте по шагам.
Открываете операцию HOOK.FO_EXECUTE с помощью АРМ Администратор словаря данных. Если в HOOK_BANK тоже есть такая операция, предварительно удалите её.
Заходите в закладку "Пакет", подзакладка "Тело". Ищете функцию FO_EXECUTE_EXECUTE.
Запомните текст. Закройте окно.
Теперь переключитесь в основное окно АРМ и перетащите мышкой операцию FO_EXECUTE из типа "Расширения. Дистрибутив" в "Расширения. Банк". Согласитесь со всеми вопросами. Дождитесь компиляции. Закройте все окна с операциями.
Снова откройте операцию HOOK.FO_EXECUTE с помощью АРМ Администратор словаря данных. Снова зайдите в закладку "Пакет", подзакладка "Тело". Сравните текст функции FO_EXECUTE_EXECUTE с запомненным ранее.
Обратите внимание на появившийся текст: Код: | if plp$class$ != 'HOOK' then
if plp$class$ = 'HOOK_BANK' then
return Z$HOOK_BANK_FO_EXECUTE.FO_EXECUTE_EXECUTE(plp$THIS,nvl(plp$CLASS,plp$class$),P_FOLDER,P_DATE,P_ADDS);
end if;
end if;
|
Здесь и осуществляется перенаправление функционала.
Если перенаправление функционала у вас не происходит, попробуйте вставить в ПАКЕТ Z$HOOK_FO_EXECUTE вывод какой-нибудь отладки. Особо обратите внимание на параметры this и plp$class и переменную plp$class$. |
Всем огромное спасибо!!!Все отработало |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Вт Июн 05, 2018 09:06  ? |
|
Полезность: Нет оценки
|
raxat_tl пишет: | .
Всем огромное спасибо!!!Все отработало |
таки в чом была проблема ? |
|
 |
Эмиралька Эксперт
Вступление в Клуб: 09.11.2015
|
Вт Июн 05, 2018 10:54   |
|
Полезность: 1
|
raxat_tl пишет: | Всем огромное спасибо!!!Все отработало |
Там вверху есть кнопочка "Оценить". Используйте её, пожалуйста. |
|
 |
npsb Участник со стажем
Вступление в Клуб: 29.07.2015
|
Ср Авг 19, 2020 14:33   |
|
Полезность: Нет оценки
|
Цитата: | Обратите внимание на появившийся текст:
Код:
if plp$class$ != 'HOOK' then
if plp$class$ = 'HOOK_BANK' then
return Z$HOOK_BANK_FO_EXECUTE.FO_EXECUTE_EXECUTE(plp$THIS,nvl(plp$CLASS,plp$class$),P_FOLDER,P_DATE,P_ADDS);
end if;
end if;
Здесь и осуществляется перенаправление функционала.
Если перенаправление функционала у вас не происходит, попробуйте вставить в ПАКЕТ Z$HOOK_FO_EXECUTE вывод какой-нибудь отладки. Особо обратите внимание на параметры this и plp$class и переменную plp$class$. |
Если данный код в дистрибутивном варианте хука отсутствует,
что это означает? |
|
 |
Эмиралька Эксперт
Вступление в Клуб: 09.11.2015
|
Пн Авг 24, 2020 10:29   |
|
Полезность: Нет оценки
|
Цитата: | Цитата: | Обратите внимание на появившийся текст:
Код:
if plp$class$ != 'HOOK' then
if plp$class$ = 'HOOK_BANK' then
return Z$HOOK_BANK_FO_EXECUTE.FO_EXECUTE_EXECUTE(plp$THIS,nvl(plp$CLASS,plp$class$),P_FOLDER,P_DATE,P_ADDS);
end if;
end if;
Здесь и осуществляется перенаправление функционала.
Если перенаправление функционала у вас не происходит, попробуйте вставить в ПАКЕТ Z$HOOK_FO_EXECUTE вывод какой-нибудь отладки. Особо обратите внимание на параметры this и plp$class и переменную plp$class$. |
Если данный код в дистрибутивном варианте хука отсутствует,
что это означает? |
Это означает, что локализация операции под нужды Банка не производилась. |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|