You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 6 Next »
Данный метод позволяет выполнять клиентский скрипт на сервере, используя Script Includes.
Для того чтобы использовать класс SimpleAjax, выполните следующие шаги:
- Вызовите конструктор SimpleAjax, чтобы создать экземпляр SimpleAjax. Укажите в аргументе конструктора название Script Include, который включает в себя класс с необходимыми методами.
Вызовите метод addParam(paramName, paramValue). Для этого выполните следующие шаги:
- задайте параметр sysparm_name,
- и название метода, взятого из части include вызываемого скрипта.
Вызывайте этот метод необходимое количество раз, чтобы задать другие параметры кода скрипта.
- Вызовите метод getXML(callback), чтобы выполнить описанный выше метод.
Название класса, определенное в записи Script Include, должно совпадать с названием Script Include.
Для того чтобы Script Include можно было вызвать через клиентские скрипты, активируйте аттрибут Client Callable.
Больше информации и примеров смотрите в статье Script Includes.
addParam(paramName, paramValue)
Этот метод передает заданные параметры названия и значения функции на серверной стороне, которая связана с текущим объектом SimpleAjax. Метод addParam() можно использовать несколько раз, применяя различные параметры и значения.
На серверной стороне код выполняется только после вызова клиентским скриптом метода getXML().
Название параметра должно начинаться с префикса sysparm_. Не рекомендуется использование заранее созданного названия параметра sysparm_name при передаче параметров значений.
Параметры:
Название | Тип | Обязательный | Дефолтное значение |
---|---|---|---|
paramName | String | Д | Н |
paramValue | String | Д | Н |
Возврат:
Тип | Описание |
---|---|
Void | Этот метод не возвращает значение. |
Пример:
const sAjax = new SimpleAjax('DurationCalculator'); // call script include sAjax.addParam('sysparm_name', 'getDuration'); // call class method sAjax.addParam('sysparm_start', s_form.getValue('start')); // pass parameter sAjax.getXML(callback); function callback(response) { const answer = response.responseXML.documentElement.getAttribute('answer'); console.log(answer); }
getXML(callback)
При вызове этого метода клиентский скрипт отправляет запрос на сервер, где этот метод и параметры, относящиеся к текущему объекту, будут выполняться. Запрос выполняется асинхронно. Результаты выполнения возвращаются при помощи функции, указанной как callback.
Возврат:
Тип | Описание |
---|---|
Void | Этот метод не возвращает значение. |
Пример:
const sAjax = new SimpleAjax('DurationCalculator'); // call script include sAjax.addParam('sysparm_name', 'getDuration'); // call class method sAjax.addParam('sysparm_start', s_form.getValue('start')); // pass parameter sAjax.getXML(callback); function callback(response) { const answer = response.responseXML.documentElement.getAttribute('answer'); console.log(answer); }
runScript(scriptValue, tableName, callback)
Используйте этот метод для запуска скрипта на заданной таблице. Скрипт выполняется с учетом ограничений ACL.
Функция callback получает элемент ответа на запрос.
Параметры:
Название | Тип | Обязательный | Дефолтное значение |
---|---|---|---|
scriptValue | String | Д | Н |
tableName | String | Н | Н |
callback | Function | Н | Н |
Возврат:
Тип | Описание |
---|---|
Void | Этот метод не возвращает значение. |
Пример:
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 не распространяются на скрипт. При попытке запуска скрипта пользователем, который не является администратором, метод возвращает пустой результат. Таким образом, перед использованием результат скрипта убедитесь в том, что response.data.result
имеет значение.
Функция callback получает элемент ответа на запрос.
Параметры:
Название | Тип | Обязательный | Дефолтное значение |
---|---|---|---|
scriptValue | String | Д | Н |
tableName | String | Н | Н |
callback | Function | Н | Н |
Возврат:
Тип | Описание |
---|---|
Void | Этот метод не возвращает значение. |
Пример:
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); } )
- No labels