Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Пн Сен 03, 2012 11:00   |
|
Полезность: Нет оценки
|
Скопировал ваш вариант:
put_line выдаёт : Открыт счет TTTTTTTTT № 30233810155510709185
Но в фин.счетах создаётся пустая запись!
Что то я ничего не понимаю  |
|
 |
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 |
Да вроде то, что надо, но он вызывается из кучи мест и поэтому у меня наоткрывалось очень много счетов
Вот думаю как лучше это делать один раз. Подумываю на BCD_PAYMENT (ДБО платежные документы) повесить свой реквизит типа boolean и если документ ещё не обрабатывался(мой реквизит = NULL), то открыть счёт и заполнить реквизит (FALSE).
Насколько это правильно и есть ли другие варианты?
Как узнать что хук вызвался из ТБП BCD_PAYMENT и операции PROCESS? |
|
 |
Ghost Профи
Вступление в Клуб: 24.11.2007
|
Пн Сен 10, 2012 10:00   |
|
Полезность: Нет оценки
|
yaffil пишет: | Да вроде то, что надо, но он вызывается из кучи мест и поэтому у меня наоткрывалось очень много счетов
Вот думаю как лучше это делать один раз. Подумываю на BCD_PAYMENT (ДБО платежные документы) повесить свой реквизит типа boolean и если документ ещё не обрабатывался(мой реквизит = NULL), то открыть счёт и заполнить реквизит (FALSE).
Насколько это правильно и есть ли другие варианты?
Как узнать что хук вызвался из ТБП BCD_PAYMENT и операции PROCESS? |
Я бы при открытии счета добавлял его с определенным кодом в массив счетов договора и потом чтобы не открывать его еще раз проверял есть ли он там. |
|
 |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Пн Сен 10, 2012 10:07   |
|
Полезность: Нет оценки
|
Да, подобная проверка у меня есть (соответствие 40817 и 30233), но проблема в том, что мне ещё и пополнение надо будет здесь делать, и поэтому надо какую то метку, чтобы пополнить 1 раз, а не при каждом вызове хука.
Думаю, если проверять что хук вызвался из ТБП BCD_PAYMENT и операции PROCESS, то этого вполне достаточно. Только как узнать пока не допёрло  |
|
 |
Alexsey Эксперт
Вступление в Клуб: 06.09.2007
|
Пн Сен 10, 2012 10:16   |
|
Полезность: Нет оценки
|
yaffil пишет: | Да, подобная проверка у меня есть (соответствие 40817 и 30233), но проблема в том, что мне ещё и пополнение надо будет здесь делать, и поэтому надо какую то метку, чтобы пополнить 1 раз, а не при каждом вызове хука.
Думаю, если проверять что хук вызвался из ТБП BCD_PAYMENT и операции PROCESS, то этого вполне достаточно. Только как узнать пока не допёрло  |
я бы в глобальных описаниях нарисовал логическую переменную и ее проверял. _________________ всегда есть как минимум 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, может к нему прицепиться. Я правильно понимаю, что если документ обработался, то этот флаг затирается с удалением транспортного документа? А то просто нет никакой переинициализации данного реквизита. |
|
 |
|