Рабочие процессы, или роботы сами пишут заявки, сами их и выполняют.

Есть у нас на работе развлекуха такого плана:
1)каждую пятницу мне пишет начальник(ну или сам себе) 6 заявок в хэлпдеск с практически одинаковым текстом(даты меняются) и статусом «В план». В плане заявок больше и они разные, но эти 6 повторяются.
2)каждую пятницу(ну или по факту, но проще делать это в пятницу) я ставлю 6 заявкам за прошлую неделю статус «Передана на верификацию» и пишу в решении что-то типа выполнено.
3)каждый понедельник я ставлю всем заявкам со статусом «В план» статус «Плановая».

В общем лень — двигатель прогресса и меня все это счастье за месяц подзадолбало(Месяц на новом месте, где вдруг нужно стало составлять план. С чем я и пытаюсь морально справится. Т.к. по планам никогда не работал и это напряжно. Но логика в этом есть, когда полный завал работы — нужно расставлять приоритеты и делать хоть что-то).
В силу своего поверхностного(ну а какого же еще знания, если я университетов или хотя бы курсов по этой теме не заканчивал) знания php решил на этом деле и решить свою «проблему». Знаю, можно было решить все запросом в базе данных, но это не наш метод. Да и не любит стороннее ПО, когда лезут в его хранилища или исходный код, особенно учитывая что хэлпдеск висит на другом отделе.

Осложнилось все тем, что хэлпдеск нагло врет по поводу параметров запросов(ну или у меня руки кривые, что допускаю), заявлен json.

Если немного порыться в настройках, можно найти документацию по ссылке http://helpdesk.farmin.by/SetUpWizard.do?forwardTo=apidoc
Все это конечно на английском, который я(как и php) никогда не учил, но т.к. вечно работаю с иностранным ПО, то немного понимаю. Плюс в хроме есть замечательная возможность перевода(весьма кривого), но в совокупности эти два фактора достаточны для понимания сути написанного.
Все что я там нашел полезного, это то как сделать ключ api(хотя я его и без инструкций сделал уже). Описываются REST-запросы, что сложилось впечатление будто я залез на википедию, а не техническую документацию почитать. Ну и формат запросов приведен(и он даже оттуда отправляет) в виде:

В общем все бы было отлично, если бы это самое апи хоть что-то делало!!! Чтоб вы понимали:

Во-первых: Error when performing — null — null, а во-вторых ответ в виде:

<?xml version="1.0" encoding="UTF-8" ?>
<API version="1.0">
	<response>
		<operation name="">
			<result>
				<status>Failed</status>
				<message>Error when performing - null - null</message>
			</result>
		</operation>
	</response>
</API>

Ну нифига это не заявленный JSON, а обычный XML. Ну я хорошо порылся и нашел документацию и на него, правда опять на английском 🙂
Но трэш в том, что хэлпдеск то у нас на русском и поля у него соответственно тоже:

Ну а XML и русские символы в полях это конечно да… В общем, порывшись я таки нашел как это организовано. Если отправить запрос вида

, то в ответ придет XML с нужными полями формата:

