Выполнение скриптов с помощью сценариев Scriptlet в Unified Service Desk
Сценарии scriptlet — это фрагменты кода JavaScript, выполняемые при использовании особого синтаксиса в параметрах замены. Иногда созданные системой параметры замены содержат правильные данные, необходимые для этих функций, но данные могут быть в неправильном формате. Например, в интеграции компьютерной телефонии (CTI) телефонные номера обычно поступают от телефонной системы в виде строки цифр вида «4955551212», без какого-либо форматирования. В то же время в Microsoft Dynamics CRM номера телефонов хранятся в виде строки, обычно включающей символы форматирования, такие как дефисы, например (495) 555-12-12. Если производить поиск сущностей CRM с использованием данных, полученных непосредственно от системы телефонии, вряд ли удастся получить хотя бы одно совпадение. Эта проблема решается с помощью сценариев ScriptLet в Unified Service Desk.
Содержание
Как следует использовать сценарии Scriptlet?
Ссылки на глобальные размещенные элементы управления из сценариев scriptlet
Как следует использовать сценарии Scriptlet?
Сценарии Scriptlet определяются в области Сценарии Scriptlet (Параметры > Сценарии Scriptlet) в Microsoft Dynamics CRM. После определения сценария Scriptlet они используется в следующем формате, в качестве параметра замены в запросах или в параметрах вызовов действий.
[[script.<Scriptlet_Name>]]
Когда система обнаруживает такой параметр замены, имя которого начинается с script., она производит поиск сценария с именем, которое следует за этим префиксом, в списке сценариев Scriptlet. Если сценарий Scriptlet с указанным именем будет найден, сначала производится замена параметров в этом сценарии, а затем он выполняется в качестве выражения JavaScript. Значение выражения используется для замены приведенного выше значения замены.
Предупреждение
Если параметры замены в сценарии Scriptlet содержат еще одну замену Scriptlet, она — еще одну и т. д, и в результате создается цикл, то система начнет непрерывно заменять параметры, пока не произойдет переполнение стека. В связи с этим настоятельно рекомендуется никогда не использовать [[script.ReplacementParameters]]
в сценариях ScriptLet.
Ссылки на глобальные размещенные элементы управления из сценариев scriptlet
В ходе выполнения сценарии Scriptlet могут ссылаться на глобальные размещенные элементы управления. Все глобальные (не динамические) размещенные элементы управления добавляются в качестве управляемых скриптами объектов в подсистему сценариев Scriptlet при ее запуске. Поскольку JavaScript не может ссылаться на имена, содержащие пробелы, подсистема сценариев Scriptlet автоматически заменяет пробелы в именах глобальных размещенных элементов управления на символы подчеркивания «_». Благодаря этому можно использовать следующий допустимый код JavaScript:
Connection_Manager.ConfigurationReader.ReadAppSettings(“maxNumberOfSessions”);
У Global Manager имеется особенный вариант использования. На него также можно ссылаться по идентификатору CRMGlobalManager независимо от того, задано ли это имя в конфигурации.
If (CRMGlobalManager.SessionCount == 0) // сеансы клиентов не загружаются. Загружается только глобальный сеанс.
Примечание
Через этот метод доступны только общие функции.
Предположим, что вам требуется отобразить обзорные сведения о сеансе в компоненте «Строки сеанса», но эта информация фактически находится во внешней системе, доступ к которой производится через веб-службы, а не на вашем сервере CRM. Можно создать размещаемый элемент управления, который предоставляет доступ к общей функции, в свою очередь вызывающей внешнюю веб-службу. Затем этот размещенный элемент управления настраивается в качестве глобального размещенного элемента управления и помещается на панель скрытого размещения HiddenPanel. Теперь этой функцией и вызовом веб-службы можно пользоваться из сценария Scriptlet. Затем можно создать следующий сценарий Scriptlet, вызывающий эту вновь созданную функцию.
My_Global_Application.CallExternalWebService(“[[account.accountnumber]$]”);
Этот код передает код организации из организации в вашу функцию в качестве первого параметра. Если сценарий Scriptlet называется Call Web Service (Вызов веб-службы), то можно воспользоваться следующей строкой сеанса для отображения результатов вызова веб-службы.
<Grid Margin="0"
xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
xmlns:CCA="clr-namespace:Dynamics;assembly=Dynamics">
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="auto" />
</Grid.ColumnDefinitions>
<Label Margin="3,0,5,3" Content="Web Service Data" Padding="0" Grid.Row="4" HorizontalAlignment="Right" FontFamily="Tohoma" FontSize="12" FontWeight="Bold" />
<TextBlock Text="[[script.Call Web Service]]" Margin="0" Grid.Column="1" Grid.Row="4" Padding="3,0,0,3" FontFamily="Tohoma" FontSize="12"/>
</Grid>
См. также
Ссылка
Размещенные элементы управления Unified Service Desk — глобальные и для сеанса
Основные понятия:
Unified Service Desk
Send comments about this topic to Microsoft.
© 2015 Microsoft. All rights reserved.