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

открытие счёта в хуке
На страницу Пред.  1, 2, 3  След.
 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеПн Сен 03, 2012 11:00    Ответить с цитатой
Полезность: Нет оценки
Скопировал ваш вариант:
put_line выдаёт : Открыт счет TTTTTTTTT № 30233810155510709185
Но в фин.счетах создаётся пустая запись!
Что то я ничего не понимаю Sad
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеПн Сен 03, 2012 11:10    Ответить с цитатой
Полезность: Нет оценки
А, нет вру. У меня оказывается открывается счёт, но в довесок к нему создаётся пустая строка т.е. создаётся 2 записи.
В чём фишка?
devor
Профи


Вступление в Клуб: 13.02.2012
СообщениеПн Сен 03, 2012 11:21    Ответить с цитатой
Полезность: Нет оценки
yaffil пишет:
А, нет вру. У меня оказывается открывается счёт, но в довесок к нему создаётся пустая строка т.е. создаётся 2 записи.
В чём фишка?


Глобальную переменную need_to_open_pair нужно выставить в true.
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеПн Сен 03, 2012 11:22    Ответить с цитатой
Полезность: Нет оценки
О всё, благодарю. У меня просто операция была объявлена как конструктор. Поменял на простую - стало всё ОК.
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеПт Сен 07, 2012 12:23    Ответить с цитатой
Полезность: Нет оценки
В ДБО хуке все прописал, но встала проблема такая. Т.к. платёж через ДБО счёт привязан к депозитному продукту, то ещё до моих манипуляций в хуке (пополнение счёта с незавершёнки) происходит какая то проверка в ЦФТ на наличии средств на депозите. И т.к. там 0, то всё сваливается ещё до захода в мой ДБО хук.
Ошибка такая:
Код:

На депозите 40817810410112233444 не достаточно средств для списания суммы 10
ORA-20300: APP-DEPN.LIB_OUT: На депозите 40817810410112233444 не достаточно средств для списания суммы 10
ORA-06512: на  "IBS.Z$BCD_PAYMENT_PROCESS", line 538
ORA-06512: на  "IBS.Z$BC_DOC_PROCESS", line 157
ORA-06512: на  "IBS.Z$BC_DOC_DO_PROCESS", line 108

Можно ли как то обойти эту проверку, если документ пришел через ДБО?
Alexsey
Эксперт


Вступление в Клуб: 06.09.2007
СообщениеПт Сен 07, 2012 12:43    Ответить с цитатой
Полезность: Нет оценки
yaffil пишет:
В ДБО хуке все прописал, но встала проблема такая. Т.к. платёж через ДБО счёт привязан к депозитному продукту, то ещё до моих манипуляций в хуке (пополнение счёта с незавершёнки) происходит какая то проверка в ЦФТ на наличии средств на депозите. И т.к. там 0, то всё сваливается ещё до захода в мой ДБО хук.
Ошибка такая:
Код:

На депозите 40817810410112233444 не достаточно средств для списания суммы 10
ORA-20300: APP-DEPN.LIB_OUT: На депозите 40817810410112233444 не достаточно средств для списания суммы 10
ORA-06512: на  "IBS.Z$BCD_PAYMENT_PROCESS", line 538
ORA-06512: на  "IBS.Z$BC_DOC_PROCESS", line 157
ORA-06512: на  "IBS.Z$BC_DOC_DO_PROCESS", line 108

Можно ли как то обойти эту проверку, если документ пришел через ДБО?

Можно попробовать в ХУКе ДБО
_________________
всегда есть как минимум 2 выхода
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеПт Сен 07, 2012 12:47    Ответить с цитатой
Полезность: Нет оценки
В каком?
Я всю логику поместил в BC_PROC_DOC - до него обработка не доходит, до хука BC_NEED_PROV тоже не доходит. Дёргается где то раньше. Какой хук ковырять?
Alexsey
Эксперт


Вступление в Клуб: 06.09.2007
СообщениеПт Сен 07, 2012 12:53    Ответить с цитатой
Полезность: Нет оценки
yaffil пишет:
В каком?
Я всю логику поместил в BC_PROC_DOC - до него обработка не доходит, до хука BC_NEED_PROV тоже не доходит. Дёргается где то раньше. Какой хук ковырять?

Есть еще один ХУК BC_PROC_CHECK.
_________________
всегда есть как минимум 2 выхода
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеПт Сен 07, 2012 14:46    Ответить с цитатой
Полезность: Нет оценки
Alexsey пишет:

Есть еще один ХУК BC_PROC_CHECK.


