Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Данный класс позволяет клиентскому скрипту выполнять серверный код, используя Внешний скрипт.
Для того чтобы использовать класс SimpleAjax, выполните следующие шаги:
- Вызовите конструктор SimpleAjax, чтобы создать экземпляр SimpleAjax. В качестве аргумента передайте в конструктор название внешнего скрипта, который включает в себя класс с необходимыми методами.
Вызовите метод addParam(paramName, paramValue). В качестве обязательного вызова передайте в него параметры, определяющие требуемый метод. Для этого выполните следующие шаги:
- задайте параметр sysparm_name,
- и название метода из определённого в вызываемом Внешнем скрипте класса.
Вызывайте этот метод необходимое количество раз, чтобы передать другие параметры в используемый внешний скрипт.
- Вызовите метод getXML(callback), чтобы выполнить описанный выше метод.
Note |
---|
Название класса, определенного в записи Внешний скрипт, должно совпадать с названием внешнего скрипта. Для возможности вызова внешнего скрипта в клиентских скриптах, активируйте атрибут Доступно для клиентского API. Подробнее читайте в статье Внешние скрипты. |
addParam(paramName, param Value)
Используйте метод, чтобы передать указанное имя и значение параметра серверной функции, которая связана с текущим объектом SimpleAjax. Метод addParam() можно использовать несколько раз, передавая различные параметры и их значения.
Note |
---|
На стороне сервера скрипт выполняется только после вызова метода getXML() в клиентском скрипте. Название параметра должно начинаться с префикса sysparm_. Не используйте предопределенное имя параметра sysparm_name для передачи значения параметру функции. |
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
paramName | String | Да | Нет |
paramValue | String | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Этот метод Метод не возвращает значение. |
Пример:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
const sAjax = new SimpleAjax('DurationCalculator'); // Вызов внешнего скрипта sAjax.addParam('sysparm_name', 'getDuration'); // Вызов метода класса sAjax.addParam('sysparm_start', s_form.getValue('start')); // Передать параметр sAjax.getXML(callback); function callback(response) { const answer = response.responseXML.documentElement.getAttribute('answer'); console.log(answer); } |
getXML(callback)
Anchor | ||||
---|---|---|---|---|
|
Используйте метод, чтобы при его вызове клиентский скрипт отправлял запрос на сервер, где выполняется метод текущего объекта SimpleAjax с переданными в него параметрами. Запрос выполняется асинхронно. Результат выполнения серверного метода будет передан в указанную функцию callback.
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Этот метод Метод не возвращает значение. |
Пример:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
const sAjax = new SimpleAjax('DurationCalculator'); // Вызов внешнего скрипта sAjax.addParam('sysparm_name', 'getDuration'); // Вызвать параметр метода sAjax.addParam('sysparm_start', s_form.getValue('start')); // передать параметр sAjax.getXML(callback); function callback(response) { const answer = response.responseXML.documentElement.getAttribute('answer'); console.log(answer); } |
runScript(scriptValue, tableName, callback)
Используйте этот метод для запуска скрипта на заданной таблице. Скрипт выполняется с учетом ограничений правил контроля доступа (ACL).
Info |
---|
Результат выполнения скрипта будет передан в указанную функцию callback. |
Параметры:
Название | Тип | Обязательный | Значение по умолчанию | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
scriptValue | String | Да | Нет | |||||||||
tableName
| String | Нет | Нет | |||||||||
callback | Function | Нет | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Этот метод Метод не возвращает значение. |
Пример:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
const CURRENT_ID = s_form.getUniqueValue(); const simpleAjax = new SimpleAjax(); await simpleAjax.runScript( `const current = new SimpleRecord('task'); current.get('${CURRENT_ID}'); setResult(current.caller.email)`, null, (response) => { console.log(response.data.result); } ) |
runAdminScript(scriptValue, tableName, callback)
Пользователи с ролью администратора могут использовать этот метод для запуска скрипта. Ограничения правил контроля доступа (ACL) не распространяются на скрипт. При попытке запуска скрипта пользователем, который не является администратором, метод передаст в функцию callback пустое значение. Таким образом, перед использованием результата скрипта убедитесь в том, что response.data.result
имеет значение.
Info |
---|
Результат выполнения скрипта будет передан в указанную функцию callback. |
Параметры:
Название | Тип | Обязательный | Значение по умолчанию | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
scriptValue | String | Да | Нет | |||||||||
tableName
| String | Нет | Нет | |||||||||
callback | Function | Нет | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Этот метод Метод не возвращает значение. |
Пример:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
const simpleAjax = new SimpleAjax(); await simpleAjax.runAdminScript( `const supportSiteURL = ss.getProperty('simple.auth_page.support_site'); setResult(supportSiteURL)`, null, (response) => { const serverData = response.data.result; console.log(serverData); } ) |
Table of Contents | ||||
---|---|---|---|---|
|