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

Доп. проверка документа РЦ и его постановка в 6-ой статус

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Настройка и сопровождение
Предыдущая тема :: Следующая тема  
Автор Сообщение
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
СообщениеЧт Апр 22, 2010 08:35    Ответить с цитатой
Полезность: 1
ГлСП пишет:
фигня какая-то. опять теги не работают

Может кто подскажет, почему?


http://www.cftclub.ru/viewtopic.php?t=278

Рекомендую обрамлять пробелами вот так
Код:
[ code ]
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Настройка и сопровождение Часовой пояс: GMT + 3
Страница 1 из 1

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