18 октября, четверг 09:42
Bankir.Ru

Объявление

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

Клиент-банк и состояние ОТОЗВАН

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

  • Клиент-банк и состояние ОТОЗВАН

    Возможно глупый вопрос, самому стыдно немного

    Есть связка 5NT.Bank + 5NT.Client (классический)
    При переводе полученного от клиента документа в состояние "Отозван" на клиентский запрос на выписку, по документу формируется состояние "Удален" (на стороне клиент-банка) и примечание к документу "Документ № на сумму переведён в стостояние ОТОЗВАН". А причины перевода в это состояние нигде нет.
    В Swift4x4.sql найден такой кусок:
    Код:
    #ifdef NEWPROT
          select @Note          = a.Comment
            from tObject o M_NOLOCK_INDEX(XAK1tObject)
           inner join tProtocol p M_NOLOCK_INDEX(XPKtProtocol)
              on o.ID           = @DealTransactID
             and o.ObjectTypeID = @Number
             and p.ProtocolID   = o.CurrProtocolID
           inner join tAudit a M_NOLOCK_INDEX(XPKtAudit)
              on a.AuditID      = p.AuditID
          M_FORCEORDER
          M_ISOLAT
    #else
          select @Note = c.Comment
            from tDealProtocol dp M_NOLOCK_INDEX(XAK2tDealProtocol),
                 tComment      c  M_NOLOCK_INDEX(XPKtComment)
           where dp.Number      = @Number
             and dp.DealID      = @DealTransactID
             and dp.ReferenceID = 0
             and c.Type         =  1
             and c.ObjectID     = dp.DealProtocolID
          M_ISOLAT
          M_FORCEORDER
    #endif
    
          PROFILE_TIME_VAR1('1. @Note = %1!', @Note)
    
          begin tran
          save tran GenPost_TR
    
          select @Message = 'Документ N' + TRIM(@DocNum) + ' на сумму ' +
                            TRIM(convert(char, @Qty)) + ' от ' +
                            convert(char(10), @DocDate, 103) +
                            ' переведен в состояние ОТОЗВАН.',
                 @Reference = 'Удаление документа#' + TRIM(@Reference)
    Я так понимаю @Note - это примечание к состоянию, в котором как раз и нужно (можно) указать причину... так собсно и делаем.
    Поправил так:
    Код:
          select @Message = 'Документ N' + TRIM(@DocNum) + ' на сумму ' +
                            TRIM(convert(char, @Qty)) + ' от ' +
                            convert(char(10), @DocDate, 103) +
                            ' переведен в состояние ОТОЗВАН. Причина: ' + TRIM(@Note),
    ...И ничего! И тишина данное примечание не попадает в сообщение... Вобще штатное средство передавать клиенту эту информацию есть или нет?
    Чем занимается PROFILE_TIME_VAR1?...

  • #2
    ООчень болезненный вопрос.
    Если найдете как в эту замечательную процедуру извне, желательно из оболочки АБС передавать причину отзыва буду Вам премного благодарна!

    Комментарий


    • #3
      Сообщение от SlyFox2201 Посмотреть сообщение
      Возможно глупый вопрос, самому стыдно немного

      Что бы что-то было в @Note, надо естественно, что бы что-то было в a.Comment. В вашем случае там пусто. Вы правильно заметили, что это примечание к протоколу перехода в состояние, ну тогда надо туда что-то записать.
      Хотите отписывать туда что-то осмысленное автоматически, пишите свой диспач, иначе вводите информацию руками.
      Попробуйте встать на документ и выбрать протокол состояний ФО (F6). У нужного состояния укажите Вашу причину по меню "Ввод доп. параметров" в поле "Примечание" и будет наверное Вам счастье.
      Последний раз редактировалось bits; 29.09.2008, 22:31.

      Комментарий


      • #4
        Сообщение от Dolphina12 Посмотреть сообщение
        ООчень болезненный вопрос.
        Если найдете как в эту замечательную процедуру извне, желательно из оболочки АБС передавать причину отзыва буду Вам премного благодарна!
        Айяя-я-й) Уж Вам-то такие вещи надо помнить)

        Комментарий


        • #5
          Сообщение от bits Посмотреть сообщение
          Что бы что-то было в @Note, надо естественно, что бы что-то было в a.Comment. В вашем случае там пусто.
          В том то всё и дело, что не пусто там...
          Я так понимаю @Note - это примечание к состоянию, в котором как раз и нужно (можно) указать причину... так собсно и делаем.
          Т.е. именно выбрать протокол состояний ФО (F6). У нужного состояния укажите Вашу причину по меню "Ввод доп. параметров" в поле "Примечание" и... и нет нам в жизни счастья

          Комментарий


          • #6
            Сообщение от SlyFox2201 Посмотреть сообщение
            В том то всё и дело, что не пусто там...
            А что там тогда у Вас ?

            Комментарий


            • #7
              Сообщение от bits Посмотреть сообщение
              А что там тогда у Вас ?
              А там у нас причина перевода в состояние "отозван", которую написал операционист, например "Клиент - лох!" ...всё равно ведь клиент эту причину не видит

              Комментарий


              • #8
                Сообщение от SlyFox2201 Посмотреть сообщение
                А там у нас причина перевода в состояние "отозван", которую написал операционист, например "Клиент - лох!" ...всё равно ведь клиент эту причину не видит
                Так клиент не выдит или нет информации с сообщении ?
                Т.е. самом сообщении в таблице сообщений нет строки с информацией или сообщение выгружается без него ?

                Комментарий


                • #9
                  bits
                  Нет информации из a.Comment (@Note)... вобще нет.
                  Вот это
                  Код:
                        select @Message = 'Документ N' + TRIM(@DocNum) + ' на сумму ' +
                                          TRIM(convert(char, @Qty)) + ' от ' +
                                          convert(char(10), @DocDate, 103) +
                                          ' переведен в состояние ОТОЗВАН. Причина: ' + TRIM(@Note),
                  клиент видит, но без @Note...

                  Комментарий


                  • #10
                    Сообщение от SlyFox2201 Посмотреть сообщение
                    bits
                    Нет информации из a.Comment (@Note)... вобще нет.
                    Вот это
                    Код:
                          select @Message = 'Документ N' + TRIM(@DocNum) + ' на сумму ' +
                                            TRIM(convert(char, @Qty)) + ' от ' +
                                            convert(char(10), @DocDate, 103) +
                                            ' переведен в состояние ОТОЗВАН. Причина: ' + TRIM(@Note),
                    клиент видит, но без @Note...
                    Вы то сами видите в сообщении если его посмотреть ?

                    Комментарий


                    • #11
                      В сообщении, и в крипто-сервере я вижу тоже самое - без @Note голову поломал уже с этим... вроде мелочь, и не в таких "боях" бывали, а такая неприятная...

                      Комментарий


                      • #12
                        Во что нашёл...
                        Значит поведение это беды такое:

                        Вариант 1:
                        1. Клиент присылает ошибочный документ, например, назначение платежа > 210 символов.
                        2. 5НТ формирует для него сообщение с текстом "Нет примечания. Ошибка работы с базой данных: 1. В документе N330 (ID = 0005741617) назначение платежа отсутствует, либо содержит недопустимые символы, либо содержит более 210 символов.". Всё нормально - документ квитуется как "Холдирован", клиент всё может углядеть как в почтовом сообщении так и в списке ошибок к документу.

                        Вариант 2:
                        1. Клиент прислал документ, который прошёл автоматический контроль и загружен как плановый в состоянии "Введен".
                        2. Операционист узрел, что в нём очерёдность платежа не 3, а 6. Толкает его в состояние "Отозван". Пишет в примечании к состоянию "Фигню порете, очерёдность не верна.".
                        3. Клиент получает состояние документа удалён, с комментарием и почтовым сообщением с текстом "Документ N334 на сумму 4035.00 от 30/09/2008 переведен в состояние ОТОЗВАН."... и сидит чешет репу - кому там что не понравилось в этом банке?!

                        "Звезда в шоке..."... и нигде это не документировано ваааааще!

                        Комментарий


                        • #13
                          Есть мысль, что сначала клиент получает сообщение, а потом только операционист вносит комментарий), а сообщение уже выгружено и доставлено... и в итоге
                          Сообщение от SlyFox2201 Посмотреть сообщение
                          Вариант 2:
                          "Звезда в шоке..."
                          может так ?

                          Комментарий


                          • #14
                            Сначала посмотрите установлен ли в скрипте #define NEWPROT
                            А еще лучше - сделайте экстракт этой процедуры прям из сервера.
                            Я не берусь сказать откуда у вас сейчас тянется @Note - из tAudit или из tComment
                            Васильев А.Б.

                            Комментарий


                            • #15
                              Да, еще... PROFILE_TIME_VAR1 - это макрос, лежит в MACROS.H и, по моему, запросто находится фаром по Alt+F7
                              Васильев А.Б.

                              Комментарий


                              • #16
                                leshabv
                                установлен ли в скрипте #define NEWPROT
                                Да, есть он.
                                PROFILE_TIME_VAR1 - это макрос, лежит в MACROS.H и, по моему, запросто находится фаром по Alt+F7
                                НашОлся... и просто profiletimevar() нашОлся... но только вот комментарий в документации типа "вывод отладочной информации с подстановкой в текст значений из таблицы pProfileVar" моему лично МОСКу не нравится, ибо он его не понимает.

                                Пока вывод такой: лагает диспатч Sw4x4Ret под состоянием "Отозван"... хочется что-то поменять, но пока не знаю что: то ли работу, то ли АБС...

                                Комментарий


                                • #17
                                  Если #define NEWPROT есть то у вас @Note вынимается из tAudit.Comment
                                  Че то мне подскзывет, что у вас тама пусто, а вот в tComment.Comment как раз наоборот. Но процедура туда не смотрит...
                                  Васильев А.Б.

                                  Комментарий


                                  • #18
                                    Похоже я наврал... в tAudit.Comment информация присутствует.
                                    Васильев А.Б.

                                    Комментарий


                                    • #19
                                      Насколько я понял, стоит задача известить клиента о причине перевода операционистом его дукумента в состояние "Отозван".
                                      Можно в настройке перехода между нужными состояниями в ФО ПлатПор вставить в диспатч исполнение отчета, который и сформирует нужное сообщение клиенту. Пример такого отчета есть в дистрибутиве send_message.tpr.
                                      Действия такие:
                                      1. Операционист отмечает документ и переводит его в состояние отозван
                                      2. Во время перехода исполняется настроеный отчет и выводит текстовую форму для ввода причины. Ее заполняет операционист
                                      3. Отчетом формируется сообщение типа 99 с причиной отзыва

                                      Клиент в интерфейсе клиент банка видит что его поручение отозванио, а в почте лежит причина отзыва

                                      Комментарий


                                      • #20
                                        Понятно только то, что прежде, чем документ будет переведен в "отозван" и будет отоработан Sw4x4Ret и, тянущийся за ним Return4x4Message, в a.Comment уже должна быть инфа (причина отзыва), иначе (при вводе комментария _после_ перевода в "отозван") сообщение не перегенерится и строка Note2 не попадёт в почтовое сообщение клиенту.

                                        Тогда, я так понимаю, вопрос в следующем: как поднять форму ввода комментария к состоянию до перехода документа в это состояние, чтобы при переходе комментарий был уже заполнен и диспатч Sw4x4Ret отработал уже с присутствующим a.Commment?

                                        Комментарий


                                        • #21
                                          Сообщение от SlyFox2201 Посмотреть сообщение
                                          Тогда, я так понимаю, вопрос в следующем: как поднять форму ввода комментария к состоянию до перехода документа в это состояние, чтобы при переходе комментарий был уже заполнен и диспатч Sw4x4Ret отработал уже с присутствующим a.Commment?
                                          Скорее всего никак. Не предусмотрено функционалом. Рискну предположить, что это поле автоматически заполняется процедурой только при невозможности генерации превичного документа из сообщения.

                                          Если же документ уже сгенерирован, то все уведомления об изменении его статуса должны отправлятся в виде почтового сообщения (С99), формируемым оператором.

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

                                          Комментарий


                                          • #22
                                            Скорее всего никак.

                                            Такая же мысль... Что примечательно - в "досщатом" такие фишки вполне сносно работали, штатно и стабильно, а вот в FAпипец... Как говорится, "прогресс на лицо" - жуткая система для общения с удаленными клиентами.
                                            Поскольку только герой или псих отважится ставить нечто с гордым названием "Diasoft FA# Bank.Front" операм как фронт, то учим "обезьянку" бегом ходить в сообщения и дописывать в него причину отзыва, пока клиент не успел его забрать... мда... высокие технологии...

                                            Комментарий


                                            • #23
                                              Сообщение от SlyFox2201 Посмотреть сообщение
                                              Скорее всего никак.
                                              А что говорят авторы ?

                                              Комментарий


                                              • #24
                                                bits
                                                АФтары в своё время "технично" отмолчались по поводу данной проблемы. А потом мы перестали оплачивать саппорт...

                                                Комментарий


                                                • #25
                                                  Сообщение от ufer Посмотреть сообщение
                                                  Скорее всего никак. Не предусмотрено функционалом.
                                                  Посмотрел структуру ФО, есть там такая настройка на самой ФО "Выполнять подтверждение". Она заставляет подниматься форму ввода параметров перехода по состояниям. Это должно помочь, но к сожалению настройка действует на все состояния и форма может вызвать ступор в моску операциониста. Отдельно на состоянии как сделать штатными средствами не знаю

                                                  Комментарий


                                                  • #26
                                                    Сообщение от SlyFox2201 Посмотреть сообщение
                                                    bits
                                                    АФтары в своё время "технично" отмолчались по поводу данной проблемы. А потом мы перестали оплачивать саппорт...
                                                    Попробуйте настройку и отпишитесь если не трудно, а то я не проверял до конца.

                                                    Комментарий


                                                    • #27
                                                      bits Попробуйте настройку

                                                      О, прогресс! Это почти то, что нужно! Действительно форма ввода комментария поднимается до перехода в состояние и отработки диспатчей, при этом генерируется правильное сообщение с Note2 и введенным примечанием... Осталось придумать как это заставить срабатывать только при переводе в "отозван", а то будет как в том анекдоте: "он знал, что жить ему оставалось всего несколько часов" - опера запинают

                                                      Комментарий


                                                      • #28
                                                        Сообщение от SlyFox2201 Посмотреть сообщение
                                                        bits Попробуйте настройку

                                                        Осталось придумать как это заставить срабатывать только при переводе в "отозван"
                                                        Вот это наверное не получится
                                                        Как вариант:
                                                        Настроить доп.атрибут, написать свой диспач, "повесить" его после стандартного и пусть он правит в сгенеренном(привязанном) сообщении нужный tag, например значением из доп.атрибута на документе не заморачиваясь протоколом. Получится гламурненько, операционистам понравится.

                                                        Комментарий


                                                        • #29
                                                          Собственно само сообщение тоже ФО и можно навесить диспач на ней.

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

                                                          Видел много раз сам как пользователь к/б у разных Банков и на разных ПО Клиента такое сообщение, всегда мне или я звонил в Банк и там мне вежливо объясняли, что так работает система
                                                          Все эти банки роднило одно - они работали со стандартным "шлюзом" 5NT. О чем явственно говорили реплики на заднем фоне:
                                                          А ты "крыжики" видишь?
                                                          Ctrl+Alt+F нажми !, а то мы тут билд "налили"
                                                          Ты его "внешний номер" помнишь?... тебе прав значит не хватает !
                                                          Ты приготовься, щас я выйду и ты сразу заходи, только сразу, а то ктонить залезет.
                                                          Последний раз редактировалось bits; 10.10.2008, 16:07.

                                                          Комментарий

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

                                                          Свернуть

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

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