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

HOOK. Кто он такой?
На страницу 1, 2  След.
 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Уроки ЦФТ-Банк для начинающих
Предыдущая тема :: Следующая тема  
Автор Сообщение
Archangel
Участник


Вступление в Клуб: 01.07.2009
СообщениеПт Окт 23, 2009 14:16   HOOK. Кто он такой? Ответить с цитатой
Полезность: Нет оценки
День добрый господа.

Проконсультируйте пожалуйста что это за зверь такой "HOOK" и с чем его едят.
IBSO
Профи


Вступление в Клуб: 20.08.2009
СообщениеПт Окт 23, 2009 14:22    Ответить с цитатой
Полезность: Нет оценки
Когда "никто" не помогает прочти наконец инструкцию... Laughing
Archangel
Участник


Вступление в Клуб: 01.07.2009
СообщениеПт Окт 23, 2009 14:26    Ответить с цитатой
Полезность: Нет оценки
IBSO пишет:
Когда "никто" не помогает прочти наконец инструкцию... Laughing


Спасибо и на этом Very Happy
Но к сожалению я ограничен в документации или просто не знаю где смотреть Very Happy Так как новичок. Поэтому и спрашиваю Very Happy

Кстати, а что нибудь дельное подсказать можешь?
IBSO
Профи


Вступление в Клуб: 20.08.2009
СообщениеПт Окт 23, 2009 14:35    Ответить с цитатой
Полезность: Нет оценки
А что конкретно "дельное" нужно?
Archangel
Участник


Вступление в Клуб: 01.07.2009
СообщениеПт Окт 23, 2009 14:40    Ответить с цитатой
Полезность: Нет оценки
IBSO пишет:
А что конкретно "дельное" нужно?


Хочу узнать что это вообще такое и как это можно применять в системе.

Слышал что их оставляют ЦФТшники для локальных доработок.

Можешь рассказать что это или подскажи пожалуйста какой докой можно воспользоваться Very Happy
IBSO
Профи


Вступление в Клуб: 20.08.2009
СообщениеПт Окт 23, 2009 14:56    Ответить с цитатой
Полезность: 1
на форуме поиском попробуйте воспользоваться для общей информации. А HOOk - это переопределение дистрибутивных возможностей ПО на желаемые. Это могут делать не только цфтшники, а сам банк. В классе HOOK стоят все возможные в системе. Вы какой вам нужен копируете в HOOK_BANK и пишите свои локальные операции.

А так не обижайтесь. просто про хуки знают даже операционисты в банке. Very Happy
prog
Эксперт


Вступление в Клуб: 03.03.2008
СообщениеПт Окт 23, 2009 14:58    Ответить с цитатой
Полезность: Нет оценки
Продвинутые у вас операционисты... Shocked
IBSO
Профи


Вступление в Клуб: 20.08.2009
СообщениеПт Окт 23, 2009 15:00    Ответить с цитатой
Полезность: Нет оценки
просто вчера звонит операционистка и говорит : напишите мне хук, что бы и ......свои пожелания. Shocked
Archangel
Участник


Вступление в Клуб: 01.07.2009
СообщениеПт Окт 23, 2009 15:00    Ответить с цитатой
Полезность: Нет оценки
IBSO пишет:
на форуме поиском попробуйте воспользоваться для общей информации. А HOOk - это переопределение дистрибутивных возможностей ПО на желаемые. Это могут делать не только цфтшники, а сам банк. В классе HOOK стоят все возможные в системе. Вы какой вам нужен копируете в HOOK_BANK и пишите свои локальные операции.

А так не обижайтесь. просто про хуки знают даже операционисты в банке. Very Happy


Спасибо Very Happy Прежде чем писать я пользовался поиском Very Happy
Я ни когда не обижаюсь, да и обидного здесь ничего нет Very Happy

Доку можете какую нибудь посоветовать?
prog
Эксперт


