Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Archangel Участник
Вступление в Клуб: 01.07.2009
|
Пт Окт 23, 2009 14:16  HOOK. Кто он такой? |
|
Полезность: Нет оценки
|
День добрый господа.
Проконсультируйте пожалуйста что это за зверь такой "HOOK" и с чем его едят. |
|
![](templates/subSilver/images/spacer.gif) |
IBSO Профи
Вступление в Клуб: 20.08.2009
|
Пт Окт 23, 2009 14:22   |
|
Полезность: Нет оценки
|
Когда "никто" не помогает прочти наконец инструкцию... ![Laughing](images/smiles/icon_lol.gif) |
|
![](templates/subSilver/images/spacer.gif) |
Archangel Участник
Вступление в Клуб: 01.07.2009
|
Пт Окт 23, 2009 14:26   |
|
Полезность: Нет оценки
|
IBSO пишет: | Когда "никто" не помогает прочти наконец инструкцию... ![Laughing](images/smiles/icon_lol.gif) |
Спасибо и на этом
Но к сожалению я ограничен в документации или просто не знаю где смотреть Так как новичок. Поэтому и спрашиваю
Кстати, а что нибудь дельное подсказать можешь? |
|
![](templates/subSilver/images/spacer.gif) |
IBSO Профи
Вступление в Клуб: 20.08.2009
|
Пт Окт 23, 2009 14:35   |
|
Полезность: Нет оценки
|
А что конкретно "дельное" нужно? |
|
![](templates/subSilver/images/spacer.gif) |
Archangel Участник
Вступление в Клуб: 01.07.2009
|
Пт Окт 23, 2009 14:40   |
|
Полезность: Нет оценки
|
IBSO пишет: | А что конкретно "дельное" нужно? |
Хочу узнать что это вообще такое и как это можно применять в системе.
Слышал что их оставляют ЦФТшники для локальных доработок.
Можешь рассказать что это или подскажи пожалуйста какой докой можно воспользоваться ![Very Happy](images/smiles/icon_biggrin.gif) |
|
![](templates/subSilver/images/spacer.gif) |
IBSO Профи
Вступление в Клуб: 20.08.2009
|
Пт Окт 23, 2009 14:56   |
|
Полезность: 1
|
на форуме поиском попробуйте воспользоваться для общей информации. А HOOk - это переопределение дистрибутивных возможностей ПО на желаемые. Это могут делать не только цфтшники, а сам банк. В классе HOOK стоят все возможные в системе. Вы какой вам нужен копируете в HOOK_BANK и пишите свои локальные операции.
А так не обижайтесь. просто про хуки знают даже операционисты в банке. ![Very Happy](images/smiles/icon_biggrin.gif) |
|
![](templates/subSilver/images/spacer.gif) |
prog Эксперт
Вступление в Клуб: 03.03.2008
|
Пт Окт 23, 2009 14:58   |
|
Полезность: Нет оценки
|
Продвинутые у вас операционисты... ![Shocked](images/smiles/icon_eek.gif) |
|
![](templates/subSilver/images/spacer.gif) |
IBSO Профи
Вступление в Клуб: 20.08.2009
|
Пт Окт 23, 2009 15:00   |
|
Полезность: Нет оценки
|
просто вчера звонит операционистка и говорит : напишите мне хук, что бы и ......свои пожелания. ![Shocked](images/smiles/icon_eek.gif) |
|
![](templates/subSilver/images/spacer.gif) |
Archangel Участник
Вступление в Клуб: 01.07.2009
|
Пт Окт 23, 2009 15:00   |
|
Полезность: Нет оценки
|
IBSO пишет: | на форуме поиском попробуйте воспользоваться для общей информации. А HOOk - это переопределение дистрибутивных возможностей ПО на желаемые. Это могут делать не только цфтшники, а сам банк. В классе HOOK стоят все возможные в системе. Вы какой вам нужен копируете в HOOK_BANK и пишите свои локальные операции.
А так не обижайтесь. просто про хуки знают даже операционисты в банке. ![Very Happy](images/smiles/icon_biggrin.gif) |
Спасибо Прежде чем писать я пользовался поиском
Я ни когда не обижаюсь, да и обидного здесь ничего нет
Доку можете какую нибудь посоветовать? |
|
![](templates/subSilver/images/spacer.gif) |
prog Эксперт
Вступление в Клуб: 03.03.2008
|
Пт Окт 23, 2009 15:07   |
|
Полезность: 1
|
Поиском нашел вот такую доку. Все вроде подробно...
Цитата: | Приложение 6-03-01 (Кредиты. Расширения (HOOK).doc |
|
|
![](templates/subSilver/images/spacer.gif) |
IBSO Профи
Вступление в Клуб: 20.08.2009
|
Пт Окт 23, 2009 15:09   |
|
Полезность: Нет оценки
|
я тоже никак не найду кроме по продуктам. |
|
![](templates/subSilver/images/spacer.gif) |
prog Эксперт
Вступление в Клуб: 03.03.2008
|
Пт Окт 23, 2009 15:12   |
|
Полезность: Нет оценки
|
В комментариях к самому типу HOOK написано следующее
Цитата: |
ТБП HOOK и HOOK_BANK реализуют механизм, позволяющий Клиентам Компании
переопределять особо выделенные разработчиками Компании операции, реализующие
те или иные основные либо дополнительные алгоритмы обработки чего-либо.
См. документ "Интерфейсы и расширения для локальных доработок.doc"
На типе включено кэширование экземпляров для исключения часто выполняющегося
при обращении к операциям типа запроса
SELECT CLASS_ID FROM Z#HOOK WHERE ID = :b1 |
"Интерфейсы и расширения для локальных доработок.doc" у себя не нашел ![Sad](images/smiles/icon_sad.gif) |
|
![](templates/subSilver/images/spacer.gif) |
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] перекрытие для операции новой версии. |
|
![](templates/subSilver/images/spacer.gif) |
Archangel Участник
Вступление в Клуб: 01.07.2009
|
Пт Окт 23, 2009 15:19   |
|
Полезность: Нет оценки
|
prog пишет: | Поиском нашел вот такую доку. Все вроде подробно...
Цитата: | Приложение 6-03-01 (Кредиты. Расширения (HOOK).doc |
|
Спасибо попробую разыскать эту доку ![Very Happy](images/smiles/icon_biggrin.gif) |
|
![](templates/subSilver/images/spacer.gif) |
Archangel Участник
Вступление в Клуб: 01.07.2009
|
Пт Окт 23, 2009 15:42   |
|
Полезность: Нет оценки
|
Огромное спасибо за помощь господа
А точнее за пинок в нужную сторону ![Wink](images/smiles/icon_wink.gif) |
|
![](templates/subSilver/images/spacer.gif) |
|