Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
timochev Эксперт
Вступление в Клуб: 02.07.2007
|
Ср Апр 21, 2010 10:32  Доп. проверка документа РЦ и его постановка в 6-ой статус |
|
Полезность: Нет оценки
|
Необходимо сделать некую дополнительную проверку исходящих документов РЦ. При невыполнении проверки документ должен попадать в 6-ой статус.
Пишу в HOOK_BANK.RC_RCHK_2
Код: | if ... then
P_MESS_STR := 'Ошибка';
return ::[REJECT]( [CODE_] = '600' and [ERR_CLASS] = 'E' );
end if; |
В этот код программа попадает, но документ РЦ все равно переходит в 10-ый статус, минуя 6-ой.
Что я не так делаю? Где надо писать проверку?
Можно, конечно, использовать HOOK_BANK.RC_FOR_PROV_2 и там явно переводить документ в 6-ой статуст, но хочется использовать системный механизм проверок. Чтоб идеологически правильно было. |
|
 |
IBSO Профи
Вступление в Клуб: 20.08.2009
|
Ср Апр 21, 2010 10:44   |
|
Полезность: 1
|
как то так....
if ....then
P_mess_str := 'Требуется подтверждение документа';
::[DOCUM_RC].[CHK_LIB].it_error_state(P_DOC, 'S_6', chk_id || '_00', P_mess_str);
end if; |
|
 |
timochev Эксперт
Вступление в Клуб: 02.07.2007
|
Ср Апр 21, 2010 11:11   |
|
Полезность: Нет оценки
|
Спасибо за вариант!
У меня заработал мой (по аналогии с дистрибутивным). Только не понял после чего. Выясняю... |
|
 |
timochev Эксперт
Вступление в Клуб: 02.07.2007
|
Ср Апр 21, 2010 11:23   |
|
Полезность: Нет оценки
|
работающий вариант:
Код: | if ... then
if [DOCUM_RC].[CHK_LIB].do_check(&DOCREF, P_CHK_ID||'_98') then
P_MESS_STR := 'Ошибка';
return ::[REJECT]( [CODE_] = '600' and [ERR_CLASS] = 'E' );
end if;
end if; |
Заработало после вызова [DOCUM_RC].[CHK_LIB].do_check.
Оказывается эта функция заносит в документ РЦ инфу |
|
 |
ГлСП Профи
Вступление в Клуб: 20.09.2007
|
Ср Апр 21, 2010 14:14   |
|
Полезность: 1
|
аналогично
Код: |
if LENGTH(nazn_pay) > len and
(
p_doc.[RCCLCODE] = ::[TRC].[INI].[DEF_PART1].[ CODE ] and p_doc.[filial] = '001' --если документ идет на РКЦ
or
p_doc.[filial] != 001 and p_doc.[RECEIVER].[BANK_REF] != ::[system].[VARIABLES].HeadBank --если документ из филиала идет на чужой банк
)
then
p_mess_str := 'Длина назначения платежа превышает макс.допустимую для РКЦ' ;
::[DOCUM_RC].[BUX_LIB].it_error_state(p_doc, 'S_6', p_chk_id||'_NZP', p_mess_str);
::[REJECT]( [ code ] = '600' and [ERR_CLASS] = 'E' );
if p_mess_str is not NULL then
return NULL;
end if;
end if;
|
|
|
 |
ГлСП Профи
Вступление в Клуб: 20.09.2007
|
Ср Апр 21, 2010 14:17   |
|
Полезность: Нет оценки
|
фигня какая-то. опять теги не работают
Может кто подскажет, почему? |
|
 |
prog Эксперт
Вступление в Клуб: 03.03.2008
|
Ср Апр 21, 2010 14:19   |
|
Полезность: Нет оценки
|
Из-за строки ["code"] в тексте
ГлСП пишет: | аналогично
Код: |
if LENGTH(nazn_pay) > len and
(
p_doc.[RCCLCODE] = ::[TRC].[INI].[DEF_PART1].[ CODE ] and p_doc.[filial] = '001' --если документ идет на РКЦ
or
p_doc.[filial] != 001 and p_doc.[RECEIVER].[BANK_REF] != ::[system].[VARIABLES].HeadBank --если документ из филиала идет на чужой банк
)
then
p_mess_str := 'Длина назначения платежа превышает макс.допустимую для РКЦ' ;
::[DOCUM_RC].[BUX_LIB].it_error_state(p_doc, 'S_6', p_chk_id||'_NZP', p_mess_str);
::[REJECT]( [ code ] = '600' and [ERR_CLASS] = 'E' );
if p_mess_str is not NULL then
return NULL;
end if;
end if;
|
|
|
|
 |
Admin Site Admin
Вступление в Клуб: 09.06.2007
|
|
 |
|