You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 21 Next »

Данный класс позволяет клиентскому скрипту выполнять серверный код, используя Script Includes.

Для того чтобы использовать класс SimpleAjax, выполните следующие шаги:

  1. Вызовите конструктор SimpleAjax, чтобы создать экземпляр SimpleAjax. В качестве аргумента передайте в конструктор название Внешний скрипт, который включает в себя класс с необходимыми методами.
  2. Вызовите метод addParam(paramName, paramValue). В качестве обязательного вызова передайте в него параметры, определяющие требуемый метод. Для этого выполните следующие шаги:

    1. задайте параметр sysparm_name,
    2. и название метода из определённого в вызываемом Внешнем скрипте класса.

    Вызывайте этот метод необходимое количество раз, чтобы передать другие параметры в используемый Внешний скрипт.

  3. Вызовите метод getXML(callback), чтобы выполнить описанный выше метод.

Название класса, определенного в записи Script Include, должно совпадать с названием Script Include.

Для того чтобы Script Include можно было вызывать в клиентских скриптах, активируйте атрибут Доступно для Client API.

Больше информации и примеров смотрите в статье Script Includes.

addParam(paramName, paramValue)


Этот метод передает указанное имя и значение параметра серверной функции, которая связана с текущим объектом SimpleAjax. Метод addParam() можно использовать несколько раз, передавая различные параметры и их значения.

На стороне сервера код выполняется только после вызова клиентским скриптом метода getXML().

Название параметра должно начинаться с префикса sysparm_. Не используйте предопределенное имя параметра sysparm_name для передачи значения параметру функции.


Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
paramNameStringДаНет
paramValueStringДаНет


Возвращаемое значение:

ТипОписание
VoidЭтот метод не возвращает значение.


Пример:

addParam
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)


При вызове этого метода клиентский скрипт отправляет запрос на сервер, где выполняется метод текущего объекта SimpleAjax с переданными в него параметрами. Запрос выполняется асинхронно. Результат выполнения серверного метода будет передан в указанную функцию callback.


Возвращаемое значение:

ТипОписание
VoidЭтот метод не возвращает значение.


Пример:

getXML
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.

Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
scriptValueStringДаНет

tableName

StringНетНет
callbackFunctionНетНет

Возвращаемое значение:

ТипОписание
VoidЭтот метод не возвращает значение.

Пример:

runScript
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 имеет значение.

Результат выполнения скрипта будет передан в указанную функцию callback.

Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
scriptValueStringДаНет

tableName

StringНетНет
callbackFunctionНетНет


Возвращаемое значение:

ТипОписание
VoidЭтот метод не возвращает значение.


Пример:

runScript
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