CftClub.ru
Клуб специалистов ЦФТ-Банк

This в HOOK

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
Emel
Участник со стажем


Вступление в Клуб: 02.07.2007
СообщениеПт Дек 21, 2007 07:57   This в HOOK Ответить с цитатой
Полезность: Нет оценки
Привет Всем!!

В хук передаються переменные
Код:

::[HOOK].[VARS].ref_hook.MD_ED_VALIDATE(
p_info   
,P#DOCUMENT_NUM      --Номер
,P#DATE_DOC      --Дата документа
,P#DATE_PL      --Срок оплаты
..................
,P_BUD_REQS      --Дополнительные реквизиты бюджетного документа
,P_USER_TYPE   --Пользовательский тип               
,this         --Документ
,mes_str      --Строка для сообщения(информационное сообщение)
,err_str      --Строка для ошибок (для запроса подтверждения)
);     

В хуке хотел получить значение
Код:

vNazn varchar(1000);
begin
vNazn :=this.[nazn];--.MAIN_DOCUM.[Nazn];
debug_pipe( '--->'||vNazn,0);


выдает ошибку:
У типа [HOOK] нет реквизита или операции [NAZN]


Где я ошибаюсь ?

Спасибо.
Alexsey
Эксперт


Вступление в Клуб: 06.09.2007
СообщениеПт Дек 21, 2007 09:23    Ответить с цитатой
Полезность: 1
Код:
vNazn varchar(1000);
begin
vNazn :=this.[nazn];--.MAIN_DOCUM.[Nazn];
debug_pipe( '--->'||vNazn,0);


у типа [HOOK] нет this поэтому и выдается ошибка.. вместо This необходимо указать переменную/параметр в которую и передается This...
т.е. операция будет иметь вид:
Код:
vNazn varchar(1000);
begin
vNazn :=<переменная/параметр>.[nazn];--.MAIN_DOCUM.[Nazn];
debug_pipe( '--->'||vNazn,0);

_________________
всегда есть как минимум 2 выхода
German
Профи


Вступление в Клуб: 25.06.2007
СообщениеПт Дек 21, 2007 10:02    Ответить с цитатой
Полезность: 3
Alexsey пишет:
у типа [HOOK] нет this поэтому и выдается ошибка..


У типа HOOK есть this - это идентификатор работающего HOOK, но это не идентификатор документа, как предположил Emel

Alexsey пишет:
вместо This необходимо указать переменную/параметр в которую и передается This...


В вызове хук ID документа уже передается в параметр P_DOC:

Код:
::[HOOK].[VARS].ref_hook.MD_ED_VALIDATE(
...
,this         --Документ
...
);


Emel пишет:
Где я ошибаюсь ?


В хуке вместо

Код:
vNazn :=this.[nazn];


надо сделать

Код:
vNazn :=P_DOC.[nazn];

_________________
Homo homini
Alexsey
Эксперт


Вступление в Клуб: 06.09.2007
СообщениеПт Дек 21, 2007 11:59    Ответить с цитатой
Полезность: Нет оценки
Цитата:
....

Alexsey пишет:
у типа [HOOK] нет this поэтому и выдается ошибка..


У типа HOOK есть this, это идентификатор работающего HOOK

Alexsey пишет:
вместо This необходимо указать переменную/параметр в которую и передается This...


В вызове хук ID документа уже передается в параметр P_DOC:



ну а я про что?... как писал выше вместо This необходимо указать переменную/параметр в которую и передается This...
в данном случае этой переменной/параметром и является P_DOC,
т.е. подставляем в этот код:

Код:
vNazn :=<переменная/параметр>.[nazn];

вместо "<переменная/параметр>" - P_DOС и получаем:

Цитата:


Код:
vNazn :=P_DOC.[nazn];

_________________
всегда есть как минимум 2 выхода


Последний раз редактировалось: Alexsey (Пт Дек 21, 2007 13:26), всего редактировалось 1 раз
Emel
Участник со стажем


Вступление в Клуб: 02.07.2007
СообщениеПт Дек 21, 2007 13:24    Ответить с цитатой
Полезность: 1
Я посмотрем как в вызове обозвана переменная
и так ее написал ,
а надо посмотреть было в принимающем пакете.

Спасибо всем
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru