gopher39
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору [more] [more] Прошел месяц как я взялся за эту задачу. Нашел этот форум. Прочитал обе его части(при этом нашел очень много интересного для себя) Перекопал официальную базу знаний от ME https://pitstop.manageengine.com/portal/en/kb/servicedesk-plus Перекопал мануал от ME https://help.servicedeskplus.com/automation Но ошибка не уходит. Не получается запустить ни один скрипт связанный с заявками. Версия SD 10.5 Сборка 10513 .\pip.exe list --format=columns Package Version ------------------ --------- certifi 2023.7.22 charset-normalizer 3.2.0 idna 3.4 pip 23.1.2 requests 2.31.0 setuptools 65.5.0 urllib3 2.0.4 xlrd 2.0.1 Python 3.11 Скрипты копирую в папку C:\Program Files\ManageEngine\ServiceDesk\integration\custom_scripts на сервере. Далее в Жизненном Цикле Заявки создаю сценарий https://imagizer.imageshack.com/img922/2708/pCFRtP.png запускаю скрипт а в журнале все время пишется ошибка. причем чтобы я не делал с файлами, ошибки не уходят, а просто все время меняются. То она такая: Traceback (most recent call last): File "C:\Program Files\ManageEngine\ServiceDesk\integration\custom_scripts\assignChangeOwner_Sample3.py", line 15, in <module> with open(file_Path) as data_fil то такая Traceback (most recent call last): File "C:\Program Files\ManageEngine\ServiceDesk\integration\custom_scripts\mergetickets.py", line 5, in <module> import requests ModuleNotFoundError: No module и такая Traceback (most recent call last): File "C:\Program Files\ManageEngine\ServiceDesk\integration\custom_scripts\mergetickets.py", line 5, in <module> from functions import getURL Файл functions.py лежит в папке со скриптом, requests установлен. Единственное что удалось сделать, это отправить письмо с помощью скрипта, но все остальное не пашет. Может быть кто-нибудь сталкивался с такой напастью? Вот часть кода который не работает Код: import os import sys import urllib import requests import functions from functions import getURL from functions import read_file from functions import postURL from functions import setBR_input #print(dir(functions)) #--------------- Customizations ------------- technicianKey = '121E2DFE-1FAB-42D2-AD82-10E4C021374D' reason = "Merging with parent ticket" operation_name = "NEGATE" #---------------------------- Get Method ----------------------------------- def getURL(url, technicianKey, json_data=None, params=None, portalid=None): jsonData = None if json_data is not None: jsonData = { 'input_data': json_data } paramsData = None if params is not None: paramsData = urllib.parse.urlencode({ 'input_data': params }) headers = { "authtoken":technicianKey, 'accept':'vnd.manageengine.v3+json', 'PORTALID': portalid } with requests.Session() as s: return s.get(url, headers=headers, data=jsonData, params=paramsData, verify=False) config_filepath = os.getcwd()+"/configuration.json" configuration = read_file(config_filepath,"configuration") requestObj = read_file(str(sys.argv[1]),'request') sub = requestObj['subject'] desc = requestObj['description'] if desc is None: desc = "" print(sub) url = configuration['url']+"/api/v3/requests" params_data="""{"list_info":{"start_index":1,"search_fields":{"subject":"""+sub+"""},"get_total_count":true}}""" r = getURL(url, technicianKey,None,None,params_data) response = r.json() if response['response_status'][0]['status'] == 'success' and len(response['requests']) > 0: parentTicketId = response['requests'][0]['id'] url = configuration['url']+"/sdpapi/request/"+parentTicketId+"/conversation" desc=desc.replace("\"","'") json_data = '{"operation": {"details": {"subject": "'+ sub +'","description": "'+ desc +'","woID": "'+ parentTicketId +'"}}}' r = postURL(url, technicianKey,"ADD_CONVERSATION",params_data=json_data) print(r.json()) response = r.json() if response['operation']['result']['status'] != 'Success': print(response['operation']['result']['message']) print(setBR_input(operation_name,reason,None,None)) | | Всего записей: 14 | Зарегистр. 20-07-2023 | Отправлено: 16:52 15-08-2023 | Исправлено: gopher39, 16:57 15-08-2023 |
|