вторник, 12 апреля 2011 г.

ManageEngine ServiceDesk. Расширяем функционал.

Прошло некоторое время после моего поста "Error 2004: Can't create TCP/IP socket (10106)" - решение небольшой проблемы с которой я столкнулся во время изучения возможности расширения функциональности программного продукта ServiceDesk Plus от компании ManageEngine. SDP является коробочной версией, поэтому вносить изменения в исходный код не представляется возможным. 
Нигде на форумах я не встретил ответа на мой вопрос - пришлось разбираться самому. Через конфигурационные файлы, которые доступны для редактирования, добился чтобы выполнялись CGI-скрипты через скриптовый язык python.
Ну дальше дело техники - чтение документации: по модулям cgi в Python, jQueryUI для создания красивых web-интерфейсов наших страничек, mysql для закрепления знаний по базам данных.
Хорошо, для работы с пользователем, получаем его сессию из cookie. Проверяем полученную сессию на открытость и принадлежность к пользователю - во избежания работы с нашей страницей без SDP авторизации.
mas = re.search( 'JSESSIONIDSSO=([0-9a-f]{32})', os.environ[ 'HTTP_COOKIE' ], re.I )
cur.execute( "select s.* from aaaaccsession s, aaaacchttpsession h where h.sso_id = '%s' and h.SESSION_ID = s.session_id" % mas.group( 1 ) )
( session_id, account_id, user_host, application_host, opentime, closetime, status ) = cur.fetchone( )
cur.execute( "select u.first_name, l.name, l.login_id, u.user_id from aaaaccount a, aaalogin l, aaauser u where a.account_id = %s and a.login_id = l.login_id and u.user_id = l.user_id", account_id )
( first_name, login_name, login_id, user_id ) = cur.fetchone( )
Ну а дальше можно делать и автоматизацию некоторых рутинных действий, так например, специалисты нашего отдела обязаны регистрировать все телефонные обращения. Выполнялось это через специальный шаблон, который нужно было заполнять во время ответа на звонок и закрывать по окончанию. С помощью нашего расширения мы создаем и закрываем заявки по одному нажатию кнопки мыши.

Создание заявки:
$.post( "/WorkOrder.do", {
"FORMNAME": "WorkOrderForm",
"FROM": "INLINE",
"MOD_IND": "WorkOrder",
"UDF_CHAR1": "",
"UDF_CHAR2": "",
"UDF_CHAR4": "",
"UDF_CHAR5": "",
"addWO": "addWO",
"category": "",
"contactNumber": "",
"description": "",
"group": "",
"impact": "",
"jobTitle": "",
"level": "",
"location": "",
"reqID": "",
"reqName": "",
"reqTemplate": "",
"requestServiceId": "",
"requestType": "",
"resolution": "",
"resourceModified": "false",
"resourcesInfo": "",
"siteID": "0",
"status": "1",
"subCategory": "",
"technician": "",
"templateSite": "null",
"title": "",
"workstationID": "0"
} );
 Закрытие заявки:
$.post( "/AddResolution.do", {
"FORMNAME": "addResolutionForm",
"MOD_IND": "WorkOrder",
"addResolutionButton": "Сохранить",
"cost": "0.0",
"costperhour": "0.0",
"description": "",
"executedTime": "",
"requestID": "",
"resolution": "",
"technicianID": "",
"timeSpent": "true",
"woStatus": "4",
"workHours": "",
"workMinutes": ""
} );
Описание полей не выкладываю и так понятно по названию...
Второе действие, которое можно автоматизировать - сброс пароля для учетной записи active direcory с созданием заявки через другой специальный шаблон, предназначенный для контроля такого типа операций.


Количество задач, которые можно выполнять таким образом бесконечно большое, поэтому автоматизируя рутинные операции мы упрощаем жизнь и себе, и своим коллегам.

3 комментария:

  1. А чем не устроил штатный api?

    ОтветитьУдалить
  2. Штатный АПИ очень скудный по функционалу, и необходимо либо генерировать ключ для работы с ним, либо постоянно передавать логин/пароль для выполнения операций. Данной заметкой я хотел продемонстрировать возможность расширить и подогнать СДП под свои определенные задачи.

    ОтветитьУдалить
  3. Another great advantage of free play is the very fact fact} you won’t have 바카라사이트 to sign up|to enroll} and share any of your private details or obtain any software. Of course, you can to|you probably can} be sure that|ensure that|make sure that} all details are secure and secure when signing up with a top casino we’ve recommended. GambleAware supply gamers and their households recommendation and guidance on playing. They supply data and recommendation to encourage accountable playing, both to gamers and casino operators, and give assist to those who might have a playing drawback.

    ОтветитьУдалить