====== SmartScript ======
Первоисточник [[http://docs.oracle.com/cd/B40099_02/books/SmartScript/booktitle.html|BookShelf]]
Siebel Smart Script позволяет бизнес аналитикам, менеджерам call-центров и разработчикам Siebel создавать скрипты, определяющие бизнес процесс, для интерактивного общения с клиентами.
Siebel Smart Script ведет агента во время каждого взаимодействия с клиентом, помогая предложить товары и услуги, которые могут его заинтересовать, основываясь на профиле клиента, текущих предпочтениях и потребительском поведении.
===== Хранение данных=====
Есть возможность сохранять данные собранные с помощью Smart Script в таблицы БД. Для этого необходимо установить Save Session на скрипте и галочку Save Answer Table для вопросов, ответы на которые необходимо сохранять.
Доступ к сохраненным ответам можно получить:
* **С общей таблицы ответов в базе данных Siebel (БД)**. Для этого не нужно дополнительной настройки. Этот метод доступа используется в основном внешними системами.
* **С помощью бизнес компонента ([[bc:start|БК]])**. Используется для получения сохраненной сессии Smart Script внутри Siebel.
===== Доступ к сохраненным ответам =====
Для извлечения данных с БК используются стандартные методы eScript: **GetBusObject**, **GetBusComp**, **GetFieldValue** и др.
Основные бизнес компоненты и бизнес объекты которые используются для доступа к данным смарт скриптов:
* **Call Scripts** - Бизнес объект, в котором хранятся БК для доступа к данным SmartScript
* **Call Script Runs** – Бизнес компонент, хранит сессии смарт скрипта
* **Call Script Run Answers** - Бизнес компонент, тут хранятся значения ответов, введенные пользователем, при прохождении Smart Script
===== Архитектура =====
Основными атрибутами Siebel Smart Script являются:
* Скрипт
* Страница
* Вопрос
* Ответ
{{training:smartscript:smartscript.png?nolink&400|}}
==== Скрипт ====
Скрипт – корневой контейнер элементов Smart Script, содержит следующие настройки:
* **Type** – тип скрипта, используется для ограничения видимости скрипта в приделах Siebel Application. Например, скрипты, что используются в eService, должны иметь тип Instructions или Troubleshooting.
* **Save Session** – режимы сохранения пользовательских сессий. Примечание: Сохраняются только те ответы на вопросы у которых стоит признак Save Answer Table.\\
* **Jumping Allowed** – Позволяет пользователю выбирать вопросы в любой последовательности и использовать кнопку «Предыдущий»
* **Business Component** – поле должно быть заполнено значением Account, Contact или Opportunity для Смрт Скрипта вызываемого кнопкой «Script» на скриних Account, Contact или Opportunity
* **Organization** – список департаментов, которые имеют доступ к скрипту
* **On Cancel Go to View** – вид на который переходить при нажатии кнопки «Отмена»
* **On Finish Go to View** – вид на который переходить при нажатии кнопки «Завершить»
==== Страница ====
Страницы – это сгруппированные ответы, которые отображаются на одном экране во время выполнения скрипта.
Страница должна содержать ответы, связанные между собой в порядке, который определяет бизнес процесс. Страницы хранятся независимо от скрипта, поэтому одна и та же страница может быть использована в разных скриптах.
==== Вопрос ====
Вопрос – основной элемент в архитектуре SmartScript. Он включает в себя атрибут Ответ и данные по его отображению.
При работе с SmartScript, есть возможность использования ответов для обновления существующих записей или создание новых записей в любом БК.
В настройках вопроса **Save Business Object**, **Save Bus Comp**, **Save Field** указывается в какой БО, БК, поле БК осуществлять сохранение ответа.
Для обновления существующей записи, необходимо задать в настройках вопроса **Спецификация поиска**, согласно которой будет проходить поиск в указанном БК. Используется для активации нужной записи БК. Формат поисковой строки точно тот же, что и в SearchSpec на апплете или БК, например: [Id]=GetProfileAttr("YASSServReqId"), где YASSServReqId – это атрибут, который хранит ИД сервисного обращения. Значение атрибута устанавливается при вызове смарт скрипта следующим кодом на апплете:
if (MethodName=="SmartScriptExec"){
TheApplication().SetProfileAttr("YASSServReqId",this.BusComp().ParentBusComp().GetFieldValue("Id"));
TheApplication().InvokeMethod ("RunSmartScript", "", this.BusComp().GetFieldValue("YA SS Id"), "RUS", "ENU");
return (CancelOperation);
}
Примечание: это и есть ответ на вопрос № 8
Если вопрос сценария связан с полем БК, для которого в интерфейсе Siebel есть окна выбора (Pick-апплет, MVG-апплет), то эти же окна можно использовать в смарт скрипте для заполнения вопроса.
* Если поле связано с Pick-апплетом, то на вопросе смарт скрипта надо вставить название Pick-апплета в поле Апплет выбора
* Если поле связано с MVG-апплетом, то на вопросе смарт скрипта надо вставить название MVG-апплета в поле Апплет для многозначной группы
* Если поле в интерфейсе Siebel использует апплет для ввода детальной информации (например поле с типом Валюта, или апплет добавления Вложений), то в смарт скрипте надо заполнить поле Апплет сведений
{{training:smartscript:smartscript00.png?nolink&400|}}{{training:smartscript:smartscript01.png?nolink&400|}}
* **Save User Parameters** используется для определения полей БК как пользовательских параметров. Активная запись БК сохраняется в пользовательский параметр (Настройка вопроса Спецификация поиска устанавливает запись активной). Например: (Param1, [Action.Id]), (Param2, [Action.Created]).
* **Auto Sub Param** определяет список параметров, которые могут использоваться для автоматической подстановки их значений в текст вопроса. В тексте вопроса, значение, которое находится в скобках ([ ]), интерпретируется как параметр подстановки. Параметром подстановки может выступать пользовательский параметр, поле БК или CTI параметр
* **Answer Control** – тип отображения вариантов ответа
* **Pick Only** – указывает, что пользователь может выбрать ответ только из списка предопределенных ответов привязанных к вопросу
* **Min Length** and **Max Length** – минимальная и максимальная длинна ответа, который может ввести пользователь
* **Must Answer** – показывает, является ли ответ на вопрос обязательным
* **Default Answer** – ответ, отображаемый по умолчанию
* **Answer Type** тип данных ответа на вопрос
* **Save Currency Field** – поле БК, которое содержит значение валюты
* **Save Answer Table** – указывает, что ответ необходимо сохранять в общую таблицу ответов
* **Currency** – код валюты используемый для идентификации вводимого ответа
* **Replication Level** – уровень репликации, используется в Siebel Remote
===== Создание Smart Script =====
[[http://docs.oracle.com/cd/E14004_01/books/SmartScript/SmartScriptWorkQueAnsTrans3.html|BookShelf]]
Для создание Siebel Smart Script необходимо перейти в меню Администрирование => SmartScript => Вопросы.
На List Applet Вопросы создаем новый вопрос.
^Имя^Тип ответа^Управление ответом^Должен ответить^Стандартный ответ^SmartScripts^Сохранить в таблицу ответов^
|DTB_SET_SMS_STATE_Q|String|Dropdown|Answer If Reached| | | |
Статья не закончена