Поделиться через


Выполнение скриптов с помощью сценариев 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.