Подмена дистрибутивной операции
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
eugene_smith Участник
Вступление в Клуб: 26.12.2015
|
Сб Дек 26, 2015 13:52  Подмена дистрибутивной операции |
|
Полезность: Нет оценки
|
Добрый день!
Буду признателен, если кто-то подскажет адекватное решение задачи. Требуется подменить логику дистрибутивной операции. Есть предположение, что возможен следующий вариант реализации:
1. Сделать расширение операции
2. Из секции валидации расширения plp-вызовом запускать замещающую операцию
3. После plp-вызова завершать выполнение операции.
Валидация расширения, таким образом, имеет вид:
Код: | begin
if 1 = 1 then
stdio.put_line_buf('<% PLPCALL %THIS%.[TEST_OP2]() %>');
return;
end if;
&BASE$SETVARS;
&BASE$VALIDATE;
&BASE$GETVARS;
end;
|
Тело операции-расширения:
Код: | begin
if 1 = 1 then
return;
end if;
&BASE$SETVARS;
&BASE$EXECUTE;
end; |
Реализация упирается в тот факт, что несмотря на безусловный возврат из секции валидации (вместо return также был опробован exit с тем же результатом), отображается форма основной операции.
Есть ли возможность сделать полноценную подмену? |
|
 |
prog Эксперт
Вступление в Клуб: 03.03.2008
|
Сб Дек 26, 2015 22:49   |
|
Полезность: Нет оценки
|
Думаю, при такой постановке задачи ответ - нет. Полноценную замену не сделать. Объясните подробно для чего и где вы хотите сделать подмену, может, есть иное решение. |
|
 |
Alkov Профи
Вступление в Клуб: 23.09.2010
|
Пн Дек 28, 2015 04:28  Re: Подмена дистрибутивной операции |
|
Полезность: Нет оценки
|
eugene_smith пишет: |
Реализация упирается в тот факт, что несмотря на безусловный возврат из секции валидации (вместо return также был опробован exit с тем же результатом), отображается форма основной операции.
Есть ли возможность сделать полноценную подмену? |
А если PLPCALL сделать в клиент скрипте по LastControl is Nothing ?
А затем закрыть операцию по PostEvent ? |
|
 |
Эмиралька Эксперт
Вступление в Клуб: 09.11.2015
|
Пн Дек 28, 2015 08:09  Re: Подмена дистрибутивной операции |
|
Полезность: Нет оценки
|
eugene_smith пишет: | Добрый день!
Буду признателен, если кто-то подскажет адекватное решение задачи. Требуется подменить логику дистрибутивной операции. Есть предположение, что возможен следующий вариант реализации:
1. Сделать расширение операции
2. Из секции валидации расширения plp-вызовом запускать замещающую операцию
3. После plp-вызова завершать выполнение операции.
|
А зачем вообще расширение?
Закройте доступ к дистрибутивной операции, да сделайте локальную свою такую же. |
|
 |
eugene_smith Участник
Вступление в Клуб: 26.12.2015
|
Пн Дек 28, 2015 17:58  Re: Подмена дистрибутивной операции |
|
Полезность: Нет оценки
|
Эмиралька пишет: |
А зачем вообще расширение?
Закройте доступ к дистрибутивной операции, да сделайте локальную свою такую же. |
Данная операция вызывается из другой, которую желательно держать в актуальном состоянии. |
|
 |
[censored] Гость
|
Вт Дек 29, 2015 00:28  Re: Подмена дистрибутивной операции |
|
Полезность: Нет оценки
|
eugene_smith пишет: | Эмиралька пишет: |
А зачем вообще расширение?
Закройте доступ к дистрибутивной операции, да сделайте локальную свою такую же. |
Данная операция вызывается из другой, которую желательно держать в актуальном состоянии. |
ключевой вопрос - каким образом вызывается |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|