Руководство по настройке altAwin:Серверные методы Oktell
Представление «Серверные методы Oktell» служит для объявления и хранения динамических методов, вызываемых сервером телефонного центра Oktell из собственных сценариев.
Динамические методы представляют собой функции, при помощи которых осуществляется взаимодействие Oktell и сервера AltawinServer в процессе выполнения телефонным центром сценариев.
Настройка серверных методов производится администратором и заключается в их объявлении и реализации, проверке и публикации на сервере AltawinServer, который должен быть заранее установлен и должным образом настроен. (см. Руководство пользователя altAwin:Установка AltawinServer)
Каждый серверный метод представлен отдельным документом, доступ к которым осуществляется через элементы таблицы представления.
Окно документа отдельного метода представлено тремя вкладками: Основные данные, Параметры, Скрипт.
На вкладке «Основные данные» содержатся следующие поля, характеризующие метод:
- Идентификатор — уникальный идентификатор метода, наименование, по которому телефонным центром будет инициироваться запуск функции в ходе выполнения сценария действий.
- Наименование — человекопонятное наименование метода для облегчения работы администратора
- Описание — детальное описание выполняемых действий.
- Комментарий.
На вкладке «Параметры» отображается список входных и выходных параметров — здесь перечисляются параметры, передаваемые в функцию при её вызове, а также получаемые на выходе в результате её выполнения. Каждый параметр характеризуется набором свойств:
- Идентификатор — имя переменной для использования в коде скрипта
- Наименование — человекопонятное название переменной; имя, по которому переменная будет доступна в пределах блока СRM-действия сценария Oktell.
- Описание
- Тип параметра (входной, выходной, входной/выходной)
- Тип данных — тип переносимых данных (sting, int, float, bool)
На вкладке «Скрипт» записывается собственно код функции, обеспечивающий сущность выполняемых методом действий.
В качестве примера рассмотрим серверный метод 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;
Проверить работоспособность метода можно с помощью кнопки «Проверить» (), расположенной на панели инструментов документа. При нажатии на эту кнопку будет открыто диалоговое окно для ввода значений входящих параметров. После нажатия на кнопку OK и выполнения скрипта будет отображено окно со значениями выходящих параметров.
После окончания работы над методами изменения необходимо опубликовать на сервере, для этого предназначена кнопка Опубликовать.
Экспорт и импорт серверных методов Oktell в файл
Для экспорта серверных методов во внешний файл используется команда панели инструментов Экспорт.
Для импорта серверных методов из внешнего файла используется команда панели инструментов Импорт.
Помимо собственно записей методов экспортируются (импортируются) также и связанные с ними скрипты и пользовательские диалоги.