Показать

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<API version="1.0">
<response>
<operation name="GET_REQUEST_FIELDS">
<result>
<statuscode>200</statuscode>
<status>Success</status>
<message>Request Details fetched successfully</message>
</result>
<Details type="GET_REQUEST_FIELDS">
                <record>
                    <parameter>
                        <name>name</name>
                        <value>REQUESTID</value>
                    </parameter>
                    <parameter>
                        <name>value</name>
                        <value>35288</value>
                    </parameter>
                    <parameter>
                        <name>type</name>
                        <value>Not Editable</value>
                    </parameter>
                </record>
                <record>
                    <parameter>
                        <name>displayname</name>
                        <value>Приоритет</value>
                    </parameter>
                    <parameter>
                        <name>name</name>
                        <value>priority</value>
                    </parameter>
                    <parameter>
                        <name>VALUE</name>
                        <value>1. Высокий</value>
                        <value>2. Средний</value>
                        <value>3. Обычный</value>
                        <value>4. Низкий</value>
                    </parameter>
                    <parameter>
                        <name>defaultvalue</name>
                        <value>3. Обычный</value>
                    </parameter>
                    <parameter>
                        <name>type</name>
                        <value>Pick List</value>
                    </parameter>
                </record>
                <record>
                    <parameter>
                        <name>displayname</name>
                        <value>Плановое время</value>
                    </parameter>
                    <parameter>
                        <name>name</name>
                        <value>Плановое время</value>
                    </parameter>
                    <parameter>
                        <name>value</name>
                        <value>5</value>
                    </parameter>
                    <parameter>
                        <name>type</name>
                        <value>Numeric</value>
                    </parameter>
                </record>
                <record>
                    <parameter>
                        <name>displayname</name>
                        <value>Статус</value>
                    </parameter>
                    <parameter>
                        <name>name</name>
                        <value>status</value>
                    </parameter>
                    <parameter>
                        <name>VALUE</name>
                        <value>В план</value>
                        <value>В работе</value>
                        <value>Выполнена</value>
                        <value>Закрыта</value>
                        <value>Неактуально, будет отклонено.</value>
                        <value>Отклонена</value>
                        <value>Открыта</value>
                        <value>Передана на валидацию заказчику</value>
                        <value>Передана на верификацию</value>
                        <value>План развития ПО</value>
                        <value>Плановая</value>
                        <value>Приостановлено</value>
                        <value>Проводится верификация</value>
                        <value>Решение предоставлено</value>
                        <value>Срочная</value>
                        <value>Требуется доработка</value>
                    </parameter>
                    <parameter>
                        <name>defaultvalue</name>
                        <value>Плановая</value>
                    </parameter>
                    <parameter>
                        <name>type</name>
                        <value>Pick List</value>
                    </parameter>
                </record>
                <record>
                    <parameter>
                        <name>displayname</name>
                        <value>Организация</value>
                    </parameter>
                    <parameter>
                        <name>name</name>
                        <value>Организация</value>
                    </parameter>
                    <parameter>
                        <name>VALUE</name>
                        <value>ОДО Фармин</value>
                        <value>ООО Комповид</value>
                        <value>ООО Не Ска</value>
                        <value>ООО Фитобел</value>
                        <value>Проксима</value>
                        <value>Фармин (группа компаний)</value>
                        <value>ЧФУП Чигряй</value>
                    </parameter>
                    <parameter>
                        <name>defaultvalue</name>
                        <value>ОДО Фармин</value>
                    </parameter>
                    <parameter>
                        <name>type</name>
                        <value>Pick List</value>
                    </parameter>
                </record>
                <record>
                    <parameter>
                        <name>displayname</name>
                        <value>Режим</value>
                    </parameter>
                    <parameter>
                        <name>name</name>
                        <value>mode</value>
                    </parameter>
                    <parameter>
                        <name>VALUE</name>
                        <value>WEB интерфейс</value>
                        <value>Телефонный звонок</value>
                        <value>Электронная почта</value>
                    </parameter>
                    <parameter>
                        <name>defaultvalue</name>
                        <value>WEB интерфейс</value>
                    </parameter>
                    <parameter>
                        <name>type</name>
                        <value>Pick List</value>
                    </parameter>
                </record>
                <record>
                    <parameter>
                        <name>displayname</name>
                        <value>Категория</value>
                    </parameter>
                    <parameter>
                        <name>name</name>
                        <value>category</value>
                    </parameter>
                    <parameter>
                        <name>VALUE</name>
                        <value>Интернет</value>
                        <value>Консультация</value>
                        <value>Локальная сеть</value>
                        <value>Материально технические</value>
                        <value>Оборудование</value>
                        <value>Обслуживание</value>
                        <value>Обучение</value>
                        <value>Общие</value>
                        <value>Операционные системы</value>
                        <value>Периферийные устройства</value>
                        <value>Почта</value>
                        <value>Претензии по товару</value>
                        <value>Программное обеспечение</value>
                        <value>Розница</value>
                        <value>Телефония</value>
                    </parameter>
                    <parameter>
                        <name>defaultvalue</name>
                        <value>Программное обеспечение</value>
                    </parameter>
                    <parameter>
                        <name>type</name>
                        <value>Pick List</value>
                    </parameter>
                </record>
                <record>
                    <parameter>
                        <name>displayname</name>
                        <value>Группа</value>
                    </parameter>
                    <parameter>
                        <name>name</name>
                        <value>group</value>
                    </parameter>
                    <parameter>
                        <name>VALUE</name>
                        <value>WMS</value>
                        <value>Заказ канцтоваров</value>
                        <value>Закупка компьютерного оборудования</value>
                        <value>Изменение и доработка программ</value>
                        <value>Информационные технологии</value>
                        <value>Книга отзывов и предложений</value>
                        <value>Материально-хозяйственная служба</value>
                        <value>Претензии по товару</value>
                        <value>Проблема с телефонией</value>
                        <value>Удостоверения кассира</value>
                    </parameter>
                    <parameter>
                        <name>defaultvalue</name>
                        <value>Изменение и доработка программ</value>
                    </parameter>
                    <parameter>
                        <name>type</name>
                        <value>Pick List</value>
                    </parameter>
                </record>
                <record>
                    <parameter>
                        <name>displayname</name>
                        <value>Подкатегория</value>
                    </parameter>
                    <parameter>
                        <name>name</name>
                        <value>subCategory</value>
                    </parameter>
                    <parameter>
                        <name>VALUE</name>
                        <value>1C:Арника</value>
                        <value>1С:7 Бухгалтерия</value>
                        <value>1С:8 Бухгалтерия предприятия</value>
                        <value>1С:8 ЗиУП</value>
                        <value>1С:8 Управление торговлей</value>
                        <value>Assistant</value>
                        <value>BookKeeper</value>
                        <value>iRetailManagement</value>
                        <value>iRetailPOS</value>
                        <value>Jet заказ</value>
                        <value>Jet розница Dezira</value>
                        <value>OLAP Кубы</value>
                        <value>ServiceDesk Plus</value>
                        <value>Web заказ</value>
                        <value>Браузер Chrome</value>
                        <value>Мобильное приложение</value>
                        <value>Обсуждения/Консультации</value>
                        <value>Почтовый клиент Outlook</value>
                        <value>Почтовый клиент Thunderbird</value>
                        <value>Прочее</value>
                        <value>Разработка сайтов</value>
                        <value>Сервисы обмена</value>
                        <value>Фармасервис</value>
                    </parameter>
                    <parameter>
                        <name>type</name>
                        <value>Pick List</value>
                    </parameter>
                    <parameter>
                        <name>defaultvalue</name>
                        <value>1С:8 Управление торговлей</value>
                    </parameter>
                </record>
                <record>
                    <parameter>
                        <name>displayname</name>
                        <value>Специалист</value>
                    </parameter>
                    <parameter>
                        <name>name</name>
                        <value>technician</value>
                    </parameter>
                    <parameter>
                        <name>VALUE</name>
                        <value>Алексей Дубовцов</value>
                        <value>Сергей Дудко</value>
                    </parameter>
                    <parameter>
                        <name>defaultvalue</name>
                        <value>Сергей Дудко</value>
                    </parameter>
                    <parameter>
                        <name>type</name>
                        <value>Pick List</value>
                    </parameter>
                </record>
                <record>
                    <parameter>
                        <name>displayname</name>
                        <value>Ложный вызов</value>
                    </parameter>
                    <parameter>
                        <name>name</name>
                        <value>Ложный вызов</value>
                    </parameter>
                    <parameter>
                        <name>VALUE</name>
                        <value>Да</value>
                        <value>Нет</value>
                    </parameter>
                    <parameter>
                        <name>DEFAULTVALUE</name>
                        <value/>
                    </parameter>
                    <parameter>
                        <name>type</name>
                        <value>Pick List</value>
                    </parameter>
                </record>
                <record>
                    <parameter>
                        <name>displayname</name>
                        <value>Адреса эл. почты для уведомлений</value>
                    </parameter>
                    <parameter>
                        <name>name</name>
                        <value>emailcc</value>
                    </parameter>
                    <parameter>
                        <name>VALUE</name>
                        <value/>
                    </parameter>
                    <parameter>
                        <name>type</name>
                        <value>Not Editable</value>
                    </parameter>
                </record>
                <record>
                    <parameter>
                        <name>displayname</name>
                        <value>Класс задачи</value>
                    </parameter>
                    <parameter>
                        <name>name</name>
                        <value>Класс задачи</value>
                    </parameter>
                    <parameter>
                        <name>VALUE</name>
                        <value>Внеплановая</value>
                        <value>Консультация по работе ПО</value>
                        <value>Назначение прав пользователей</value>
                        <value>Ошибка пользователя</value>
                        <value>Ошибка программного обеспечения</value>
                        <value>Плановая</value>
                        <value>Прочее</value>
                    </parameter>
                    <parameter>
                        <name>defaultvalue</name>
                        <value>Плановая</value>
                    </parameter>
                    <parameter>
                        <name>type</name>
                        <value>Pick List</value>
                    </parameter>
                </record>
                <record>
                    <parameter>
                        <name>name</name>
                        <value>RequesterID</value>
                    </parameter>
                    <parameter>
                        <name>value</name>
                        <value>938</value>
                    </parameter>
                </record>
                <record>
                    <parameter>
                        <name>displayname</name>
                        <value>Сведения об авторе заявки</value>
                    </parameter>
                    <parameter>
                        <name>name</name>
                        <value>RequesterDetails</value>
                    </parameter>
                    <parameter>
                        <name>value</name>
                        <value>Алексей Дубовцов</value>
                    </parameter>
                    <parameter>
                        <name>TYPE</name>
                        <value/>
                    </parameter>
                </record>
                <record>
                    <parameter>
                        <name>displayname</name>
                        <value>Тема</value>
                    </parameter>
                    <parameter>
                        <name>name</name>
                        <value>Subject</value>
                    </parameter>
                    <parameter>
                        <name>value</name>
                        <value>Обработка ошибок обмена 1с - БК -WMS - сайты</value>
                    </parameter>
                    <parameter>
                        <name>type</name>
                        <value>Single Line</value>
                    </parameter>
                </record>
                <record>
                    <parameter>
                        <name>displayname</name>
                        <value>Описание</value>
                    </parameter>
                    <parameter>
                        <name>name</name>
                        <value>Description</value>
                    </parameter>
                    <parameter>
                        <name>value</name>
                        <value>&lt;div&gt;Обработка ошибок обмена 1с - БК -WMS - сайты&lt;/div&gt;</value>
                    </parameter>
                    <parameter>
                        <name>TYPE</name>
                        <value/>
                    </parameter>
                </record>
                <record>
                    <parameter>
                        <name>displayname</name>
                        <value>Дата создания</value>
                    </parameter>
                    <parameter>
                        <name>name</name>
                        <value>createddate</value>
                    </parameter>
                    <parameter>
                        <name>value</name>
                        <value>1506663569050</value>
                    </parameter>
                    <parameter>
                        <name>type</name>
                        <value>Date/Time Field</value>
                    </parameter>
                </record>
                <record>
                    <parameter>
                        <name>displayname</name>
                        <value>Дата ответа</value>
                    </parameter>
                    <parameter>
                        <name>name</name>
                        <value>respondeddate</value>
                    </parameter>
                    <parameter>
                        <name>value</name>
                        <value>0</value>
                    </parameter>
                    <parameter>
                        <name>TYPE</name>
                        <value/>
                    </parameter>
                </record>
                <record>
                    <parameter>
                        <name>displayname</name>
                        <value>Срок выполнения</value>
                    </parameter>
                    <parameter>
                        <name>name</name>
                        <value>duebydate</value>
                    </parameter>
                    <parameter>
                        <name>value</name>
                        <value>1507009380000</value>
                    </parameter>
                    <parameter>
                        <name>type</name>
                        <value>Date/Time Field</value>
                    </parameter>
                </record>
                <record>
                    <parameter>
                        <name>displayname</name>
                        <value>Дата принятия решения</value>
                    </parameter>
                    <parameter>
                        <name>name</name>
                        <value>resolveddate</value>
                    </parameter>
                    <parameter>
                        <name>value</name>
                        <value>0</value>
                    </parameter>
                    <parameter>
                        <name>TYPE</name>
                        <value/>
                    </parameter>
                </record>
                <record>
                    <parameter>
                        <name>displayname</name>
                        <value>Дата выполнения</value>
                    </parameter>
                    <parameter>
                        <name>name</name>
                        <value>completeddate</value>
                    </parameter>
                    <parameter>
                        <name>value</name>
                        <value>0</value>
                    </parameter>
                    <parameter>
                        <name>TYPE</name>
                        <value/>
                    </parameter>
                </record>
                <record>
                    <parameter>
                        <name>displayname</name>
                        <value>Срок ответа (время)</value>
                    </parameter>
                    <parameter>
                        <name>name</name>
                        <value>frduebydate</value>
                    </parameter>
                    <parameter>
                        <name>value</name>
                        <value>0</value>
                    </parameter>
                    <parameter>
                        <name>type</name>
                        <value>Date/Time Field</value>
                    </parameter>
                </record>
                <record>
                    <parameter>
                        <name>displayname</name>
                        <value>Вложения</value>
                    </parameter>
                    <parameter>
                        <name>name</name>
                        <value>attachment</value>
                    </parameter>
                    <parameter>
                        <name>VALUE</name>
                        <value/>
                    </parameter>
                    <parameter>
                        <name>TYPE</name>
                        <value/>
                    </parameter>
                </record>
                <record>
                    <parameter>
                        <name>displayname</name>
                        <value>Основание</value>
                    </parameter>
                    <parameter>
                        <name>name</name>
                        <value>reason</value>
                    </parameter>
                    <parameter>
                        <name>VALUE</name>
                        <value/>
                    </parameter>
                    <parameter>
                        <name>TYPE</name>
                        <value/>
                    </parameter>
                </record>
                <record>
                    <parameter>
                        <name>name</name>
                        <value>REQUESTEREMAIL</value>
                    </parameter>
                    <parameter>
                        <name>value</name>
                        <value></value>
                    </parameter>
                    <parameter>
                        <name>type</name>
                        <value>Not Editable</value>
                    </parameter>
                </record>
            </Details>
        </operation>
