Расширения. Получение строки.
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
KhrushchevAV Участник со стажем
Вступление в Клуб: 17.10.2014
|
Вт Апр 18, 2017 13:27  Расширения. Получение строки. |
|
Полезность: Нет оценки
|
Расширения. Дистрибутив.
Есть такая операция
HOOK.DEPN_GET_STR
которая позволяет, по идее, банку гибко настраивать всякие там коды по депозитам, совсем не ломая дистрибутив.
Но что-то я не догоняю. Толи этим никто не пользуется, толи лыжи не едут, толи еще что...
Операция хоть и описана как возвращающая строку - на самом деле ничего не возвращает.
Код: | Begin
null;
&call_meth
End;
|
транслируется в :
Код: |
...
RES_1 := Z$DEPN_DEPN_GET_STR.DEPN_GET_STR_EXECUTE(...);
return null;
end;
|
Как видим, возвращает всегда null что бы не делали банковские программисты в своих расширениях.
Смешно, но в коде проверяется кое-где. Что там нам вернули из расширения...
Поделитесь плз, методами обхода. Желательно без правки дистрибутива. |
|
![](templates/subSilver/images/spacer.gif) |
Guest_SPb Участник со стажем
Вступление в Клуб: 27.02.2014
|
Вт Апр 18, 2017 13:44  Re: Расширения. Получение строки. |
|
Полезность: 1
|
Посмотрите как у вас настроен вызов этого хука в справочнике "Расширения и перекрытия. Точки вызова".
У меня хук дистрибутива компилируется в
Код: | RES_1 := Z$HOOK_BANK_DEPN_GET_STR.DEPN_GET_STR_EXECUTE(NULL,'HOOK_BANK',P_THIS => P_THIS,P_CODE_INFO => P_CODE_INFO,P_ON_DATE => P_ON_DATE,P_ADDS => P_ADDS);
if not RES_1 is NULL then
return RES_1;
end if;
return null; |
Для этого в справочнике "Расширения и перекрытия. Точки вызова" у этого хука вариант "Обработка завершения" выставлен в "Вернуть первый непустой результат".
И если будете менять настройку вызова этого хука в справочнике, то надо не забывать указывать "Перекомпилировать точку вызова". |
|
![](templates/subSilver/images/spacer.gif) |
KhrushchevAV Участник со стажем
Вступление в Клуб: 17.10.2014
|
Вт Апр 18, 2017 13:48   |
|
Полезность: Нет оценки
|
Во блин!
И у меня стоит "Вернуть первый непустой результат". (А попробовал все варианты).
И перекомпиляция не помогает...
У вас какая версия?
Может это после исправили? (У нас 16.5) |
|
![](templates/subSilver/images/spacer.gif) |
Guest_SPb Участник со стажем
Вступление в Клуб: 27.02.2014
|
Вт Апр 18, 2017 13:50   |
|
Полезность: Нет оценки
|
KhrushchevAV пишет: | Во блин!
У вас какая версия?
Может это после исправили? (У нас 16.5) |
16.6.11 |
|
![](templates/subSilver/images/spacer.gif) |
KhrushchevAV Участник со стажем
Вступление в Клуб: 17.10.2014
|
Вт Апр 18, 2017 14:49   |
|
Полезность: 1
|
ЦФТ ответило быстро и по делу. (Точнее программист ЦФТ на прямое письмо. Дай бог ей здоровья.)
Напишу сюда "для истории".
Сам бы низачто не догадался.
Оказалось, операции в HOOK и в HOOK_BANK имели разный тип возвращаемого значения. Строка32000 и Строка_32000. Для макроса &call_meth этого оказалось достаточно, чтобы скомпилироваться в безусловный return null;
Поправил тип возвращаемого значения. И компилятор сгенерировал желаемые:
Код: | RES_1 := Z$HOOK_BANK_DEPN_GET_STR.DEPN_GET_STR_EXECUTE(...);
if not RES_1 is NULL then
return RES_1;
end if;
return null;
end;
|
|
|
![](templates/subSilver/images/spacer.gif) |
nobel Профи
Вступление в Клуб: 28.09.2011
|
Ср Апр 19, 2017 09:51   |
|
Полезность: Нет оценки
|
KhrushchevAV пишет: | ЦФТ ответило быстро и по делу. (Точнее программист ЦФТ на прямое письмо. Дай бог ей здоровья.)
Напишу сюда "для истории".
Сам бы низачто не догадался.
Оказалось, операции в HOOK и в HOOK_BANK имели разный тип возвращаемого значения. Строка32000 и Строка_32000. Для макроса &call_meth этого оказалось достаточно, чтобы скомпилироваться в безусловный return null;
Поправил тип возвращаемого значения. И компилятор сгенерировал желаемые:
Код: | RES_1 := Z$HOOK_BANK_DEPN_GET_STR.DEPN_GET_STR_EXECUTE(...);
if not RES_1 is NULL then
return RES_1;
end if;
return null;
end;
|
|
это обычная ошибка при обновлении версии ИБСО.в документации по обновлению обычно выкладываю список HOOK которые будет изменены или удалены.обычны мы анализируем данный excel файл.
там могут изменяться количество параметров,типы параметров,тип возвращаемого результата или вообще использоваться больше не будут |
|
![](templates/subSilver/images/spacer.gif) |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|