Executar scripts usando scriptlets no Unified Service Desk

 

Publicado: novembro de 2016

Aplicável a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2013, Dynamics CRM 2015, Dynamics CRM 2016

Scriptlets são trechos de Javascript executados durante o uso de uma sintaxe especial para o parâmetro de substituição. Algumas vezes, os parâmetros de substituição gerados pelo sistema contêm os dados adequados necessários para essas funções, mas os dados podem não estar no formato desejado. Por exemplo, na integração entre telefonia e computador (CTI), geralmente, os números de telefone chegam do sistema de telefonia como uma cadeia de dígitos como “3035551212", sem nenhuma formatação. Entretanto, Microsoft Dynamics 365 armazena os números de telefone como uma cadeia de caracteres que, geralmente, inclui caracteres de formatação como traços, como em (303) 555-1212. Se você precisasse pesquisar a entidade do Dynamics 365 usando os dados fornecidos diretamente pelo sistema de telefonia, as alterações seriam tão sutis que nunca seria possível encontrar uma correspondência. Isso pode ser resolvido usando os scriptlets em Unified Service Desk.

Neste tópico

Como usar scriplets?

Referenciando controles hospedados globais a partir de scriptlets

Como usar scriplets?

Defina um scriplet na área Scriptlets (Configurações > Scriptlets) no Microsoft Dynamics 365. Após definir um scriptlet, use-o no seguinte formato como um parâmetro de substituição nas consultas ou nos parâmetros para as chamadas de ação.

[[script.<Scriptlet_Name>]]

Quando o sistema encontrar um parâmetro de substituição iniciado por script., ele procurará um script com o nome correspondente ao texto após "script." na lista de scriptlets. Se encontrar um scriptlet com o nome especificado, primeiro ele substituirá os parâmetros desse script e, em seguida, executará o script como uma expressão Javascript. O valor da expressão será usado para substituir o valor da substituição acima.

Aviso

Se os parâmetros de substituição no scriptlet contiverem outra substituição de scriptlet e, assim por diante, até criar um loop, o sistema ficará substituindo parâmetros continuamente até que a pilha estoure. Como resultado, é altamente recomendável nunca usar [[script.ReplacementParameters]] nos scriptlets.

Referenciando controles hospedados globais a partir de scriptlets

Os scriptlets podem referenciar métodos de controle hospedado global durante a execução. Todos os controles hospedados globais (não dinâmicos) são incluídos como objetos de script no mecanismo de scriplet na inicialização. Como o Javascript não pode se referir a nomes que contenham espaços, o mecanismo de scriptlet substitui automaticamente os espaços no nome do controle hospedado global por sublinhados “_”. Portanto, é possível usar o seguinte Javascript válido.

Connection_Manager.ConfigurationReader.ReadAppSettings(“maxNumberOfSessions”);

Existe um cenário de ocorrência especial para o Gerenciador global. Ele também pode ser referenciado por meio de CRMGlobalManager, independentemente de como estiver nomeado na configuração.

Se (CRMGlobalManager.SessionCount == 0) // nenhuma sessão do cliente será carregada. Somente uma sessão global será carregada.

Dica

Somente as funções públicas podem ser acessadas por meio desse método.

Considerar uma situação onde você deseje exibir informações de visão geral da sessão no componente Linhas da sessão, mas que as informações residam, de fato, em um sistema externo acessível por meio de serviços Web em vez de estarem disponíveis no servidor do Dynamics 365. Você poderá criar um controle hospedado que exponha uma função pública que chame o serviço Web externo. Em seguida, poderá configurar esse controle hospedado como um controle hospedado global e colocá-lo no HiddenPanel. Assim, essa função e a chamada de serviço Web poderão ser usadas a partir de um scriptlet. Em seguida, será possível criar o seguinte scriptlet para chamar a nova função.

My_Global_Application.CallExternalWebService(“[[account.accountnumber]$]”);

Esse código transmite o número da conta a partir da conta para a função como o primeiro parâmetro. Se você nomear o scriptlet como Chamar serviço Web, será possível usar a seguinte Linha de sessão para exibir o resultado da chamada de serviço Web.

<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>

Confira Também

Parâmetros de substituição
Controles hospedados globais e Unified Service Desk baseados em sessão

Unified Service Desk 2.0

© 2017 Microsoft. Todos os direitos reservados. Direitos autorais