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

DATE_BEGIN <> DATE_BEGINING

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


Вступление в Клуб: 17.10.2014
СообщениеЧт Окт 06, 2016 07:57   DATE_BEGIN <-> DATE_BEGINING Ответить с цитатой
Полезность: Нет оценки
Добрый день, коллеги!

Как известно есть, в таблице PRODUCT две даты:
Дата создания договора DATE_BEGIN
Дата начала действия договора DATE_BEGINING
Это если в администраторе словаря (Admin*.exe) смотреть.
Не важно, смотрим мы на Продукты, Кредиты, Депозиты и т.п.
/* Бить больно за такие названия полей! Ну да не о том речь. */

Из названия, да и из документации ЦФТ ясно, что дата создания она постоянна. А дата начала действия может быть позднее, если например, договор начинает действовать с момента поступления средств.
Т.е. DATE_BEGIN <= DATE_BEGINING

Однако, наткнулись случайно на ошибку с депозитами.
"Дата договора не может быть больше даты начала действия договора!"
Ну думаю, как пользователи умудряются накосячить...
Как обычно, пришлось играть в следователя.
В результате, вскрытие показало, что в DEPOSIT.EDIT#AUTO прагма написана наоборот:
Код:

   if (P_DATE_BEGINING > P_DATE_BEGIN) then
      pragma error('Дата договора не может быть больше даты начала действия договора!');
   end if;

Ну и в других дистрибутивных операциях по депозитам, в формах, датой создания договора названа DTAE_BEGINING а датой начала DATE_BEGIN. (т.е. наоборот! Не верь тому, что видишь в администраторе).

Кто сталкивался и разбирался.
Правильно я понял, что ЦФТ запуталось в собственных наименованиях полей?! (А не надо так путано называть! Чем плохо было DTAE_CREATE, например?).

И теперь разработчик должен иметь в виду. Если ты видишь запись в PRODUCT, то если это кредит, то дата договора это DATE_BEGIN а дата начала - DATE_BEGINING, а если это депозит, то все наоборот!

Дочитавшие до этого места, Вы еще не запутались? Молодцы! Возьмите печенку Smile.

Дак, я что-то недопонял? Или так и живем? Нарушая азы теории БД. "НИКОГДА не делайте так, что поля в одной таблице означают разное, для разных записей".
А если кто вдруг поверил названию полей в администраторе, то сам виноват?
Gobur
Профи


Вступление в Клуб: 06.11.2012
СообщениеЧт Окт 06, 2016 08:18    Ответить с цитатой
Полезность: Нет оценки
просто у цфт разные продукты и куски от продуктов не то что разные люди, но и в разных городах пишут. Это нормально. В других АБС и похуже бывает.
Andry
Участник - экстремал


Вступление в Клуб: 14.01.2009
СообщениеЧт Окт 06, 2016 10:03   Re: DATE_BEGIN <-> DATE_BEGINING Ответить с цитатой
Полезность: Нет оценки
KhrushchevAV пишет:
.. Нарушая азы теории БД. "НИКОГДА не делайте так, что поля в одной таблице означают разное, для разных записей".

никоим образом не защищая бардак в структуре БД и ЦФТ как контору - хочу заметить что я не смог сейчас соотнести данное высказывание ни с формами нормальности РСУБД
https://ru.wikipedia.org/wiki/%D0%9D%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D1%84%D0%BE%D1%80%D0%BC%D0%B0
ни с одним из 12ти правил Кодда:
https://ru.wikipedia.org/wiki/12_%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB_%D0%9A%D0%BE%D0%B4%D0%B4%D0%B0

Smile
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеЧт Окт 06, 2016 10:49   Re: DATE_BEGIN <-> DATE_BEGINING Ответить с цитатой
Полезность: 1
KhrushchevAV пишет:
Ну и в других дистрибутивных операциях по депозитам, в формах, датой создания договора названа DTAE_BEGINING а датой начала DATE_BEGIN. (т.е. наоборот! Не верь тому, что видишь в администраторе).

