Bankir.Ru
10 декабря, суббота 17:45

Объявление

Свернуть
Пока нет объявлений.

Проверялка для сообщений Swift

Свернуть
X
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • Проверялка для сообщений Swift

    Господа банкиры, а нет ли у кого проверялки SWIFT сообщений.
    мой вопрос вызван тем, что у нас используется SWIFT Alliance, который при загрузке свифтовок из АБС иногда прибивает их выдавая только "Wrong format message", чего для разбора полетов и анализа ошибок весьма мало...

    Поэтому, господа - если есть нечто аналогичное - поделитесь плз...

  • #2
    Господа банкиры, а нет ли у кого проверялки SWIFT сообщений
    Насколько я понимаю, для каждого модуля АБС, который пытается отправить нечто по SWIFT, приходится писать свой контрольный модуль...
    Можно, конечно, теоретически представить себе некую систему, которая на основе данных о всех форматах SWIFT проводит полный контроль любого файла на предмет его допустимости для SWIFT, но по сложности эта штука будет сопоставима с самим Alliance... и стоить будет немало, и сопровождения будет требовать соответствующего.
    А пользы от такой системы немного: в реальной жизни грузить в SWIFT приходится о силы десяток разных типов. Поставьте на выходе генератора каждого из своих типовых сообщений такой контроллер. Написать его несложно. Все сразу учесть трудно, зато по мере необходимости - и накопления знаний - дописывать можно быстро. Естественно, для каждой АБС проще написать встроенные модули на ее же языке, потому свои не предлагаю...
    Вообще же, насколько я могу судить по своему опыту, подобные сообщения Alliance говорят о том, что в каком-то генераторе сообщений АБС есть некая систематическая ошибка. Не так уж много должно быть таких ошибок. Может, проще все-таки не связываться с контроллерами, а, разобравшись так или иначе с причиной, исправить ошибку в генераторе? Что-то мне кажется, что так быстрее будет...

    Комментарий


    • #3
      дай контроллер - поставлю.

      проблема вся в том, что SwiftAlliance если какой-то файл в себя не подгружает, то понять почему - можно только экспериментальным образом. Вот если бы была бы чекалка (более-менее штатная, пусть и за деньги, пусть и с сапортом), которая могла сказать что не так в некоем конкретном сообщении....

      Комментарий


      • #4
        Crazy
        дай контроллер - поставлю.
        Да нет смысла... сколько-нибудь универсального контроллера у меня нет; то, что есть, контролирует часть локальных проблем, которые у меня в разное время всплывали. Поймает эта штука Ваши? Не факт... Да это и не изолированный модуль, а подпрограммы, разбросанные по основному...
        Я же к чему ответил? На мой взгляд, Вы хотите невозможного. Сами посудите, если даже в Alliance нормального контроллера нет, то каким же он должен сложным быть? Не найдете, не ищите.
        Проблем указанного Вами типа много быть не должно. Разборки, согласен, непростые, 20-30 минут иногда у меня уходило. Часто оказывалось, что в некой строке число пробелов в хвосте слишком велико. Их ведь не видно...С одним из сообщений 5-ой категории так и не разобрался. Ну три-четыре раза повозитесь, АБС доведете, Вам это больше не понадобится.

        Комментарий


        • #5
          Crazy
          проблема вся в том, что SwiftAlliance если какой-то файл в себя не подгружает
          Sorry, сразу не обратил внимания на эту фразу... У Вас импорт не грузит в Alliance или грузит, но вываливает сообщение в modification queue?

          Комментарий


          • #6
            и так и так, в зависимости от корреспондента/типа сообщения.

            еще раз повторюсь - чекалка нужну исключительно доя облегчения разбора полетов - почему то или иное сообщение не подкачалось в SA...

            Комментарий


            • #7
              Crazy
              В общем, чтобы закончить тему: 1) Ваши поиски бесперспективны; 2) м.б., Вы о такой непонятной ошибке импорта знаете, но я ее лишь недавно обнаружил, после двух с лишним лет работы со SWIFTом, так что на всякий случай поделюсь.
              Если длина сообщения равна 514 символа (как ее видит DOS), то импорт его совсем не берет, оно вообще не попадает в Alliance. Почему так, не знаю. Приходится в этом случае искусственно менять длину сообщения, т.е. оператору системы выводится соответствующее сообщение, и он, скажем, удаляет или добавляет один-два несущественных символа.

              Комментарий


              • #8
                За дескрипшен ошибки спасибо - с таким вроде 3*тфу еще не сталкивался...

                но искать все же буду... может не здесь.

                Комментарий


                • #9
                  1. А какой формат загрузки используете?
                  Если DOS-PCC, то вот эти выравнивания до 512 байт могут кого угодно довести до нехорошего состояния. Лучше взять RJE. Он во первых проще, а во-вторых в нем непечатных символов нет.
                  2. А в TurboSwift есть проверка сообщения при загрузке через файловый обмен с песвдонаком, который возвращается обратно в приложение.
                  Всех благ,
                  Петр

                  Комментарий


                  • #10
                    А в TurboSwift есть проверка сообщения
                    А TurboSwifta-то нет... Но раз уж Вы о нем вспомнили: в нем, в отличие от Alliance, есть описание ошибки, из-за которой сбой произошел? Скажем, сейчас вывалил я в импорт файл длиной 514, импорт его сожрал, в message file не записал, и мне ничего не говорит, что у меня не так. А TurboSwift явно сообщит, что причина в неподходящей длине файла?
                    Или в сообщение для загрузки я вставил некое поле, недопустимое для сообщения заданного типа. Сейчас я получу только wrong message type, а TurboSwift скажет, какое именно поле лишнее?

                    Комментарий


                    • #11
                      Если ошибка в формате файла, то создается файл с ошибочным сообщением, которое можно анализировать, впрочем на моей памяти обычно после двух недель тестирования таких ошибок у пользователей уже не возникало.
                      Если ошибка в тексте сообщения, то есть два способа:
                      - проверить сообщение руками в очереди редактирования (это если денег жалко или режим экономии), после чего либо вывалить его обратно во внешнее приложение, либо поправить прямо в TS, хотя правка в TS не есть гуд, что очевидно.
                      - прикупить автоматическую проверку, которая выдает обратно в приложение псевдоNAK с кодом ошибки, либо номер байта, либо соответствующий UHB Fin Error Codes. Именно так крупные банки с филиальной сетью и работают, кстати.

                      Да и вообще файловый обмен в TS сделан как надо, а не как попало. От производительности и возможностей различных настроек до форматов файлов...
                      Всех благ,
                      Петр

                      Комментарий


                      • #12
                        Ковачевич
                        Спасибо за описание. Похоже, что именно так и мы со своим Alliance работаем. Случилась ошибка, полчаса глазами поискали, потестировали, нашли, исправили, больше не возникает...
                        Автоматическая проверялка, выдающая код ошибки, конечно, уже поинтереснее, вот только даже с кодом ошибки далеко не всегда можно сразу найти причину... а денег, действительно, на нее жалко. Проблемы-то возникали раз в полгода даже поначалу, а сейчас уже, похоже, можно не особо беспокоиться. Тем более, что перед покупкой проверялки нужно потратиться на замену Alliance на TS.

                        Комментарий


                        • #13
                          Вослед парочка замечаний:
                          - проверить сообщение руками - это означает понажимать Enter> чтобы TS пробежал по полям сообщения и его проверил. Если все устраивает - нажать одну педаль, если не устраивает - другую. Т.е. это не совсем уж руками. Признаться я уже и забыл, что Альянс ничего вообще не проверяет. Скажем предопределенные кодовые слова. Или уже проверяет?
                          - Надо сказать, что для банка с большим количеством филиалов, которые шлют "чорт знает что" в головную контору такая проверялка - просто спасение. А если стоит связь с одной АБС и более ничего, которую оттестировали и вылизали - конечно тогда это лишнее.

                          С учетом перехода на SWIFTNet (по нашим оценкам может вылететь примерно в 20 килобаксов за раз плюс еще столько каждый год) миграция на TS который все ж таки существенно дешевле (особенно его поддержка) может оказаться весьма и весьма выгодным шагом. Хотя конечно, считать, считать и еще раз считать...

                          Да и вообще, надо бы открыть тему миграции на SWIFTNet, где у кого что сколько стоит, и как в целом дальше жить. Потому что пока только Equant представил более-менее внятные предложения и цены. Опять же завоз VPN-box, SNL и прочие радости...
                          Всех благ,
                          Петр

                          Комментарий


                          • #14
                            Да и вообще, надо бы открыть тему миграции на SWIFTNet, где у кого что сколько стоит, и как в целом дальше жить. Потому что пока только Equant представил более-менее внятные предложения и цены. Опять же завоз VPN-box, SNL и прочие радости...
                            Да хорошо бы... боюсь только, что, пока не перейдем, сказать что-нибудь дельное будет особо некому. А поскольку переходить будем практически одновременно, дельные советы появятся тогда, когда многим воспользоваться ими будет уже поздно...

                            Комментарий


                            • #15
                              Да-а... Мне и раньше не очень-то нравился SAA (SAE), но такой засады я, признаться, не ожидал. Просто нет слов. Проверка формата и выдача диагностики - эта функция просто по умолчанию обязана быть в любом приличном интерфейсе! Как только этот продукт сертифицировали? Или для "своих" SWIFT делает послабления?
                              Самопальную проверялку ВСЕХ МТ писать нет смысла. А вот контроль форматов на выходе из АБС сделать можно и нужно, нельзя во всём надеяться не SWIFT-интерфейс.

                              Комментарий


                              • #16
                                Вообще-то меня удивила такая проблема, в данной ситуации есть два решения:
                                1. Когда файл полностью не принимаеться SAA
                                2. Когда файл загружен, и сообщение попало в modification queue.

                                Со вторым случаем все ясно, открываеться сообщение для модификации и находиться поле на которое ругаеться SAA. Таким образом находить ошибка.

                                С первым случаем посложнее , сначала надо будет поспотреть в журнал событий , там иногда может быть указана причина отказа в приемке. Если нет то визуально просмотреть файл на наличие видимых ошибок.
                                Если и это не помогло, то из одного файла нарезать несколько по 1-3 сообщениям и смотреть где ругнеться.

                                А писать проверялку вообще нет смысла, так как будет продублирована логика SAA по проверке сообщений. А скольким банкам понадобиться такой продукт? Кто за это платить будет? Ведь это ошибка формирования сообщения исходит из АБС. Проще найти ошибку и исправить логику создания сообщения в АБС.

                                Для того что бы понятней было, представим что есть такая программа для проверки созданных сообщений перед загрузкой в SAA. Ну нашла она ошибку, указала на сообщение. А дальше что ? В ручную править файл загрузки? может быть для одного раза и сойдет, но все равно надо будет информировать разработчиков АБС что бы они внесли исправления.

                                Хотя елси банк готов выложить енную сумму для такой проверки, то желающих написать такую программу найдейтся не мало. :-)

                                Комментарий


                                • #17
                                  Со вторым случаем все ясно, открываеться сообщение для модификации и находиться поле на которое ругаеться SAA. Таким образом находить ошибка.

                                  С первым случаем посложнее , сначала надо будет поспотреть в журнал событий , там иногда может быть указана причина отказа в приемке. Если нет то визуально просмотреть файл на наличие видимых ошибок.


                                  Со вторым случаем не все так просто. Если сообщение попадает в modification queue, оно далеко не всегда распределяется по полям так, чтобы Alliance мог красным цветом выделить поле, в котором содержится ошибка. Нередко в этой очереди сообщение видно только целиком, в том же виде по сути, в каком оно было в загружаемом файле. В этом случае его приходится просматривать глазами на предмет наличия недопустимых символов, соблюдения разрешенных размеров полей и т.д. Вот в этих случаях и возникает желание получить проверялку.

                                  А с первым случаем основная проблема - вовремя заметить проблему. Разные модули АБС, отправляющие сообщения по SWIFT, могут иметь разные уровни контроля отправки (нехорошо, конечно, но жизнь есть жизнь... не все удается вспомнить сразу). Если ошибка возникает впервые спустя несколько месяцев (или даже лет) после разработки модуля, когда все привыкли, что все уходит без проблем, то сообразить вовремя, что сообщение не ушло, довольно трудно... А когда, к примеру, контрагент звонит, и говорит, что МТ320 от нас до сих пор нет, то event journal уже давно не содержит данных о том, как это МТ320 загружалось...

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

                                  Комментарий

                                  Пользователи, просматривающие эту тему

                                  Свернуть

                                  Присутствует 1. Участников: 0, гостей: 1.

                                  Обработка...
                                  X