Руководство по настройке altAwin:Серверные методы Oktell

Материал из AltecDocs
Перейти к:навигация, поиск

Представление «Серверные методы Oktell» служит для объявления и хранения динамических методов, вызываемых сервером телефонного центра Oktell из собственных сценариев.

Динамические методы представляют собой функции, при помощи которых осуществляется взаимодействие Oktell и сервера AltawinServer в процессе выполнения телефонным центром сценариев.

Рис. 4.153. Представление "Методы Oktell"


Настройка серверных методов производится администратором и заключается в их объявлении и реализации, проверке и публикации на сервере AltawinServer, который должен быть заранее установлен и должным образом настроен. (см. Руководство пользователя altAwin:Установка AltawinServer)

Каждый серверный метод представлен отдельным документом, доступ к которым осуществляется через элементы таблицы представления.

Окно документа отдельного метода представлено тремя вкладками: Основные данные, Параметры, Скрипт.

Рис. 4.154. Окно документа метода Oktell (вкладка Основные данные)


На вкладке «Основные данные» содержатся следующие поля, характеризующие метод:

  • Идентификатор — уникальный идентификатор метода, наименование, по которому телефонным центром будет инициироваться запуск функции в ходе выполнения сценария действий.
  • Наименование — человекопонятное наименование метода для облегчения работы администратора
  • Описание — детальное описание выполняемых действий.
  • Комментарий.
Рис. 4.155. Окно документа метода Oktell (вкладка Параметры)


На вкладке «Параметры» отображается список входных и выходных параметров — здесь перечисляются параметры, передаваемые в функцию при её вызове, а также получаемые на выходе в результате её выполнения. Каждый параметр характеризуется набором свойств:

  • Идентификатор — имя переменной для использования в коде скрипта
  • Наименование — человекопонятное название переменной; имя, по которому переменная будет доступна в пределах блока СRM-действия сценария Oktell.
  • Описание
  • Тип параметра (входной, выходной, входной/выходной)
  • Тип данных — тип переносимых данных (sting, int, float, bool)
Рис. 4.156. Окно отдельного параметра метода Oktell


На вкладке «Скрипт» записывается собственно код функции, обеспечивающий сущность выполняемых методом действий.

Рис. 4.157. Окно документа метода Oktell (вкладка Скрипт)


В качестве примера рассмотрим серверный метод getCompanyName, который по номеру телефона возвращает наименование компании.

На закладке «Параметры» создадим 4 параметра со строковым типом данных:

  • personname — имя персоны, тип параметра: выходной
  • name — наименование компании, тип параметра: выходной
  • fullnumber — номер телефона, тип параметра: входной/выходной
  • url — ссылка на контрагента, тип параметра: выходной

Входные параметры передаются в функцию при её вызове; выходные параметры определяются в ходе выполнения функции, возвращая в вызывающий блок результат её выполнения. В рассматриваемом случае на вход функции будет подаваться единственный параметр — номер телефона, а на выходе возвращаться четыре.

На вкладке «Скрипт» записывается собственно код функции, в основе которой лежит параметризованный запрос к базе данных, в ходе которого производится поиск записей о компаниях, для которых номер телефона в последних 7 или 10 знаках совпадает с заданным.

const
  sqlGetContragent =
'select first 1'#13 +
'  ph.phone, c.contragid, c.name, c.customerid, p.persontitle'#13 +
'from'#13 +
'  phonenumbers pn'#13 +
'    join phones ph on ph.phonenumberid = pn.phonenumberid'#13 +
'      join vtcustomers c on c.contragid = ph.contragid and c.deleted = 0'#13 +
'      left join persons p on p.personid = ph.personid and p.contragid = c.contragid and p.deleted = 0'#13 +
'where'#13 +
'  (pn.fullnumber like :fn10) or (pn.fullnumber like :fn7)';
var
  NumLen: Integer;
  NumberCut10, NumberCut7: string;
  Session: TAltecSession;
  Query: TAltecQuery;
begin
  name := '';
  personname := '';
  url := '';
  if fullnumber > EmptyStr then
  begin
    NumLen := Length(fullnumber);
    NumberCut10 := Copy(fullnumber, NumLen  10 + 1, 10);
    NumberCut7 := Copy(fullnumber, NumLen  7 + 1, 7);

    Session := TAltecSession.Create(nil);
    try
      Session.Start;

      Query := TAltecQuery.Create(Session);
      Query.Session := Session;
      Query.SQL.Text := sqlGetContragent;
      Query.Params.ParamByName('fn10').AsString := '%' + NumberCut10;
      Query.Params.ParamByName('fn7').AsString := '%' + NumberCut7;
      Query.Open;
      if not Query.Eof then
      begin
        name := Query.FieldByName('name').AsString;
        fullnumber := Query.FieldByName('phone').AsString;
        personname := Query.FieldByName('persontitle').AsString;
        if not Query.FieldByName('customerid').IsNull then
          url := 'altawin://documents/IdocCustomer:' + Query.FieldByName('customerid').AsString;
      end else
        fullnumber := '';
    finally
      Session.Free;
    end;
  end;
end;

Проверить работоспособность метода можно с помощью кнопки «Проверить» (AWRunScript.png), расположенной на панели инструментов документа. При нажатии на эту кнопку будет открыто диалоговое окно для ввода значений входящих параметров. После нажатия на кнопку OK и выполнения скрипта будет отображено окно со значениями выходящих параметров.

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

Экспорт и импорт серверных методов Oktell в файл

Для экспорта серверных методов во внешний файл используется команда панели инструментов Экспорт.

Для импорта серверных методов из внешнего файла используется команда панели инструментов Импорт.

Помимо собственно записей методов экспортируются (импортируются) также и связанные с ними скрипты и пользовательские диалоги.