Общие -------- Успешное и неуспешное завершение процесса ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: javascript var form = platform.getFormsManager().getFormData (dataUUID); form.load(); form.save(); if (form.getNumericValue("sum_one") < 100000){ result = true; message = "Успешно отправлено по маршруту"; } else { result = false; message = "Заявка не выполнена. Сумма превышает стандарт" ; } Использование REST API Synergy ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ На данный момент итерпретатор позволяет обращаться ко всем доступным методам REST API Synergy. Для этого нужно прописывать запросы необходимых методов непосредственно в скрипт. **Пример 1.** *POST-запрос API-метода* .. code-block:: javascript // Создаём объект POST-запроса var post = new org.apache.commons.httpclient.methods.PostMethod("http://192.168.4.6:8080/Synergy/rest/api/storage/copy"); // Добавляем параметры согласно спецификации метода "rest/api/storage/copy" post.addParameter("fileID", fileReportID); post.addParameter("documentID", documentID); // Создаём HTTP-клиент и авторизационные данные var client = new org.apache.commons.httpclient.HttpClient(); var creds = new org.apache.commons.httpclient.UsernamePasswordCredentials(synergyUser, synergyPass); // Задаём клиенту способ авторизации и передаём авторизационные данные client.getParams().setAuthenticationPreemptive(true); client.getState().setCredentials(org.apache.commons.httpclient.auth.AuthScope.ANY, creds); // Настраиваем заголовки запроса post.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); // Выполняем метод var status = client.executeMethod(post); // Обязательно закрываем соединение post.releaseConnection(); var result = true; **Пример 2.** *GET-запрос API-метода* .. code-block:: javascript // Блок аналогичен расположенному выше var get = new org.apache.commons.httpclient.methods.GetMethod("http://127.0.0.1:8080/Synergy/rest/api/departments/list"); var client = new org.apache.commons.httpclient.HttpClient(); var creds = new org.apache.commons.httpclient.UsernamePasswordCredentials(synergyUser, synergyPass); client.getParams().setAuthenticationPreemptive(true); client.getState().setCredentials(org.apache.commons.httpclient.auth.AuthScope.ANY, creds); get.setRequestHeader("Content-type", "application/json"); var status = client.executeMethod(get); // Получаем HTTP-код возврата и преобразуем его в строку // далее используем по своему усмотрению var message = "" + status; // Обязательно закрываем соединение get.releaseConnection(); var result = true; **Пример 3.** *GET-запрос API-метода* .. code-block:: javascript // Блок аналогичен тому расположенному выше var get = new org.apache.commons.httpclient.methods.GetMethod("http://127.0.0.1:8080/Synergy/rest/api/departments/list"); var client = new org.apache.commons.httpclient.HttpClient(); var creds = new org.apache.commons.httpclient.UsernamePasswordCredentials("ivanov", "1"); client.getParams().setAuthenticationPreemptive(true); client.getState().setCredentials(org.apache.commons.httpclient.auth.AuthScope.ANY, creds); get.setRequestHeader("Content-type", "application/json"); var status = client.executeMethod(get); // Возвращает тело запроса HTTP, если такое есть, как String var responseBody = get.getResponseBodyAsString(); var json = eval("(" + responseBody + ")"); var message = "" + status + " " + json[0].departmentID; get.releaseConnection(); var result = true; // var responseBody = get.getResponseBodyAsString(); var json = eval("(" + responseBody + ")"); var message = "" + status + " " + json[0].documentID;