Bankir.Ru
8 декабря, четверг 14:50

Объявление

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

апдейт скринов

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

  • апдейт скринов

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

    У меня все прописано так, но не выходит.
    У нас эмуляция DDC, банкоматы WN

    В scr_tmpl.def фрагмент :
    PREF_AMOUNT
    RC="13"
    064¤@@%PREF_AMOUNT%
    >
    В конфигурации скринов прописано
    100000204 P2040 I064


    В ini_file.tbl
    RC# | Operation Type | State | Screen | PickUp | Print | Dispense | DESCRIPTION |
    13 | DEFAULT | 313 | 064, + | NO | - | NO | Invalid amount



    PREF_AMOUNT +(тег) + (переменная) The preferred value of amount to be dispensed
    Сумма, рекомендуемая для выдачи в случае невозможности выдать запрошенную сумму

  • #2
    Skif777

    Для отслеживания изменения наименьшего наминала в банкомате Вы должны обновлять экраны не только на RC 13, но и на RC 180, 183.

    Не понятно зачем Вы указали 204 экран. При RC 13 у вас будет осуществлен переход на 313 стейт при этом будет отображен 064 экран (а не то что указан в стейте) и будет выполнена фанкшен команда Z - обновление 064 экрана.

    Кроме %PREF_AMOUNT% Вы можете также использовать %MIN_DENOM%. Можно использовать форматирование передаваемого числа, если у вас не один язык и не одна валюта то вы в scr_tmpl.def должны это учесть.

    Если не получится можно посмотреть трассу на банкомате или включить дебаг в Way4.
    С уважением, Дмитрий.

    Комментарий


    • #3
      А у нас прошла модернизация OW и теперь файла ini_file.tbl нет. Есть файлы key.xml и rc.xml. В результате ранее баланс выводился на экран, а теперь не хочет. Люди добрые, не подскажите, где надо подкрутить?

      Комментарий


      • #4
        А что за модернизация OW (релиз? версия?) ?
        У нас есть ini_file.tbl и key.xml но нет rc.xml
        Баланс наэкран выводится.

        Комментарий


        • #5
          Linux key.xml - аналог таблицы в начале файла ini_file.tbl, здесь описывается логика обработки функциональных клавиш и формирование условий транзакции (печать на принтера, выбор валюты и языка, выбор счета и т.д.). rc.xml - это реакция контроллера на различные RC. Это файл Вам и надо смотреть, проверьте тег для Ваших RC. Мы уже взяли за правило обязательно проверять настроечный файлы при апдейте, иначе случаются всякие казусы и отказ в выводе баланса не самое страшное. Настоятельно рекомендую проверять конфигурационные файлы перед установкой (не говоря уже об тестовой эксплуатации).
          Skif777 У нас есть ini_file.tbl и key.xml но нет rc.xml это временно. В дальнейшем ini_file.tbl не будет.
          С уважением, Дмитрий.

          Комментарий


          • #6
            Dimaka

            rc.xml мы как могли проверили. И хотя OW обещал просто конвертировать наш ini_file.tbl, наворочено там было изрядно. Теперь вроде все нормально.

            Если смотреть по логу ответ на баланс выглядит примерно так:
            XMT: 14:59:56:61 | 101303#4 99999215 296 9717D070
            XMT: 14:59:56:61 | 081+5010.01 USD
            XMT: 14:59:56:61 |
            XMT: 14:59:56:61 | 082+300.00 USD
            XMT: 14:59:56:61 |

            где 99999215 - номер банкомата
            296 - следующий стейт
            D - Function Identifier. (Print and wait for completion)
            070 - номер экрана (Screen) "Запрос выполняется"
            081 и 082 - обновляемые экраны (поля баланса, потом экраны 081 и 082 я вставляю в экран "Ваш баланс").

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

            Комментарий


            • #7
              Linux правильно ли то, что обновляемые экраны идут новыми строками? - да, так обновление формируется из разных тегов. На банкомат придет все одной строкой. Но если Вы обновляете несколько экраноа между ними должно быть "Z000" - в Вашем случае 4 99999215 296 9717D070081+5010.01 USDZ000082+300.00 USD.
              Предлагаю перенести обсуждение нюансов в B-Mail. Где у Вас вызывается экран "Ваш баланс", что значит не работает (что происходит на самом деле)?
              С уважением, Дмитрий.

              Комментарий


              • #8
                Привет, Dima
                Мне кажется, форуму может быть польза от обсуждения. А цифры я могу немного править, чтобы не выдавать конфиденциальной информации.

                Что есть Z000 ("Do nothing" ???)

                экраны 081 и 082 я вставляю в экран "Ваш баланс"
                Например
                100000080L001M03O251P2510F00H000СLI081

                Картинка 251 на экране есть, никаких знаков поверх нее нет.

                Комментарий


                • #9
                  Linux Что есть Z000 ("Do nothing" ???) - совершенно верно "Do nothing. The terminal shows a screen, updates the screen data, and checks for an additional functional ID".
                  Посмотрите формат "Function Command Message". Последовательность такая: Function Identifier>Screen Number (010-511)>Screen Display Update Data>Group Separator (GS)>Function Identifier>Screen Number (010-511)>Screen Display Update Data>Group Separator (GS)... и т.д.
                  Вы ведь хотите обновить несколько экранов, а в вашем случае в экран 081 будет записано "+5010.01 USD082+300.00 USD."
                  Давайте по порядку.
                  Вы имеете экраны 081, который вставлен в экран 080, экран 080 отображается на 296 стейте. Правильно?
                  Вы выводите содержимое 081 экрана шрифтом 00 с прозрачным цветом фона и с черным цветом символов в позицию CL. Правильно?

                  Какой фон в позиции CL? Какой у Вас банкомат? Можете ли Вы посмотреть содержимое экранов 081 и 082 непосредственно на банкомате?
                  С уважением, Дмитрий.

                  Комментарий


                  • #10
                    Dimaka
                    Вопрос, кажется, можно снимать. Сделал один экран, все заработало. Похоже, нельзя обновлять сразу два экрана, по крайней мере, в моем контексте.
                    Последний раз редактировалось Linux; 12.09.2003, 12:46.

                    Комментарий


                    • #11
                      Linux Похоже, нельзя обновлять сразу два экрана, по крайней мере, в моем контексте. - вывод не верный. При обновлении нескольких экранов между ними необходимо ставить "Z000" (добавьте в шаблон). Обновляется и два и три экрана за раз, проверено работает.
                      С уважением, Дмитрий.

                      Комментарий


                      • #12
                        Привет, Dimaka
                        А что ты называешь шаблоном? formats.xml? А как в него вставить "Z000"?

                        Комментарий


                        • #13
                          Linux шаблоном я называю файл из которого берется информация для обновления экранов. Называться он может по разному, ссылка на него есть в файле контроллера "PARAMETER NAME="SCREENS_TEMPLATE" VALUE="интересующий нас файл"/>"

                          Пример обновления нескольких экранов подряд (есть в штатной документации на контроллер):
                          "031FIRST SCREEN%GS%Z000034SECOND SCREEN%GS%Z000037NEXT SCREEN"
                          И так до семи экранов.
                          С уважением, Дмитрий.

                          Комментарий


                          • #14
                            Dimaka
                            Спасибо за помощь! Файл "SCREENS_TEMPLATE" мне действительно доступен. Т.е. загоняю в него всю строку, которую хочу получить в Function Command Message? Можно и так.

                            Есть еще животрепещущий вопрос. Хочется дать возможность клиенту смотреть баланс на экране или печатать на бумагу. Как грамотно развести эти экраны. В первом приближении получается, что в обоих случаях клиенту показывается один и тот же экран. Как-то это не правильно.

                            Комментарий


                            • #15
                              Linux на вскидку вариантов два: либо в файле rc.xml указываете различные значения стейтов для различных условий транзакции (например, были или нет нажаты определенные функциональные клавиши) и соответственно видите на банкомате различные экраны, либо в файле "SCREENS_TEMPLATE" обновляете один и тот же экран различным содержимым в зависимости от условий транзакции.
                              С уважением, Дмитрий.

                              Комментарий


                              • #16
                                Привет Всем. Я понимаю, что тема не очень новая, но меня сейчас реально касающаяся.
                                Пытаюсь организовать правильное отображение экранов для банкомата DIEBOLD 1071, a именно экранов где отображается “рекомендуемая сумма для получения”, хостовая поддержка протокола d912 обеспечивается программным обеспечением OPENWAY .

                                1. Для начала изменил в файле INI_FILE.TBL след. cтроки:
                                -----+-----------------+-------+----------------------+--------+-------+----------+------------------------------------------+
                                RC# | Operation Type | State | Screen | PickUp | Print | Dispense | DESCRIPTION |
                                -----+-----------------+-------+----------------------+--------+-------+----------+------------------------------------------+
                                13 | DEFAULT | 220 | 240, +, --- | NO | - | NO | Invalid amount
                                180 | DEFAULT | 222 | 242, +, --- | NO | - | NO | Amount is too small
                                181 | DEFAULT | 221 | 241, +, --- | NO | - | NO | Amount is too big

                                где 240, 242, 241 скрины с соответствующими подсказками и пустым полем для величины получаемой суммы. Стейты 220, 222, 221 выводят эти же скрины.

                                2. Подкорректировал файл SCR_TMPL.DEF и он принял вид:
                                ATM="DIEBOLD"
                                PREF_AMOUNT
                                RC="013"
                                031¤GO%PREF_AMOUNT%
                                >
                                RC="181"
                                032¤GO%PREF_AMOUNT%
                                >
                                >
                                RC="180"
                                033¤GO%MIN_DENOM%
                                >
                                >

                                После проверки работоспособности получил: на черном экране (Ваш запрос выполняется) рекомендуемую сумму к получению. Почему не выводятся экраны 240,242, 241 как подложка не пойму. Может кто подскажет где ошибка?

                                XMT: 14:53:19:18 | 111111#4.001111111..220..2766Z240031¤GO200↔H.000

                                Комментарий


                                • #17
                                  Навскидку,
                                  Пока банкомат ждет ответа на запрос он показывает экран, указанный в стейте запроса (Как правило это "Ждите, запрос выполняется"). Как только к нему прикатывает ответ он выполняет то, что просят. В данном случае "просят" Z240031¤GO200 (Z240-ничего не делать 031¤GO200 - обновить экран 031 информацией ¤GO200). После чего, банкомат спокойно идет на следующий стейт (220).

                                  конструкция 13 | DEFAULT | 220 | 240, +, означает при получении RC=13 обновить экраны по шаблону и перейти на стейт 220. (240 - игнорируется).

                                  Комментарий


                                  • #18
                                    Дело в том что он не идет на 220 стейт (внем то же указан экран 240), а постоит некоторое время и выдает заставку часов ("подождать еще или отменить"). Если у кого есть образец лога для данной ситуации, не могли бы прислать? Еще не понятно для чего нужен экран 031, в банкомате у меня такого скрина нет, пробовал без него - то же самое. Менял его на 240 - один черт.
                                    Может между этими экранами какой нибудь псевдо символ должен быть?

                                    Комментарий


                                    • #19
                                      igor_m Еще не понятно для чего нужен экран 031 - этот экран нужен для сохранения в нем рекомендуемой суммы. Экран появиться у Вас на банкомате после первого обновления. Далее этот экран (031) должен отображаться у Вас в составе "подложки" либо отдельно.
                                      Посмотрите 220 стейт, что это за стейт и что там описано, проверьте 240 экран - что там нарисовано (не исключено что он сам должен отображаться в составе с другими экранами).
                                      С уважением, Дмитрий.

                                      Комментарий


                                      • #20
                                        Здравствуй Дмитрий.

                                        Стейт 220 имеет вид:
                                        E 240 217 217 255 100 255 217 003

                                        В вызываемом 240 экране выводиться надпись: Вы можете снять: > .
                                        Далее в конце кода стоит команда перехода на аналогичный экран, по внешнему виду, но за номером 245(зачем это сделано не представляю). Получается повторный вызов этого же экрана. Самого экрана 031 у меня в базе экранов нет, я подозреваю что это логический экран, который генерит сам хост и состоит он только величины получаемой суммы. Или мне его все же необходимо создать?(тогда что там рисовать).
                                        Решил повторить попытку с теми же настройками, как и раньше.

                                        XMT: 17:29:15:02 | 3333333#4 66666666 220 4068Z240031 GO500 H 600

                                        В итоге я вижу, что банкомат отображает экран 245(240), но сумма на него не накладывается. Мои подозрения: может она и накладывалась при обновлении экрана 240, но это произошло так быстро, что я и не заметил, и далее произошел переход на 220 стейт, который собой обновил предыдущий экран. Тогда как увеличить паузу при отображении? Или вариант 2: это все что я выше делал неправильно, а надо делать так: (и более подробно).

                                        Комментарий


                                        • #21
                                          Спасибо всем за помощь, вроде все заработало.

                                          Комментарий

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

                                          Свернуть

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

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