refik.in.ua 1

Техническое задание на разработку сервиса, используемого для интеграции системы Q-Win и Siebel


Необходимо разработать сервис (название сервиса Q-Gate), который мог бы работать под операционными системами Windows XP, Windows 7, Windows Server 2003, windows Server 2008.

Параметрами для работы сервиса являются: (вынесены в отдельный ini файл)

- ID отделения (строка 30 символов)

- IP адрес и порт сервера Q-Win (строка)

- URL адрес веб сервиса 1 Siebel (строка) (для выполнения метода CreateSREQ)

- URL адрес веб сервиса 2 Siebel (строка) (для выполнения метода OpenSREQ)

- Время ожидания ответа от веб сервиса Siebel (число)

- логин (для доступа к веб сервису 1 и 2 Сибеля)

- пароль (для доступа к веб сервису 1 и 2 Сибеля)

- Адрес сервера Q-Win используемый для установки приоритета(строка)

- размер файла лога (при превышении размера пишется новый файл) (число)


Q-Gate должен постоянно (online) слушать трафик генерируемый программой Q-Win по TCP протоколу (источник указывается в параметрах сервиса IP адрес и порт сервера Q-Win ) и обрабатывать события «Печать чека» и «Вызов клиента».

Обработка события «Печать чека»

При возникновении события «Печать чека» Q-Win генерит трафик следующего формата

&&189&00048&&EVENT 7 3 11-6018255510560995-20-1

Где

&&189&00048&& - произвольный набор символов, программой Q-Gate не анализируется

EVENT 7 - событие 7 - "печать чека", (Если в генерируемой строке нет слова EVENT 7 то Q-Gate не воспринимает данную строчку как событие «печать чека» и ничего не делает

3 – программой Q-Gate не анализируется

11 - номер билета

6018255510560995 - номер карты

20 - ид номер билета в системе. Нужен для того, чтобы поменять приоритет/tracknumber/.


1 - номер кнопки (выбранной клиентом).

В случае обнаружения события «Печать чека» в анализируемом трафике, сервис Q-Gate проверяет наличие параметра «Номер карты» и если он отсутствует то при вызове метода «CreateSREQ» веб сервиса 1 Siebel в параметр номер карты передаем пустоту, а также передаем следующие параметры:

- ид номер билета в системе (полученного из события Q-Win)

- номер кнопки (полученного из события Q-Win)

- номер билета (полученного из события Q-Win)

- номер карты (полученного из события Q-Win)

- ID отделения (строка 30 символов) (полученного из настроек сервиса Q-Gate)

И в течении времени, указанного в настройках сервиса (Время ожидания ответа от веб сервиса Siebel (число)), Q-Gate ждет ответ от веб сервиса Siebel.

В случае не получения ответа за указанное время Q-Gate прекращает обработку сообщения и записывает причину окончания обработки в протокол.

В случае успешного получения ответа от Siebel (Siebel возвращает новый номер кнопки) Q-Gate определяет необходимость замены кнопки и если замена необходима (нажатая кнопка не равна кнопке возвращенной Siebel), то вызывает страницу указанную в параметрах сервиса (Адрес сервера Q-Win используемый для установки приоритета(строка)) с такими параметрами

Tr - ид номер билета в системе

B1 – старое значение кнопки

В2 – новое значение кнопки

Например, если адрес сервера это строка вида

http://192.168.100.244/touchscreens/_default_vision/test.qsp?counter=1&test=3&

А tr=22, b1=1, b2=2 то строка вызова будет следующая

http://192.168.100.244/touchscreens/_default_vision/test.qsp?counter=1&test=2&tr=22&b1=1&b2=2



Обработка события «Вызов клиента»

При возникновении события «Вызов клиентаа» Q-Win генерит трафик следующего формата


&&573&00063&&EVENT 5 3 2-1234567890123456-21-Administrator-119


где

&&573&00063&& - произвольный набор символов, программой Q-Gate не анализируется
EVENT 5 - событие номер 5 - customer next.

3 - программой Q-Gate не анализируется
2 - номер рабочего места
1234567890123456 - номер кредитной карты
21 - номер билета
Administrator- логин имя работника, кто вызвал клиента
119 - ИД номер билета

При обнаружении Q-Gate в трафике события «Вызов клинета», сервис Q-Gate вызывает метод «OpenSREQ» веб сервиса 2 Siebel и передает ему следующие параметры:

- ид номер билета в системе (полученного из события Q-Win)

- логин имя работника, кто вызвал клиента (полученного из события Q-Win)