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

Счётчики

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


Вступление в Клуб: 18.08.2011
СообщениеПт Сен 21, 2012 09:46   Счётчики Ответить с цитатой
Полезность: Нет оценки
Добрый день.

Возможно ли завести в справочниках "Счётчики" счётчик в разрезе счёта? Т.е. чтобы у каждого счёта была своя месячная нумерация. Перещёлкивание +1 будет у меня вызываться при определённых условиях операций со счётом.
Или проще повесить свои 2 доп реквизита на счёт?
Alexsey
Эксперт


Вступление в Клуб: 06.09.2007
СообщениеПт Сен 21, 2012 10:01    Ответить с цитатой
Полезность: Нет оценки
А что вам мешает разработать свой код для шаблона формирования счета и обработать его в ХУКе?
_________________
всегда есть как минимум 2 выхода
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеПт Сен 21, 2012 10:07    Ответить с цитатой
Полезность: Нет оценки
Alexsey пишет:
А что вам мешает разработать свой код для шаблона формирования счета и обработать его в ХУКе?


Алексей, я не говорил, что мне для нумерации. Может не так выразился.
Мне надо считать количество платежей в месяц по счёту с определёнными параметрами и в зависимости от количества таких платежей - формировать комиссии или не формировать. При чём это надо в онлайне делать по реестру в транзакционном файле.
В голову пришло только 2 идеи: или счётчик настроить или 2 доп реквизита на счёт повесить.
Alexsey
Эксперт


Вступление в Клуб: 06.09.2007
СообщениеПт Сен 21, 2012 10:14    Ответить с цитатой
Полезность: Нет оценки
Если вам нужен счета с определенными параметрами - то тут механизм один. Если выборка с параметрами, то другой. Вы что конкретно хотите?
Я бы обошелся без дополнительных параметров, по крайней мере постарался бы.
_________________
всегда есть как минимум 2 выхода
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеПт Сен 21, 2012 10:23    Ответить с цитатой
Полезность: Нет оценки
Alexsey пишет:
Вы что конкретно хотите?
Я бы обошелся без дополнительных параметров, по крайней мере постарался бы.


Мне надо считать количество платежей в месяц по счёту с определёнными параметрами и в зависимости от количества таких платежей - формировать комиссии или не формировать. Например:
клиент снял деньги в чужом банкомате - первые пару раз мы ему простим комиссию при обработке транзакционного файла из ПЦ. За остальные возьмём по полной.
devor
Профи


Вступление в Клуб: 13.02.2012
СообщениеПт Сен 21, 2012 10:50    Ответить с цитатой
Полезность: Нет оценки
yaffil пишет:
Alexsey пишет:
Вы что конкретно хотите?
Я бы обошелся без дополнительных параметров, по крайней мере постарался бы.


Мне надо считать количество платежей в месяц по счёту с определёнными параметрами и в зависимости от количества таких платежей - формировать комиссии или не формировать. Например:
клиент снял деньги в чужом банкомате - первые пару раз мы ему простим комиссию при обработке транзакционного файла из ПЦ. За остальные возьмём по полной.

Для таких целей счетчики(сиквенсы) явно не подойдут.
yaffil
Профи


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

Для таких целей счетчики(сиквенсы) явно не подойдут.


Спасибо, буду тогда через доп реквизиты на AC_FIN делать.
svn
Профи


Вступление в Клуб: 04.02.2008
СообщениеПт Сен 21, 2012 11:08    Ответить с цитатой
Полезность: Нет оценки
а может всетаки вычпаром?
pas
Профи


Вступление в Клуб: 20.11.2007
СообщениеПт Сен 21, 2012 11:19    Ответить с цитатой
Полезность: Нет оценки
Можно и так:
Создать "Целевое назначение" для балансового счета.
А в хуке "Расчет номера счет по шаблону" "UYA_LIB_NUM_1" описать расчет.

В общем да, как Alexsey изначально писал.
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеПт Сен 21, 2012 11:29    Ответить с цитатой
Полезность: Нет оценки
Да мне не надо номер расчитывать, мне надо комиссию считать по уже существующим счетам у которых "целевое назначение" уже заполненно, при чём они разные для разных групп счетов Very Happy

Кроме того думаю, что каждый раз по каждой записи в транзакционном файле запускать выч. пар для каждой записи будет намного дольше чем использовать
Код:

if ::[AC_FIN].[PARAM]<5 then comission :=0;  ::[AC_FIN].[PARAM]:= ::[AC_FIN].[PARAM] +1
end if;


т.к. в ТБП Транзакция id AC_FIN определён. Или я не прав?
devor
Профи


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

Кроме того думаю, что каждый раз по каждой записи в транзакционном файле запускать выч. пар для каждой записи будет намного дольше чем использовать
Код:

if ::[AC_FIN].[PARAM]<5 then comission :=0;  ::[AC_FIN].[PARAM]:= ::[AC_FIN].[PARAM] +1
end if;


т.к. в ТБП Транзакция id AC_FIN определён. Или я не прав?

Наращенное значение имеет недостатки:
1) Документы могут и не провести.
2)Документ могут провести и откатить.

Если контролируемых счетов немного (как и проводок по ним), то количество лучше вычислять на лету.
Alexsey
Эксперт


Вступление в Клуб: 06.09.2007
СообщениеПт Сен 21, 2012 13:16    Ответить с цитатой
Полезность: Нет оценки
мне кажется

Код:
select x(count(1)) in vAcFin.[ARC_MOVE]
where  x.[DATE] >= ::[RUNTIME].[DATEFUN].bom(VDate)
     and x.[DATE] <= VDate
into cnt;

if cnt > 5 then
...
else
...
end if;


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


Вступление в Клуб: 18.08.2011
СообщениеПт Сен 21, 2012 13:37    Ответить с цитатой
Полезность: Нет оценки
Проблема в том, что не все документы надо учитывать. А надо учитывать только документы по обналичке из "Чужих" устройств. Т.е. в селект придётся городить ещё и связку с транзакционным файлом.
Операции мало вероятно, что отменят ибо в транзакционном файле они приходят по факту оплаты услуг или обналички из процессинга.
devor
Профи


Вступление в Клуб: 13.02.2012
СообщениеПт Сен 21, 2012 13:41    Ответить с цитатой
Полезность: Нет оценки
Alexsey пишет:
мне кажется

Код:
select x(count(1)) in vAcFin.[ARC_MOVE]
where  x.[DATE] >= ::[RUNTIME].[DATEFUN].bom(VDate)
     and x.[DATE] <= VDate
into cnt;

if cnt > 5 then
...
else
...
end if;


отработает не на много медленнее и для этого не нужно городить доп. реквизиты. вы сами сказали, что счет известен.
При этом система учитывает только проведенные документы

1)::[RUNTIME].[DATEFUN].bom(VDate) лучше заранее вычислить в отдельную переменную.
2)Если счет валютный, то в такой селект попадут документы переоценки. Лучше уж по MAIN_DOCUM селект строить с выделением только проведенных и только нужных документов.
devor
Профи


Вступление в Клуб: 13.02.2012
СообщениеПт Сен 21, 2012 13:44    Ответить с цитатой
Полезность: Нет оценки
yaffil пишет:
Проблема в том, что не все документы надо учитывать. А надо учитывать только документы по обналичке из "Чужих" устройств. Т.е. в селект придётся городить ещё и связку с транзакционным файлом.
Операции мало вероятно, что отменят ибо в транзакционном файле они приходят по факту оплаты услуг или обналички из процессинга.

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

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