</response>
</API>


В общем какая-то дичайшая дичь. Но в итоге вот что получилось.

Структура MySQL:

и сама таблица

Задания в Cron:

Ну и сам код(старался писать его максимально расширяемым):

Показать

<?php
 
date_default_timezone_set('Europe/Minsk'); //без присвоенной таймзоны data не работает!!!
$datetime = new DateTime(); //создаем дату
$date = $datetime->modify('friday this week');	//сдвигаем до пятницы
$datetime = new DateTime(); //создаем дату
$start_d = $date->modify('monday next week'); //сдвигаем до понедельника
$datetime = new DateTime(); //создаем дату
$end_d = $date->modify('friday next week');  //сдвигаем до след.пятницы
 
$timeout = 5000; //таймаут запроса к хэлпдеск
 
$login = $_GET['login'];
$command = $_GET['command'];
$mykey = $_GET['mykey'];
 
if(($mykey != '**********************') || !isset($command) || !isset($login)){ //проверяем ключи
	exit;
}
 
$appform = new mysqli("localhost", "**********************", "**********************", "plan");
if ($appform->connect_errno) {
	echo "Не удалось подключиться к MySQL:".$appform->connect_error; 
	exit;
}
 
$i=0;
$arraydb;			
$appform->query("SET NAMES utf8");		//отбираем заявки
if ($result = $appform->query("SELECT * FROM `zayavki` WHERE `technician_loginname`='".$login."'")) {
while( $row = $result->fetch_assoc() ){ 
	$arraydb[$i] = $row;
	$i++;
	}
$result->close(); 
}
 
