Сумма двух чисел внутри одной формы ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. note:: Компоненты должны быть числовыми .. code-block:: javascript var form = platform.getFormsManager().getFormData (dataUUID); form.load(); var summa = form.getNumericValue("cmp-a") + form.getNumericValue("cmp-b"); form.setValue("cmp-c", summa); form.setValue("cmp-d", summa); form.save(); var result=true; var message = "ОК"; Запись значения(текст) в поле определенной личной карточки пользователя, указанного в форме ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. note:: Личную карточку после отработки процесса нужно обновить .. code-block:: javascript var form = platform.getFormsManager().getFormData (dataUUID); form.load(); var card= platform.getCardsManager().getUserCard('97ec70b2-a5b1-455d-86de-28555323298d', form.getValue("userID")); card.load(); card.setValue("cmp-8", 'Привет, мир!'); card.save(); var result = true; var message = "Успешно завершено"; Запись суммы двух компонентов формы в поле определенной личной карточки пользователя, указанного в форме ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: javascript var form = platform.getFormsManager().getFormData (dataUUID); form.load(); var card= platform.getCardsManager().getUserCard('97ec70b2-a5b1-455d-86de-28555323298d', form.getValue("userID")); card.load(); card.setValue("cmp-8", form.getNumericValue("cmp-a")+form.getNumericValue("cmp-b")); card.save(); var result = true; var message = "Успешно завершено"; Разница между датой в форме и конкретным числом (количество полных дней) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: javascript var form = platform.getFormsManager().getFormData (dataUUID); form.load(); var d1 = form.getValue("date-a"); var year = parseInt(d1.substring(0,4)); var month = parseInt(d1.substring(5,7).replace('0', ''))-1; var day = parseInt(d1.substring(8,10)); var hh = parseInt(d1.substring(11,13)); var mi = parseInt(d1.substring(14,16)); var sec = parseInt(d1.substring(17)); var date_1 = new Date(year, month, day, hh, mi, sec); var date_2 = Date.parse("October 4, 2014 19:28:34 GMT"); form.setValue("cmp-2",date_2); var dif = (date_1.getTime()-date_2)/86400000 form.setValue("cmp-1", dif); form.setValue("cmp-2",Math.floor(dif)); form.save(); var result=true; var message = "Привет, мир!"; Разница между двумя датами в личной карточке (количество полных дней) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: javascript var form = platform.getFormsManager().getFormData (dataUUID); form.load(); var card= platform.getCardsManager().getUserCard('97ec70b2-a5b1-455d-86de-28555323298d', form.getValue("userID")); card.load(); var d1 = card.getValue("date_a"); var year_a = parseInt(d1.substring(0,4)); var month_a = parseInt(d1.substring(5,7).replace('0', ''))-1; var day_a = parseInt(d1.substring(8,10)); var hh_a = parseInt(d1.substring(11,13)); var mi_a = parseInt(d1.substring(14,16)); var sec_a = parseInt(d1.substring(17)); var date_1 = new Date(year_a, month_a, day_a, hh_a, mi_a, sec_a); var d2 = card.getValue("date_b"); var year_b = parseInt(d2.substring(0,4)); var month_b = parseInt(d2.substring(5,7).replace('0', ''))-1; var day_b = parseInt(d2.substring(8,10)); var hh_b = parseInt(d2.substring(11,13)); var mi_b = parseInt(d2.substring(14,16)); var sec_b = parseInt(d2.substring(17)); var date_2 = new Date(year_b, month_b, day_b, hh_b, mi_b, sec_b); var dif = (date_2.getTime()-date_1.getTime())/86400000; form.setValue("cmp-a",Math.floor(dif)); form.save(); var result=true; var message = "Привет, мир!"; Количество строк в дин. таблице и сумма значений компонентов дин.таблицы ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: javascript var form = platform.getFormsManager().getFormData (dataUUID); form.load(); form.setValue("cmp-c", form.getRowsCount("table")); var sum=0; for (i = 0; i < form.getRowsCount("table"); i ++) { sum = sum + form.getNumericValue("table", "cmp-table", i); } form.setValue("cmp-b",sum); form.setValue("cmp-8",sum); form.save(); var result=true; var message = "ОК"; Успешное и неуспешное завершение процесса ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. 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;