- Создал(а) Насибулин Ильнур, редактировал(а) Карпов Анатолий 26.авг.2019
На начало проекта в Банке МТС все платежи квитовались вручную. Это повышало операционный риск и трудозатраты.
Цели проекта
В рамках проекта внедрение модулей были выделены следующие цели:
- Автоматизация процесса квитовки документов поступающих из МЦИ и SWIFT;
- Автоматическая постановка документов, не связанных с собственными торговыми операциями Банка, на позицию
- атомарными платежами (с суммой более пороговой) и
- объединенными (суммирование сумм документов с значением ниже порогового);
- Интеграция с АБС Банка по исходящим платежам, в том числе установка фактического исполнения платежа;
- Автоматическая установка входящих балансов из документов МЦИ и SWIFT.
Особенности реализации
Постановка документов на позицию
МЦИ
В рамках проекта необходимо выделить следующую особенность, что из документов МЦИ и SWIFT поступающих извне, на позицию Банка устанавливались только входящие документы (требования), все исходящие платежи поступали из АБС Банка (обязательства).
Для реализации этой особенности были добавлены настройки автоматической постановки документов. Настройка позволяет автоматически устанавливать документы по следующим признакам:
- Филиал – для многофилиальной версии, настройки для каждого филиала устанавливаются независимо;
- Тип документа – основные типы документов, например ED101 или MT202;
- Направление платежа:
- Только поступление – на позицию автоматически будут устанавливаться только платежи поступления;
- Только списания – на позицию автоматически будут устанавливаться только платежи списания;
- Все – на позицию автоматически будут устанавливаться все платежи, вне зависимости от направления.
Для документов МЦИ автоматическая постановка производится в разрезе рейса (только для не срочных платежей). Здесь возникли определенные сложности в связи с переходом (595-П) на перспективную платежную систему, теперь рейс документов устанавливается по расписанию:
- 09:00 – 1-й рейс;
- 17:00 – 2-й рейс;
- 20:00 – 3-й рейс.
В отрезки времени до завершения рейса не срочные документы поступают без указания рейса (рейс не определен), после чего производится консолидация рейсов и поступает выписка ED211 c указанием фактического рейса документа загруженного ранее. На основании выписки в платежах (не срочные документы), поставленных на позицию, изменяется рейс, на рейс полученный из выписки.
В качестве рейса для срочных документов МЦИ устанавливается значение "Срочные переводы", после получение выписки значение рейса не изменяется.
Изменения рейса в платежах, описанные выше, производятся с помощью дополнительных скриптов, выполняемых по расписанию
Пример скрипта реализации установки рейса для не срочных документов:
DECLARE vtime DATE; vreistoposition NUMBER; BEGIN IF SYSDATE >= TRUNC (SYSDATE) + 1 / 24 * 9 AND SYSDATE < TRUNC (SYSDATE) + 1 / 24 * 17 THEN vreistoposition := 1; ELSIF SYSDATE >= TRUNC (SYSDATE) + 1 / 24 * 17 AND SYSDATE < TRUNC (SYSDATE) + 1 / 24 * 20 THEN vreistoposition := 2; ELSIF SYSDATE >= TRUNC (SYSDATE) + 1 / 24 * 20 AND SYSDATE < TRUNC (SYSDATE) + 1 / 24 * 23 THEN vreistoposition := 3; ELSE RETURN; END IF; FOR cur IN ( SELECT rel_kvit, MAX (reis) reis FROM mci_reises WHERE position_reis != reis AND position_reis IS NOT NULL GROUP BY rel_kvit) LOOP FOR curt IN (SELECT id FROM t_transactions WHERE rel_kvit = cur.rel_kvit) LOOP pkg_deal_trn.clearparameters; pkg_deal_trn.params.id := curt.id; pkg_deal_trn.loadparameters; pkg_deal_trn.params.nazn := pkg_mci_pos.f_namereis (cur.reis); pkg_deal_trn.params.lastuser := -1; pkg_deal_trn.params.typeinput := 0; pkg_deal_trn.dealupdate; UPDATE mci_reises SET position_reis = cur.reis WHERE rel_kvit = cur.rel_kvit; pkg_attrib.save_attrib_number ('TRN', pkg_deal_trn.params.id, 'MCI.REIS', cur.reis); END LOOP; END LOOP; FOR cur IN (SELECT DISTINCT 1 FROM mci_reises WHERE reis = vreistoposition --AND position_reis = reis ) LOOP BEGIN FOR cur IN (SELECT accpointer FROM resman.nostro WHERE in_mcinavigator_enable = 'True') LOOP pkg_mci_pos.set_to_position ( resman.td , cur.accpointer -- Идентификатор счета в Навигаторе, на который будет производиться исполнение , vreistoposition); pkg_mci_pos.set_to_position ( resman.td , cur.accpointer, -- Идентификатор счета в Навигаторе, на который будет производиться исполнение , -1); COMMIT; END LOOP; END; END LOOP; END; /
Другие возможности работы с документами представлены в разделе МЦИ.
SWIFT
В рамках проекта выделим следующие работы:
- При автоматической постановке документов SWIFT проверяются возможные связи документа с другими документами по референсам (значение тэгов 20, 21 или 61 из выписки).
В случае если связанный документ поставлен на позицию, текущий документ также считается поставленным на позицию; - Значение остатка из выписки устанавливается на основании данных из тэга 64, если он присутствует в документе.
Другие возможности работы с документами представлены в разделе SWIFT.
Установка остатка из окончательной выписки
В рамках проекта была реализована возможность указания рейса или признака окончательной выписки для установки остатка. Для загрузки остатка из окончательной выписки МЦИ необходимо в качестве рейса указать значение 0.
Реализация
В рамках проекта был реализован следующий алгоритм:
- Производится квитовка МЦИ и квитовка SWIFT необработанных документов МЦИ и SWIFT с платежами в Навигаторе. Задание запускается с помощью расписания заданий Oracle;
- Производится автоматическая постановка несквитованных документов на позицию в Навигаторе. Задание запускается с помощью расписания заданий Oracle;
- Обработка платежей поступающих из МЦИ: постановка на позицию и установка фактической даты валютирования;
- Установка остатка из выписок МЦИ и SWIFT при поступлении документа.
Дополнительные работы
После завершения проекта рассматривается возможность квитовки исходящих платежей, поступающих из АБС, с платежами в Навигаторе. Данная доработка находится в разработке.
Итог
Если Вас заинтересовал проект внедрения модулей МЦИ и SWIFT, и ваш Банк готов автоматизировать процессы работы с документами МЦИ и SWIFT — зарегистрируйте задачу на hd.softwell.ru.
Примеры скриптов
Ниже представлен пример скрипта для автоматической квитовки документов МЦИ и SWIFT:
DECLARE vInfo varchar2(2000); vDate Date; BEGIN vDate :=TD; vInfo := 'Запускаем квитовку МЦИ за '||TO_CHAR(vDate,'DD.MM.YYYY')||'.'; sp_mci_auto_kvit (/*full sig:*/ pvd=>vDate/*date*/ ,pshttype=>'ALL' ,puserid=>-1/*number*/ ,pfilial_id=>f_parameter_str('FILIAL_ID')/*number*/); vInfo := 'Запускаем квитовку SWIFT за '||TO_CHAR(vDate,'DD.MM.YYYY')||'.'; sp_mci_auto_kvit_swift( pvd=>vDate/*date*/ ,pshttype=>'ALL'/*varchar2*/ ,puserid=>-1/*number*/); vInfo := ' Квитовка прошла успешно '; 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; /
-
Блог:Интеграция с NTPro —
Платформа предлагает клиентам сервисы по агрегации ликвидности, мэтчингу и алго-исполнению в широком перечне валютных инструментов. Среднедневной оборот платформы NTPro в 2019 году составил порядка 4,5 млрд долларов США.
Партнерство между Московской биржей и "НТ Прогресс" расширит спектр возможностей для клиентов обеих компаний и позволит им получить гибкие и современные торговые решения NTPro в области валютных операций в сочетании с клиринговыми и расчетными сервисами Московской биржи.
-
Блог:
-
Блог:
-
Блог:Новое в сделках с драгметаллами —
Если у вас возникли вопросы по доработкам или у вас есть предложения, ждем вас на нашем портале hd.softwell.ru
-
Блог:
-
Блог:
- Нет меток