if(!isset($arraydb)){ //если заявок нет завершаем скрипт
	$appform->close();
	exit;
}
 
$server = 'http://helpdesk.farmin.by/sdpapi/request';
$techkey = '56**********************660';
 
for($i=0; $i < count($arraydb); $i++){
 
/* костыли начало */
if($login == 'sergei.dudko'){
	if($arraydb[$i]['subject'] == '1С8:УТ11 Сопоставление остатков 1с и БК в количественном и суммовом выражении'){
		$arraydb[$i]['description'] = '1С8:УТ11 Сопоставление остатков 1С и БК в количественном и суммовом выражении на '.date_format($date, "d.m.Y").'г. по всем складам';
	} 
	if(substr($arraydb[$i]['subject'], 0, 21) == 'Оценка плановых задач'){ 
		$arraydb[$i]['description'] = 'Оценка плановых задач на период с '.date_format($start_d, 'd.m.Y').' по '.date_format($end_d, 'd.m.Y');
		$arraydb[$i]['subject'] = $arraydb[$i]['description'];
		$arraydb[$i]['description'] .= PHP_EOL;
		$arraydb[$i]['description'] .= 'Составление плана';
 
	} 
}
/* костыли конец */
 
	if($command == 'inplan'){ //закрываем старые и создаем новые заявки
 
		if(isset($arraydb[$i]['uid'])){
			$text = 'выполнено';
			$resp = AddResolution($server, $techkey, $arraydb[$i]['uid'], $text);
		}
		if($resp == 'Success'){
			usleep($timeout);
			$status = 'Передана на верификацию';
			UpdateStatus($server, $techkey, $arraydb[$i]['uid'], $status);
			usleep($timeout); 
		}
 
		$status = 'В план'; 
		$uid = NewApp($server, $techkey, $arraydb[$i]['requester'], $arraydb[$i]['subject'], $arraydb[$i]['description'], $arraydb[$i]['category'], $arraydb[$i]['subcategory'], $arraydb[$i]['department'], $arraydb[$i]['group'], $arraydb[$i]['technician'], $arraydb[$i]['technician_loginname'], $status);
		if(isset($uid)){	
			$appform->query("UPDATE `zayavki` SET `uid`='".$uid."', `status`='".$status."' WHERE `Id`='".$arraydb[$i]['Id']."'");
		}
		usleep($timeout); //ждем  секунду 
	}
 
	if($command == 'plan'){ //обновляем статус
		$status = 'Плановая';
		if(isset($arraydb[$i]['uid'])){
			$uid = UpdateStatus($server, $techkey, $arraydb[$i]['uid'], $status);
			if($uid == 'Success'){
				$appform->query("UPDATE `zayavki` SET `status`='".$status."' WHERE `Id`='".$arraydb[$i]['Id']."'");
			}
			usleep($timeout); //ждем  секунду
		}
	} 
 
}
 
