Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.
Выборка

На начало проекта в Банке Новиком платежи не квитовались или квитовались вручную.

Это повышало операционный риск и трудозатраты.

Оглавление


Цели проекта

В рамках проекта внедрение модулей были выделены следующие цели: 

  1. Автоматизация процесса квитовки документов поступающих из МЦИ и SWIFT;
  2. Автоматическая постановка документов, не связанных с собственными торговыми операциями Банка, на позицию
    1. атомарными платежами (с суммой более пороговой);
    2. суммирование документов в разрезе получателя;
    3. объединенными (суммирование сумм документов с значением ниже порогового, с учетом временного интервала);
  3. Интеграция с АБС Банка по исходящим платежам, в том числе установка фактического исполнения платежа;
  4. Автоматическая установка входящих балансов из документов МЦИ и SWIFT.


Особенности реализации

Постановка документов на позицию

МЦИ

На позицию Банка устанавливались только документы поступления, в этой части мы использовали наработки из проекта внедрения модулей МЦИ и SWIFT в банке МТС

Из особенностей постановки документов на позицию, выделим пожелание специалистов Банка установку документов на позицию с учетом времени. Например, все документы с суммой ниже пороговой, с 9:00 до 12:00 устанавливаются на позицию с указанием интервала 1 в качестве назначения, групповые платежи суммируются в рамках одного интервала. 

Также в рамках проекта была реализована возможность позиционирования документа МЦИ по лоро счетам и возможность суммирования платежей в разрезе получателей платежа.


SWIFT

Все документы SWIFT было решено устанавливать на позицию без учета порогового значения. При постановке документов SWIFT была реализована возможность проведения платежа по лоро счетам. Для поиска лоро счета производились следующие действия:

  • Использовался SWIFT код получателя, если он был указан;
  • На основании кода производился поиск лоро-счетов в справочнике Навигатора;
  • По номеру счета, если он был указан.

Для реализации требований по постановке документов SWIFT на позицию были выполнена доработка Новые поля с указанием Бенефициара документа. В новых полях указываются бенефициары документа SWIFT.


Реализация

В рамках проекта был реализован следующий алгоритм: 

  1. Производится квитовка МЦИ и квитовка SWIFT необработанных документов МЦИ и SWIFT с платежами в Навигаторе. Задание запускается с помощью расписания заданий Oracle;
  2. Производится автоматическая постановка несквитованных документов на позицию в Навигаторе. Задание запускается с помощью расписания заданий Oracle;
  3. Обработка платежей поступающих из МЦИ: постановка на позицию и установка фактической даты валютирования;
  4. Установка остатка из выписок МЦИ и SWIFT при поступлении документа.


Дополнительные работы

Все работы были проведены в рамках проекта, отдельно выделим эти работы:

  • Новые поля с указанием Бенефициара документа;
  • Создана процедура для мониторинга квитовки документов МЦИ и платежей Навигатора (pkg_monitoring.sp_kvitovka_monitoring) доступная в релизе 6412 патч 7,которая позволяет проверить, какие платежи могли быть потенциально сквитованы с документами, анализ производится на основании:
    • Суммы;
    • Даты;
    • Инструмента;
  • Добавили настройку автоматического закрытия дня при установке баланса из выписки МЦИ или SWIFT, настройка указывается в дополнительных атрибутах счета и для каждого счета независима;
  • Добавили возможность автоматической квитовки сообщений ed107 МЦИ, квитовка производится по полям SWIFT получателя и плательщика.


Итог

Если Вас заинтересовал проект внедрения модулей МЦИ и SWIFT, и ваш Банк готов автоматизировать процессы работы с документами МЦИ и SWIFT — зарегистрируйте задачу на hd.softwell.ru.


Примеры скриптов

Ниже представлен пример скрипта для автоматической квитовки документов МЦИ и SWIFT:

Блок кода
languagesql
collapsetrue
DECLARE

    vInfo varchar2(2000);
    vDate Date;

BEGIN
    DBMS_SESSION.SET_IDENTIFIER(client_id=>-1); --ROBOT

    vDate := TD;

    vInfo := 'Запускае мквитовку МЦИ за' || TO_CHAR(vDate,'DD.MM.YYYY') || '.';
    sp_mci_auto_kvit(
         pvd=>vDate
        ,pshttype=>'ALL'
        ,puserid=>-1
        ,pfilial_id=>f_parameter_str('FILIAL_ID'));

    vInfo := vInfo || ' Запускаем квитовку SWIFT за' || TO_CHAR(vDate,'DD.MM.YYYY') || '.';
    sp_mci_auto_kvit_swift(
         pvd=>vDate
        ,pshttype=>'ALL'
        ,puserid=>-1);
	
    vInfo := vInfo || ' Квитовка прошла успешно!';
	
	vInfo := vInfo || ' Запускаем мониторинг проведенной квитовки';
	pkg_monitoring.sp_kvitovka_monitoring;
	vInfo := vInfo || ' Мониторинг проведен';
	
    vInfo := vInfo || ' Запускаем постановку на позицию МЦИ за' || TO_CHAR(vDate,'DD.MM.YYYY') || '.';
    pkg_mci_pos.set_to_position2(
         pdate=>td,
         p_placeaccount=>1,
         preis=>null);

    vInfo := vInfo || ' Запускаем постановку на позицию SWIFT за' || TO_CHAR(vDate,'DD.MM.YYYY') || '.';
    begin
        for cur in (select * from nostro n where n.in_swiftnavigator_enable ='True')
        loop
            pkg_swift_navigator.SET_TO_POSITION2(td,cur.accpointer);
        end loop;
        commit;
    end;

    vInfo := vInfo || ' Постановка на позицию успешна!';

/*    rn_msg.pkg_msg_send.prc_send_message
               (
                'AUTO_KVIT_MCI-SWIFT', --
                1                    , -- Приоритетсообщения.
                'Y'                  , -- Сохранитьсообщениевжурнале
                'Y'                  , -- Сохранитьрассылкувжурнале
                null                 , -- Списокпользователейсдоступомнаредактированиексчету
                vInfo                , -- Текстсообщения
                'INTEGRATION'        , -- Тема
                null                 , -- Текстсообщениядлявоспроизведения.
                null                 , -- Дополнительноеполе'A'
                null                 , -- Дополнительноеполе'B'
                null                 , -- Дополнительноеполе'C'
                null                   -- Дополнительноеполе'D'
               );*/

EXCEPTION
    when OTHERS THEN
        vInfo := vInfo || ' ORAERR = ' || SQLERRM;

        rn_msg.pkg_msg_send.prc_send_message
               (
                'AUTO_KVIT_MCI-SWIFT', --
                1                    , -- Приоритетсообщения.
                'Y'                  , -- Сохранитьсообщениевжурнале
                'Y'                  , -- Сохранитьрассылкувжурнале
                null                 , -- Списокпользователейсдоступомнаредактированиексчету
                vInfo                , -- Текстсообщения
                'INTEGRATION'        , -- Тема
                null                 , -- Текстсообщениядлявоспроизведения.
                null                 , -- Дополнительноеполе'A'
                null                 , -- Дополнительноеполе'B'
                null                 , -- Дополнительноеполе'C'
                null                   -- Дополнительноеполе'D'
               );
END;

Содержимое по меткам
showLabelsfalse
showSpacefalse
sortcreation
reversetrue
excerptTyperich content
cqllabel = "casestudy"