Кто сталкивался и разбирался.
Правильно я понял, что ЦФТ запуталось в собственных наименованиях полей?! (А не надо так путано называть! Чем плохо было DTAE_CREATE, например?).


У ЦФТ руки не из того места растут, и я это давно понял, частенько с депозитами забываю эту хрень и отчеты не правильные получаются Smile
А надо было всего то ЦФТ писать название не BEGIN и BEGINING, а CREATE и BEGIN. И вообще не было бы путаницы, но нет надо, чтобы жизнь малиной не казалась Laughing
Поэтому я часто смарю представление "Полный список" и от туда вспоминаю что у ЦФТ наоборот в депозитах Twisted Evil
vtar
Эксперт


Вступление в Клуб: 20.03.2009
СообщениеЧт Окт 06, 2016 11:10    Ответить с цитатой
Полезность: Нет оценки
Gobur пишет:
просто у цфт разные продукты и куски от продуктов не то что разные люди, но и в разных городах пишут. Это нормально. В других АБС и похуже бывает.


в кусках ЦФТ продуктов куски пишут оленей куски, короче Smile))

AOT: в кредитах помню что то было такое, что в _begin писалась дата начала договора а в _begining - пусто или дата импорта, если кредит куплен или импортирован из другой системы. Как то так, или наоборот Smile))
nobel
Профи


Вступление в Клуб: 28.09.2011
СообщениеЧт Окт 06, 2016 12:18    Ответить с цитатой
Полезность: Нет оценки
у гарантий есть такая же фишка.могут две даты совпадать,а если разные то это уже другое приложение.мол постановка требования будет другой дата и от этой даты должна начинаться гарантия.

плохо что по ЦФТ нету единого правила понимания реквизитов.

тем более далеко не во всех продуктах это используется из типа "Продукты".помню приводил в порядок "Резервирование"-ни дата закрытия,ни состояние ни другие общие параметры не ставятся.
vtar
Эксперт


Вступление в Клуб: 20.03.2009
СообщениеЧт Окт 06, 2016 13:21    Ответить с цитатой
Полезность: Нет оценки
nobel пишет:


плохо что по ЦФТ нету единого правила понимания реквизитов.



а ещё меня сильно бесили 2 вещи:

1) однотипные реквизиты называются по разному, например
кредиты - CLIENT
гарантии - BENEFICIARY

2) нет единой нотации на однотипные реквизиты, типа
begin_date
date_begin
date_start
KhrushchevAV
Участник со стажем


Вступление в Клуб: 17.10.2014
СообщениеЧт Окт 06, 2016 13:30   Re: DATE_BEGIN <-> DATE_BEGINING Ответить с цитатой
Полезность: Нет оценки
Цитата:
У ЦФТ руки не из того места растут, и я это давно понял, частенько с депозитами забываю эту хрень и отчеты не правильные получаются Smile


Спасибо, коллеги. Очень помогли!
А то я уж думал, что "меня глючит"...
KhrushchevAV
Участник со стажем


Вступление в Клуб: 17.10.2014
СообщениеЧт Окт 06, 2016 14:00   Re: бардак Ответить с цитатой
Полезность: Нет оценки
Чисто "синдром отличника" не дает пропустить это утверждение.
Цитата:
никоим образом не защищая бардак в структуре БД и ЦФТ как контору - хочу заметить что я не смог сейчас соотнести данное высказывание ни с формами нормальности

Признаете, что бардак, но формальные критерии вроде не нарушены?
Так не бывает!
Если соблюдены все формальности - то не бардак.
Не очевидно же нарушение, думаю, из-за формального языка, которым они изложены в википедии.

По-моему, нарушена 3 нормальная форма (3NF). И правило гарантированного доступа (2 правило Кода).

Поясню. Нужен атрибут "дата создания договора". Ключ договора есть. При нормальных данных этого достаточно.
Код:
SELECT
 C_DATE_BEGIN
