<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://docs.altec.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B5_altAwin%3A%D0%A1%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BD%D1%8B%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B_Oktell</id>
	<title>Руководство по настройке altAwin:Серверные методы Oktell - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://docs.altec.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B5_altAwin%3A%D0%A1%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BD%D1%8B%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B_Oktell"/>
	<link rel="alternate" type="text/html" href="http://docs.altec.ru/index.php?title=%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B5_altAwin:%D0%A1%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BD%D1%8B%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B_Oktell&amp;action=history"/>
	<updated>2026-04-25T23:55:39Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>http://docs.altec.ru/index.php?title=%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B5_altAwin:%D0%A1%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BD%D1%8B%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B_Oktell&amp;diff=1676&amp;oldid=prev</id>
		<title>imported&gt;Kirillche: /* top */clean up, replaced: → 

 (5)</title>
		<link rel="alternate" type="text/html" href="http://docs.altec.ru/index.php?title=%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B5_altAwin:%D0%A1%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BD%D1%8B%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B_Oktell&amp;diff=1676&amp;oldid=prev"/>
		<updated>2017-11-24T06:41:37Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;top: &lt;/span&gt;clean up, replaced: →    (5)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Представление «Серверные методы Oktell» служит для объявления и хранения динамических методов, вызываемых сервером телефонного центра Oktell из собственных сценариев.&lt;br /&gt;
