Запуск служебных сценариев

Материал из Oktell
Перейти к: навигация, поиск
Наверх Файловые операции на сервере<<< Запуск служебных сценариев >>>Исполнение запросов в БД

Запуск служебных сценариев

  • string ExecSvcScript ( string xml ). Осуществляет запуск служебного сценария на сервере. Передаваемым параметром определяется сам сценарий, входные параметры, и режим запуска. Запуск может производиться в синхронном режиме с ожиданием исполнения и возвратом значения из служебной переменной сценария по завершению исполнения (в этом случае поток приложения блокируется до завершения или до таймаута). Также запуск может производиться в асинхронном режиме (без ожидания выполнения).

Свойство scriptname определяет имя сценария. Полный путь вычисляется на сервере, сценарий загружается из папки общих служебных сценариев. Свойство startparam устанавливает при необходимости начальный стартовый параметр, передаваемый в компонент «Старт» сценария. Свойства startparam2 и startparam3 при необходимости устанавливают дополнительные стартовые параметры, доступные в служебном сценарии в разделе функций аргумента (функции «Входной параметр 2» и «Входной параметр 3»). При необходимости передачи большего числа параметров в служебный сценарий следует организовывать склейку значений для передачи и их разбор средствами компонентов сценария. Свойство startmode определяет режим запуска служебного сценария: «1» - асинхронный (только запуск), «2» - синхронный с ожиданием завершения исполнения и возвратом значения из служебной переменной «Возвращаемое значение». По умолчанию при отсутствии параметра выставляется синхронный режим. В синхронном режиме может быть задано свойство timeout, определяющее в секундах максимальное время ожидания завершения работы сценария, по истечению которого сценарий продолжит выполнение, но управление вернется в плагин без ожидания возвращаемого значения.

Структура запроса:

<?xml version="1.0" encoding="utf-16"?>
 <oktellcommapper version="80710">
 <data name="svcscript" count="1">
   <property_set name="svcscriptstart">
     <property_cdata key="scriptname"><![CDATA[...]]></property_cdata>
        <property_simple key="startparam" value="" />
        <property_simple key="startparam2" value="" />
        <property_simple key="startparam3" value="" />
        <property_simple key="startmode" value="2" />
          <property_simple key="timeout" value="5" />
   </property_set>
 </data>
 </oktellcommapper>


Ответ содержит поля resultcode и resultdescription, содержащие информацию о результате исполнения запроса. В случае успешного разбора входного параметра и корректности всех передаваемых параметров считается, что запрос исполнен успешно.

Дополнительно возвращаются также несколько служебных значений. Поле started - «1» в случае успешного запуска сценария на сервере, «0» в случае, если сценарий не стартовал по какой-либо причине. Поле startresult - «0» в случае успешного исполнения команды, «10» в случае не обнаружения сценария, «11» в случае сбоя при запуске, «12» в случае таймаута ожидания в синхронном режиме. Поле returnvalue присутствует только в синхронном режиме и возвращает значение служебной переменной «Возвращаемое значение».

Cтруктура ответа на примере:

<?xml version="1.0" encoding="utf-16"?>
 <oktellcommapper version="80710">
 <data name="execsvcscript" count="1">
    <property_set name="svcscriptstart">
      <property_simple key="resultcode" value="100" name="Success" />
      <property_simple key="resultdescription" value="Success" />
      <property_simple key="started" value="1" name="success" />
      <property_simple key="startresult" value="0" name="Success" />
      <property_simple key="returnvalue" name="..." />
    </property_set>
 </data>
 </oktellcommapper>
Наверх Файловые операции на сервере<<< Запуск служебных сценариев >>>Исполнение запросов в БД