FROM
 Z#PRODUCT
WHERE
 ID = 1

Наивные...
"А вот фиг вам!" - Отвечает ЦФТ.
"В зависимости от вида договора, возможно, вам нужно совсем другое поле. Например C_DATE_BEGINING".
Т.е. налицо зависимость атрибута не только от первичного ключа, но и от другого атрибута (CLASS_ID).
(Никогда так не делайте! Сэкономите уйму сил в будущем).
Согласны?
Ghost
Профи


Вступление в Клуб: 24.11.2007
СообщениеЧт Окт 06, 2016 16:14    Ответить с цитатой
Полезность: Нет оценки
Ха, это вы еще в Аккредитивы международные не погружались, там такие чуйдеса с датами окончания и закрытия, прям обнять и горько рыдать. Smile
Эмиралька
Эксперт


Вступление в Клуб: 09.11.2015
СообщениеЧт Окт 06, 2016 17:05    Ответить с цитатой
Полезность: Нет оценки
не только депозиты, но и межбанк BANKS_LOANS
kai
Профи


Вступление в Клуб: 16.08.2012
СообщениеПт Окт 07, 2016 06:23    Ответить с цитатой
Полезность: Нет оценки
В 2011 г. по заявке одного из алтайских банков дорабатывал отчёт "Выписка" - региональное ЦБ вдруг стал требовать отображать в печатной форме не только наименование счёта, но и его обозначение ))) а что это - это много чего (см. 302-П или доку по отчёту).

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

Если кому-то поможет, посмотрите комментарии в библиотеке:
Код:
[AM_DESIGN_ACC]::[SLIB]


p.s. Кстати, мы видели при тестировании, что в "Выписке" ([AC_FIN]::[ACCMOVE]) теперь стала интересная и динамичная информация. Но отзывов ни от кого так и не получили, кроме заказчиков, что ЦБ был благосклонен к реализации. Smile
OlegFB
Участник - экстремал


Вступление в Клуб: 11.07.2007
СообщениеСр Окт 12, 2016 08:57    Ответить с цитатой
Полезность: Нет оценки
vtar пишет:
Gobur пишет:
просто у цфт разные продукты и куски от продуктов не то что разные люди, но и в разных городах пишут. Это нормально. В других АБС и похуже бывает.


в кусках ЦФТ продуктов куски пишут оленей куски, короче Smile))

AOT: в кредитах помню что то было такое, что в _begin писалась дата начала договора а в _begining - пусто или дата импорта, если кредит куплен или импортирован из другой системы. Как то так, или наоборот Smile))


Сейчас занимаюсь внедрением и просто в ахуе от подобного!
Например:
1.
В ЦФТ есть класс "Денежные единицы" (FT_MONEY) где по идее должны быть только валюты с которыми работает банк - т.е. те валюты, в которых в банке открыты счета.
НО! Для шлюза с процессингом (шлюз авторства цфт-шного же!!!) требуется чтобы в этом классе были ВСЕ валюты! Например, расплатился клиент карточкой в ОАЭ - будьте добры нац. валюту ОАЭ ввести, иначе шлюз сломается.
Для SWIFT-овых переводов с внешней конвертацией - то же самое, но ещё должен быть указан и курс! И это при том, что в ЦФТ существует справочник "Общероссийский классификатор валют", где все эти валюты есть по умолчанию.
2.
Для продукта "Операции с ценностями" требуется заведение инкассаторов в Пользователях с соответствующей должностью. А вот в продукте "Инкасация" нужно чтобы эти инкассаторы были заведены в клиентах И ПРИВЯЗАНЫ к банку через "Отношения с Банком".
3.
Для шлюзов с процессингом и с Золотой Короной требуется, чтобы телефонные номера в досье клиентов были заведены в РАЗНЫХ форматах!
И такой фигни больше чем до фига!
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
Страница 1 из 1

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