Вступление в Клуб: 03.03.2008
СообщениеПт Окт 23, 2009 15:07    Ответить с цитатой
Полезность: 1
Поиском нашел вот такую доку. Все вроде подробно...
Цитата:
Приложение 6-03-01 (Кредиты. Расширения (HOOK).doc
IBSO
Профи


Вступление в Клуб: 20.08.2009
СообщениеПт Окт 23, 2009 15:09    Ответить с цитатой
Полезность: Нет оценки
я тоже никак не найду кроме по продуктам.
prog
Эксперт


Вступление в Клуб: 03.03.2008
СообщениеПт Окт 23, 2009 15:12    Ответить с цитатой
Полезность: Нет оценки
В комментариях к самому типу HOOK написано следующее
Цитата:

ТБП HOOK и HOOK_BANK реализуют механизм, позволяющий Клиентам Компании
переопределять особо выделенные разработчиками Компании операции, реализующие
те или иные основные либо дополнительные алгоритмы обработки чего-либо.

См. документ "Интерфейсы и расширения для локальных доработок.doc"

На типе включено кэширование экземпляров для исключения часто выполняющегося
при обращении к операциям типа запроса
SELECT CLASS_ID FROM Z#HOOK WHERE ID = :b1


"Интерфейсы и расширения для локальных доработок.doc" у себя не нашел Sad
IBSO
Профи


Вступление в Клуб: 20.08.2009
СообщениеПт Окт 23, 2009 15:19    Ответить с цитатой
Полезность: Нет оценки
на сайте сопровождения есть дока Регламент локальных доработок.

Приложение 1. Правила реализации расширений для локальных доработок.

Операции расширений (HOOK) предназначены для выделения ЦФТ некоторых основных и дополнительных алгоритмов обработки, которые возможно переопределить при выполнении локальных доработок Клиента.


Реализация "ЦФТ-Банк"

1. Основные базовые неизменяемые объекты:
1.1. ТБП ::[HOOK] "Расширения. Дистрибутив". Признак "Может иметь экземпляры" у ТБП не установлен. Реквизиты и представления отсутствуют.
1.2. ТБП ::[HOOK_BANK] "Расширения. Банк", являющийся дочерним по отношению к ТБП ::[HOOK]. Признак "Может иметь экземпляры" у ТБП установлен. Реквизиты и представления отсутствуют.
1.3. ТБП ::[HOOK_BANK] имеет статический экземпляр (для этого в ТБП создан реквизит [FOR_STATIC] типа STRING_1, необходимый для создания статического экземпляра).
1.4. В ТБП ::[HOOK] создана операция [VARS]. В этой операции объявлена глобальная переменная ref_hook (тип - ref [HOOK]). Данная переменная инициализируется ссылкой на статический экземпляр типа ::[HOOK_BANK].

2. Устанавливается следующий порядок подключения продуктов к использованию данного механизма (при необходимости):
2.1. Выделяется блок кода, реализующий основной или дополнительный алгоритм обработки чего-либо. Данный блок кода оформляется в виде отдельной операции типа "Простая" в ТБП ::[HOOK]. Наименование данной операции должно по смыслу соответствовать сути выделенного алгоритма обработки. Имя операции (длинное и короткое) начинается с префикса - краткое сокращенное наименование подсистемы/продукта и оканчивается номером версии операции. В комментарии к операции описываются назначение операции, ее входные и выходные параметры.
Примечание. В данной операции не рекомендуется:
a. Объявлять переменные (вкладка "Переменные").
b. Использовать секцию "Глобальные описания".
2.2. В операции продукта добавляется вызов данной операции, например:
::[HOOK].[VARS]. ref_hook.[CORE_D_TST_SIG_1](v_doc.[FILIAL]);
Подробный пример см. ниже.
2.3. Т.к. все простые операций ТБП ::[HOOK] применяются к одной и той же переменной типа ссылка на ТБП ::[HOOK_BANK], которая ссылается на статический экземпляр ТБП, то для исключения блокировки этого экземпляра у операций ТБП ::[HOOK], содержащих в программном коде PL/SQL вставки, должен быть снят признак "Блокировка по умолчанию" на закладке "Свойства->Компиляция" редактора операций.
2.4. В целях обеспечения совместимости устанавливается следующий порядок поддержки версионности операций типа ::[HOOK]:
2.4.1. Список параметров и тип возвращаемого значения при выпуске обновлений текущей операции не изменяется
2.4.2. При необходимости как-то изменить список параметров либо тип возвращаемого значения
2.4.2.1. создается новая операция в типе ::[HOOK] (вызывающая внутри себя операцию предыдущей версии),
2.4.2.2. в операции продукта вызов операции предыдущей версии заменяется вызовом операции новой версии.

3. Устанавливается следующий порядок переопределения операций ТБП ::[HOOK] при выполнении локальных доработок Клиента:
3.1. Конкретная операция в ТБП ::[HOOK] перекрывается операцией из ТБП ::[HOOK_BANK] (с использованием штатных возможностей модуля "Администратор словаря данных") и модифицируется под локальные требования. Для обеспечения перекрытия необходимо, чтобы перекрываемая и перекрывающая операции совпадали по именам, по типу операции, по типу возвращаемого значения, по всем параметрам (наименование, тип, количество).
3.2. Т.к. все простые операций ТБП ::[HOOK_BANK] применяются к одной и той же переменной типа ссылка на ТБП ::[HOOK_BANK], которая ссылается на статический экземпляр ТБП, то для исключения блокировки этого экземпляра у операций ТБП ::[HOOK_BANK], содержащих в программном коде PL/SQL вставки, должен быть снят признак "Блокировка по умолчанию" на закладке "Свойства->Компиляция" редактора операций.
3.3. Запрещается создание в СИСТЕМЕ объектов, напрямую вызывающих операции ТБП ::[HOOK_BANK].

4. ТБП ::[HOOK] "Расширения. Дистрибутив" и ::[HOOK_BANK] "Расширения. Банк" и их свойства являются частью основного выпуска СИСТЕМЫ.

5. Все операции и представления в ТБП ::[HOOK] "Расширения. Дистрибутив" являются частью основного выпуска СИСТЕМЫ.

6. Все операции в ТБП ::[HOOK_BANK] "Расширения. Банк" не являются частью основного выпуска СИСТЕМЫ и относятся к локальным доработкам. Особенности реализации перекрытия операций отменяют требование обязательного использования префикса Клиента.
Пример: Требуется функция, возвращающая строку, содержащую подпись к некоторому платежному документу типа "Тестовый". Документ относится к общей части СИСТЕМЫ (учетное ядро). В ТБП ::[ HOOK] создаем операцию
Длинное наименование - УЯ. Получить подпись к документу типа "Тестовый". Вер.01
Короткое наименование - CORE_D_TST_SIG_1
Тип возвращаемого значения - Строка1000
Параметры Филиал P_FILIAL Ссылка на "Филиалы"

Тело
begin
return 'Подпись ___________________./__________________/';
end;
Вызов этой операции вставляется в программный код операции печати документа [PRINT_TEST_DOC]:
----------------------
::[HOOK].[VARS]. ref_hook.[CORE_D_TST_SIG_1](v_doc.[FILIAL]);
-----------------------
Локальная доработка для Клиента, обеспечивающая более сложный алгоритм получения строки подписи тестового документа, реализуется путем создания в ТБП ::[HOOK_BANK] перекрывающей операции:
Длинное наименование - УЯ. Получить подпись к документу типа "Тестовый". Вер.01
Короткое наименование - CORE_D_TST_SIG_1
Тип возвращаемого значения - Строка1000
Параметры Филиал P_FILIAL Ссылка на "Филиалы"

Тело
cRet varchar2(1000);
begin
----------------------------
Код вычисляющий строку cRet
----------------------------
return nvl(cRet,'Подпись ___________________./__________________/');
end;
В результате развития, сопровождения или внедрения СИСТЕМЫ может оказаться, что одного параметра P_FILIAL недостаточно, чтобы реализовать эту локальную доработку, и нам требуется еще один параметр типа "Ссылка на "Подразделения"". Однако мы не можем изменять операцию ::[HOOK].[CORE_D_TST_SIG_1], т.к. после добавления нового параметра в эту операцию и установки на схему Клиента перекрытие операций отключится. В результате отключится операция, обеспечивающая специфику Клиента. Для сохранения работоспособности уже перекрытых операций в ТБП ::[ HOOK] создается операция следующей версии. Эта операция должна вызывать операцию предыдущей версии:
Длинное наименование - УЯ. Получить подпись к документу типа "Тестовый". Вер.02
Короткое наименование - CORE_D_TST_SIG_2
Тип возвращаемого значения - Строка1000
Параметры Филиал P_FILIAL Ссылка на "Филиалы"
Подразделение P_DEPART Ссылка на "Подразделения"

Тело
begin
return this.[CORE_D_TST_SIG_1](P_FILIAL);
end;
Модифицируется вызов в программном коде операции печати документа [PRINT_TEST_DOC]:
----------------------
::[HOOK].[VARS]. ref_hook.[CORE_D_TST_SIG_2](v_doc.[FILIAL], v_doc.[DEPART]);
-----------------------

Если Клиенту потребуется получить результирующую строку, используя новый параметр P_DEPART, то необходимо будет реализовать в ТПБ ::[HOOK_BANK] перекрытие для операции новой версии.
Archangel
Участник


Вступление в Клуб: 01.07.2009
СообщениеПт Окт 23, 2009 15:19    Ответить с цитатой
Полезность: Нет оценки
prog пишет:
Поиском нашел вот такую доку. Все вроде подробно...
Цитата:
Приложение 6-03-01 (Кредиты. Расширения (HOOK).doc



Спасибо попробую разыскать эту доку Very Happy
Archangel
Участник


Вступление в Клуб: 01.07.2009
СообщениеПт Окт 23, 2009 15:42    Ответить с цитатой
Полезность: Нет оценки
Огромное спасибо за помощь господа Very Happy
А точнее за пинок в нужную сторону Wink
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Уроки ЦФТ-Банк для начинающих Часовой пояс: GMT + 3
На страницу 1, 2  След.
Страница 1 из 2

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