&lt;br /&gt;
Динамические методы представляют собой функции, при помощи которых осуществляется взаимодействие Oktell и сервера AltawinServer в процессе выполнения телефонным центром ''сценариев''.&lt;br /&gt;
&lt;br /&gt;
{{Picture|AWOktellView.png|title=Представление &amp;quot;Методы Oktell&amp;quot;|num=4.153|id=1385}}&lt;br /&gt;
&lt;br /&gt;
Настройка серверных методов производится администратором и заключается в их объявлении и реализации, проверке и публикации на сервере AltawinServer, который должен быть заранее установлен и должным образом настроен. (см. [[Руководство пользователя altAwin:Установка AltawinServer]])&lt;br /&gt;
&lt;br /&gt;
Каждый серверный метод представлен отдельным документом, доступ к которым осуществляется через элементы таблицы представления.&lt;br /&gt;
&lt;br /&gt;
Окно документа отдельного метода представлено тремя вкладками: &amp;lt;span class=&amp;quot;Kbrd&amp;quot;&amp;gt;Основные данные&amp;lt;/span&amp;gt;, &amp;lt;span class=&amp;quot;Kbrd&amp;quot;&amp;gt;Параметры&amp;lt;/span&amp;gt;, &amp;lt;span class=&amp;quot;Kbrd&amp;quot;&amp;gt;Скрипт&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Picture|AWOktellMethodMain.png|title=Окно документа метода Oktell (вкладка &amp;lt;span class=&amp;quot;Menu&amp;quot;&amp;gt;Основные данные&amp;lt;/span&amp;gt;)|num=4.154|id=1386}}&lt;br /&gt;
&lt;br /&gt;
На вкладке «Основные данные» содержатся следующие поля, характеризующие метод:&lt;br /&gt;
* '''Идентификатор''' — уникальный идентификатор метода, наименование, по которому телефонным центром будет инициироваться запуск функции в ходе выполнения сценария действий.&lt;br /&gt;
* '''Наименование''' — человекопонятное наименование метода для облегчения работы администратора&lt;br /&gt;
* '''Описание''' — детальное описание выполняемых действий.&lt;br /&gt;
* '''Комментарий'''.&lt;br /&gt;
&lt;br /&gt;
{{Picture|AWOktellMethodParams.png|title=Окно документа метода Oktell (вкладка &amp;lt;span class=&amp;quot;Menu&amp;quot;&amp;gt;Параметры&amp;lt;/span&amp;gt;)|num=4.155|id=1387}}&lt;br /&gt;
&lt;br /&gt;
На вкладке «Параметры» отображается список входных и выходных параметров — здесь перечисляются параметры, передаваемые в функцию при её вызове, а также получаемые на выходе в результате её выполнения. Каждый параметр характеризуется набором свойств:&lt;br /&gt;
* '''Идентификатор''' — имя переменной для использования в коде скрипта&lt;br /&gt;
* '''Наименование''' — человекопонятное название переменной; имя, по которому переменная будет доступна в пределах блока СRM-действия сценария Oktell.&lt;br /&gt;
* '''Описание'''&lt;br /&gt;
* '''Тип параметра''' (''входной'', ''выходной'', ''входной/выходной'')&lt;br /&gt;
* '''Тип данных''' — тип переносимых данных (''sting'', ''int'', ''float'', ''bool'')&lt;br /&gt;
&lt;br /&gt;
{{Picture|AWOktellMethodParamEdit.png|title=Окно отдельного параметра метода Oktell|num=4.156|id=1388}}&lt;br /&gt;
&lt;br /&gt;
На вкладке «Скрипт» записывается собственно код функции, обеспечивающий сущность выполняемых методом действий.&lt;br /&gt;
&lt;br /&gt;
{{Picture|AWOktellMethodScript.png|title=Окно документа метода Oktell (вкладка &amp;lt;span class=&amp;quot;Menu&amp;quot;&amp;gt;Скрипт&amp;lt;/span&amp;gt;)|num=4.157|id=1389}}&lt;br /&gt;
&lt;br /&gt;
В качестве примера рассмотрим серверный метод &amp;lt;span class=&amp;quot;Path&amp;quot;&amp;gt;getCompanyName&amp;lt;/span&amp;gt;, который по номеру телефона возвращает наименование компании.&lt;br /&gt;
&lt;br /&gt;
На закладке «Параметры» создадим 4 параметра со строковым типом данных:&lt;br /&gt;
* &amp;lt;span class=&amp;quot;Path&amp;quot;&amp;gt;personname&amp;lt;/span&amp;gt; — имя персоны, тип параметра: выходной&lt;br /&gt;
* &amp;lt;span class=&amp;quot;Path&amp;quot;&amp;gt;name&amp;lt;/span&amp;gt; — наименование компании, тип параметра: выходной&lt;br /&gt;
* &amp;lt;span class=&amp;quot;Path&amp;quot;&amp;gt;fullnumber&amp;lt;/span&amp;gt; — номер телефона, тип параметра: входной/выходной&lt;br /&gt;
* &amp;lt;span class=&amp;quot;Path&amp;quot;&amp;gt;url&amp;lt;/span&amp;gt; — ссылка на контрагента, тип параметра: выходной&lt;br /&gt;
&lt;br /&gt;
''Входные параметры'' передаются в функцию при её вызове; ''выходные параметры'' определяются в ходе выполнения функции, возвращая в вызывающий блок результат её выполнения. В рассматриваемом случае на вход функции будет подаваться единственный параметр — номер телефона, а на выходе возвращаться четыре.&lt;br /&gt;
&lt;br /&gt;
На вкладке «Скрипт» записывается собственно код функции, в основе которой лежит параметризованный запрос к базе данных, в ходе которого производится поиск записей о компаниях, для которых номер телефона в последних 7 или 10 знаках совпадает с заданным.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
const&lt;br /&gt;
  sqlGetContragent =&lt;br /&gt;