Он пустой. И как в нём можно отключить проверку?
какая операция начинает обрабатывать документ ДБО после его получения через Фактуру?
Alexsey
Эксперт


Вступление в Клуб: 06.09.2007
СообщениеПт Сен 07, 2012 15:11    Ответить с цитатой
Полезность: Нет оценки
yaffil пишет:
Alexsey пишет:

Есть еще один ХУК BC_PROC_CHECK.


Он пустой. И как в нём можно отключить проверку?
какая операция начинает обрабатывать документ ДБО после его получения через Фактуру?

Если рублевое ПП то PROCESS типа BCD_PAYMENT.
В нем 2 Хука перед созданием из FLIB - BC_PROC_CHECK и после создания из FLIB - BC_PROC_DOC.
Так же я думаю, что надо глянуть функицю payComissionMdoc библиотеки LIB_PAY типа BANK_CLIENT. т.к. тут делается взимание комиссии за операцию. Ну и на всякий случай проанализируйте код BC_PROC_DOC, сдается мне у Вас там много интересного написано.
_________________
всегда есть как минимум 2 выхода
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеПн Сен 10, 2012 08:41    Ответить с цитатой
Полезность: Нет оценки
Alexsey пишет:

В нем 2 Хука перед созданием из FLIB - BC_PROC_CHECK


Да вроде то, что надо, но он вызывается из кучи мест и поэтому у меня наоткрывалось очень много счетов Very Happy
Вот думаю как лучше это делать один раз. Подумываю на BCD_PAYMENT (ДБО платежные документы) повесить свой реквизит типа boolean и если документ ещё не обрабатывался(мой реквизит = NULL), то открыть счёт и заполнить реквизит (FALSE).
Насколько это правильно и есть ли другие варианты?
Как узнать что хук вызвался из ТБП BCD_PAYMENT и операции PROCESS?
Ghost
Профи


Вступление в Клуб: 24.11.2007
СообщениеПн Сен 10, 2012 10:00    Ответить с цитатой
Полезность: Нет оценки
yaffil пишет:
Да вроде то, что надо, но он вызывается из кучи мест и поэтому у меня наоткрывалось очень много счетов Very Happy
Вот думаю как лучше это делать один раз. Подумываю на BCD_PAYMENT (ДБО платежные документы) повесить свой реквизит типа boolean и если документ ещё не обрабатывался(мой реквизит = NULL), то открыть счёт и заполнить реквизит (FALSE).
Насколько это правильно и есть ли другие варианты?
Как узнать что хук вызвался из ТБП BCD_PAYMENT и операции PROCESS?

Я бы при открытии счета добавлял его с определенным кодом в массив счетов договора и потом чтобы не открывать его еще раз проверял есть ли он там.
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеПн Сен 10, 2012 10:07    Ответить с цитатой
Полезность: Нет оценки
Да, подобная проверка у меня есть (соответствие 40817 и 30233), но проблема в том, что мне ещё и пополнение надо будет здесь делать, и поэтому надо какую то метку, чтобы пополнить 1 раз, а не при каждом вызове хука.
Думаю, если проверять что хук вызвался из ТБП BCD_PAYMENT и операции PROCESS, то этого вполне достаточно. Только как узнать пока не допёрло Very Happy
Alexsey
Эксперт


Вступление в Клуб: 06.09.2007
СообщениеПн Сен 10, 2012 10:16    Ответить с цитатой
Полезность: Нет оценки
yaffil пишет:
Да, подобная проверка у меня есть (соответствие 40817 и 30233), но проблема в том, что мне ещё и пополнение надо будет здесь делать, и поэтому надо какую то метку, чтобы пополнить 1 раз, а не при каждом вызове хука.
Думаю, если проверять что хук вызвался из ТБП BCD_PAYMENT и операции PROCESS, то этого вполне достаточно. Только как узнать пока не допёрло Very Happy

я бы в глобальных описаниях нарисовал логическую переменную и ее проверял.
_________________
всегда есть как минимум 2 выхода
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеПн Сен 10, 2012 10:30    Ответить с цитатой
Полезность: Нет оценки
Код:

   if nvl(th.[DO_PROC_FLAG], true) then
   if th.[IS_IN] then
      -- Обработка транспортного документа
      &sp(DO_PROCESS_IN)


Во нарыл, там есть реквизит DO_PROC_FLAG, может к нему прицепиться. Я правильно понимаю, что если документ обработался, то этот флаг затирается с удалением транспортного документа? А то просто нет никакой переинициализации данного реквизита.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
На страницу Пред.  1, 2, 3  След.
Страница 2 из 3

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