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

Compare with Current View Page History

« Previous Version 19 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 не распространяются на скрипт. При попытке запуска скрипта пользователем, который не является администратором, метод возвращает пустой результат. Таким образом, перед использованием результата скрипта убедитесь в том, что 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