'select first 1'#13 +&lt;br /&gt;
'  ph.phone, c.contragid, c.name, c.customerid, p.persontitle'#13 +&lt;br /&gt;
'from'#13 +&lt;br /&gt;
'  phonenumbers pn'#13 +&lt;br /&gt;
'    join phones ph on ph.phonenumberid = pn.phonenumberid'#13 +&lt;br /&gt;
'      join vtcustomers c on c.contragid = ph.contragid and c.deleted = 0'#13 +&lt;br /&gt;
'      left join persons p on p.personid = ph.personid and p.contragid = c.contragid and p.deleted = 0'#13 +&lt;br /&gt;
'where'#13 +&lt;br /&gt;
'  (pn.fullnumber like :fn10) or (pn.fullnumber like :fn7)';&lt;br /&gt;
var&lt;br /&gt;
  NumLen: Integer;&lt;br /&gt;
  NumberCut10, NumberCut7: string;&lt;br /&gt;
  Session: TAltecSession;&lt;br /&gt;
  Query: TAltecQuery;&lt;br /&gt;
begin&lt;br /&gt;
  name := '';&lt;br /&gt;
  personname := '';&lt;br /&gt;
  url := '';&lt;br /&gt;
  if fullnumber &amp;gt; EmptyStr then&lt;br /&gt;
  begin&lt;br /&gt;
    NumLen := Length(fullnumber);&lt;br /&gt;
    NumberCut10 := Copy(fullnumber, NumLen — 10 + 1, 10);&lt;br /&gt;
    NumberCut7 := Copy(fullnumber, NumLen — 7 + 1, 7);&lt;br /&gt;
&lt;br /&gt;
    Session := TAltecSession.Create(nil);&lt;br /&gt;
    try&lt;br /&gt;
      Session.Start;&lt;br /&gt;
&lt;br /&gt;
      Query := TAltecQuery.Create(Session);&lt;br /&gt;
      Query.Session := Session;&lt;br /&gt;
      Query.SQL.Text := sqlGetContragent;&lt;br /&gt;
      Query.Params.ParamByName('fn10').AsString := '%' + NumberCut10;&lt;br /&gt;
      Query.Params.ParamByName('fn7').AsString := '%' + NumberCut7;&lt;br /&gt;
      Query.Open;&lt;br /&gt;
      if not Query.Eof then&lt;br /&gt;
      begin&lt;br /&gt;
        name := Query.FieldByName('name').AsString;&lt;br /&gt;
        fullnumber := Query.FieldByName('phone').AsString;&lt;br /&gt;
        personname := Query.FieldByName('persontitle').AsString;&lt;br /&gt;
        if not Query.FieldByName('customerid').IsNull then&lt;br /&gt;
          url := 'altawin://documents/IdocCustomer:' + Query.FieldByName('customerid').AsString;&lt;br /&gt;
      end else&lt;br /&gt;
        fullnumber := '';&lt;br /&gt;
    finally&lt;br /&gt;
      Session.Free;&lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Проверить работоспособность метода можно с помощью кнопки «Проверить» ([[Файл:AWRunScript.png]]), расположенной на панели инструментов документа. При нажатии на эту кнопку будет открыто диалоговое окно для ввода значений входящих параметров. После нажатия на кнопку &amp;lt;span class=&amp;quot;Menu&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt; и выполнения скрипта будет отображено окно со значениями выходящих параметров.&lt;br /&gt;
&lt;br /&gt;
После окончания работы над методами изменения необходимо опубликовать на сервере, для этого предназначена кнопка &amp;lt;span class=&amp;quot;Menu&amp;quot;&amp;gt;Опубликовать&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Экспорт и импорт серверных методов Oktell в файл ===&lt;br /&gt;
Для экспорта серверных методов во внешний файл используется команда панели инструментов &amp;lt;span class=&amp;quot;Menu&amp;quot;&amp;gt;Экспорт&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Для импорта серверных методов из внешнего файла используется команда панели инструментов &amp;lt;span class=&amp;quot;Menu&amp;quot;&amp;gt;Импорт&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Помимо собственно записей методов экспортируются (импортируются) также и связанные с ними скрипты и пользовательские диалоги.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Навигация|Файлы|Раздел «Сервис»|Методы Oktell}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>imported&gt;Kirillche</name></author>
	</entry>
</feed>