/*
$requester = 'Алексей Дубовцов';
$subject = '1С8:УТ11 Сопоставление остатков 1с и БК в количественном и суммовом выражении';
$description = '1С8:УТ11 Сопоставление остатков 1С и БК в количественном и суммовом выражении на 29 сентября 2017 г. по всем складам';
$category = 'Программное обеспечение';
$subcategory = '1С:8 Управление торговлей';
$department = 'Отдел программного обеспечения';
$group ='Изменение и доработка программ';
$technician = 'Сергей Дудко';
$technician_loginname = 'sergei.dudko';
$status = 'План развития ПО'; */ 
 
function NewApp($server, $techkey, $requester, $subject, $description, $category, $subcategory, $department, $group, $technician, $technician_loginname, $status){ //новая заявка
	$operation = 'ADD_REQUEST';
	$data = '<Operation>
	<Details>
	<requester>'.$requester.'</requester>
	<subject>'.$subject.'</subject>
	<description>'.$description.'</description>
	<callbackURL></callbackURL>
	<requesttemplate></requesttemplate>
	<priority></priority>
	<site></site>
	<group>'.$group.'</group>
	<technician></technician>
	<level></level>
	<status>'.$status.'</status>
	<service></service>
	<department>'.$department.'</department>
	<category>'.$category.'</category>
	<subcategory>'.$subcategory.'</subcategory>
	<technician>'.$technician.'</technician>
	<technician_loginname>'.$technician_loginname.'</technician_loginname>
	<createdtime>'.time().'</createdtime>
	<completedtime>5</completedtime>
	<respondedtime>4</respondedtime>
	<FR_DUETIME>3</FR_DUETIME>
	<RESOLVEDTIME>2</RESOLVEDTIME>
	</Details>
	</Operation>';
	$request = 'TECHNICIAN_KEY='.$techkey.'&OPERATION_NAME='.$operation.'&INPUT_DATA='.$data; 
	$answarray = simplexml_load_string(SendRequest($request, $server));
	$idreq = $answarray->response->operation->Details->workorderid;
	return $idreq; //string(24) "35376"
}
 
/*
$idreq = '35362';
$status = 'Плановая'; */ 
 
function UpdateStatus($server, $techkey, $idreq, $status){ //апдейт статуса
	$server = $server.'/'.$idreq;
 
	$operation = 'EDIT_REQUEST';
	$data = '<Operation>
	<Details>
	<parameter>
	<name>status</name>
	<value>'.$status.'</value>
	</parameter>
	</Details>
	</Operation>';
 
	$request = 'TECHNICIAN_KEY='.$techkey.'&OPERATION_NAME='.$operation.'&INPUT_DATA='.$data; 
	$answarray = simplexml_load_string(SendRequest($request, $server));
	$answer = $answarray->response->operation->result->status;
	return $answer; //string(24) "Success"
}
 
/*
$idreq = '35362';
$text = 'Выполнено'; */ 
 
function AddResolution($server, $techkey, $idreq, $text){ //добавляем ответ
	$server = $server.'/'.$idreq.'/resolution';
 
	$operation = 'ADD_RESOLUTION';
	$data = '<Operation>
	<Details>
	<resolution>
	<resolutiontext>'.$text.'</resolutiontext>
	</resolution>
	</Details>
	</Operation>';
 
	$request = 'TECHNICIAN_KEY='.$techkey.'&OPERATION_NAME='.$operation.'&INPUT_DATA='.$data; 
	$answarray = simplexml_load_string(SendRequest($request, $server));
	$answer = $answarray->result->status;
	return $answer; //string(24) "Success"
}
 
function SendRequest($request, $server){	
	$curl = curl_init($server);
	curl_setopt($curl, CURLOPT_POST, true);
	curl_setopt($curl, CURLOPT_POSTFIELDS, $request);
	curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
	curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
	$response = curl_exec($curl);
	return $response;
}
$appform->close();
exit;