Uso de opções de script global em um script para aprimorar uma história

Objective

After completing this lesson, you will be able to aprimore uma história usando opções de script global.

Variáveis globais de script e parâmetros de URL

Variáveis de script globais

Em lições anteriores, trabalhamos com variáveis de script locais. Eles foram definidos com a função var dentro de um único bloco de script. O valor só era acessível dentro desse bloco específico e não podia ser acessado de fora.

Variáveis de script globais são definidas como "objeto independente no nível da história". Isso significa que eles podem ser acessados a partir de todos os blocos de script dentro da história.

No exemplo abaixo, você pode ver uma guia Estrutura da história do SAP Analytics Cloud e um painel Variável de script. Você pode:

  1. Criar uma variável de script na guia Estrutura de uma história
  2. Nomear a variável de script
  3. Selecione o tipo de dados da variável de script
  4. Ative a variável de script a ser usada como parâmetro de URL. Para variáveis de tipo de matriz e variáveis de tipo não primitivo (tipos diferentes de string, boolean, integer e number), a função de parâmetro de URL não se aplica e a opção está desativada por padrão.
Etapas 1-4 para usar variáveis de script globais, como descrito nas etapas acima da imagem.

Usando variáveis de script globais, você pode transferir um parâmetro do URL para a história. Por exemplo, você pode:

  • Transferir um valor usado como filtro para uma dimensão
  • Transferir um valor que é utilizado para definir um layout específico

Para transferir uma variável de script global como parâmetro de URL, você deve prefixar o nome da variável com p_ no URL usando o seguinte formato: <yourAppURL>&p_<VariableName>=<VariableValue>.

Por exemplo, <yourAppURL>&p_viewMode=condensed. Este cenário é usado em um exercício, portanto, você verá as etapas para criá-lo posteriormente nesta lição.

Ao usar variáveis de script expostas como um parâmetro 'URL', elas são definidas no carregamento inicial da história.

Com a opção Ativar URL dinâmico, o valor do URL também pode ser atualizado durante o uso da história. Por exemplo, quando um usuário abre uma história com o parâmetro de URL p_Entity=Alemanha e, no modo de visualização, um filtro é modificado para França. O parâmetro de URL é então atualizado para p_Entity=France sem a necessidade de reiniciar a história completamente. Em seguida, o usuário também pode marcar esse URL e compartilhá-lo com outras pessoas com a certeza de que o mesmo filtro será aplicado.

Nota

Desempenho: sempre que possível, use variáveis de script locais em variáveis globais de script.

Vinculação de propriedade

Nas lições anteriores, você analisou a definição manual de itens para o widget usando entrada direta e dinamicamente usando scripting. Nesta lição, veremos como definir os itens dinamicamente para o widget usando a vinculação de propriedades.

A função de ligação de propriedades oferece ao designer de história a opção de vincular os valores a um dos seguintes objetos:

  • Variáveis de script
  • Variáveis de modelo
  • Filtros e variáveis de bloco

A vinculação de valor do widget é uma forma fácil de criar valores dinâmicos para propriedades, por exemplo, itens de um widget de Caixa de listagem.

No exemplo abaixo, você pode ver uma caixa de listagem que mostra os valores de filtro definidos da tabela. A entrada selecionada é regravada em uma variável de script global.

Vinculação de valor do widget do SAP Analytics Cloud. Valor de Tipo de fonte de dados do painel Gerador e onde ele é exibido em uma tabela (parte superior). Variáveis de script no painel Gerador e onde visualizá-las na Estrutura da história (parte inferior).

O valor de um widget simples pode ser vinculado a uma das seguintes opções:

  • Variável de script do tipo Primitive-type
  • Propriedade do aplicativo
  • Filtro de bloco e variável
  • Variável de modelo

Nota

Os tipos suportados variam com cada widget.

Tipos de vinculação suportados por widget

A vinculação de valor está disponível para vários widgets diferentes. A lista a seguir fornece uma visão geral dos widgets e dos tipos de ligação suportados:

  1. Caixa de listagem, drop-down, grupo de campos de seleçãoe grupo de botões de rádio
    • Valores vinculáveis: ID, texto de exibição
    • Vinculações suportadas: Variável de script, Filtro e variável de widget e Variável de modelo
  2. Campo de entrada, área de texto
    • Valores vinculáveis: IDText
    • Vinculações suportadas: Variável de script, Filtro e variável de widget, Variável de modelo e Propriedade de história (incluindo usuário/hora/data atual, data da última modificação, data/hora da última modificação, último modificador, criador)
  3. Controle deslizante
    • Valores vinculáveis: valor atual
    • Vinculações suportadas: Variável de script, Filtro e variável de widget, Variável de modelo
  4. Controle deslizante de intervalo
    • Valores vinculáveis: valor inicial e valor final
    • Vinculações suportadas: Variável de script, Filtro e variável de widget, Variável de modelo
  5. Imagem
    • Valores vinculáveis: URL da imagem
    • Ligações suportadas: variável de script

Você também pode usar a opção do recurso Reescrever no tempo de execução. Com isso, você pode atribuir automaticamente o valor que um usuário selecionado a uma variável de script global pode ser usada em outros scripts ou widgets.

Objetos e funções de script globais

O objeto de script global atua como um container ou biblioteca. É uma parte não visível de uma história.

Objetos de script globais (superior, laranja) e Funções de script globais (inferior, azul).

Você pode chamar uma função de script com a seguinte sintaxe: <ScriptObjectName>.<ScriptFunctionName>();

Como designer de história, você pode usar uma função para encapsular determinada lógica de script que pode ser usada em outras funções de script, como manipuladores de eventos. Isso impede que você duplique o código e facilita a manutenção da história. Depois de adicionar um objeto de script, você pode criar funções nesse objeto. Cada função de script tem:

  1. Um nome configurável (obrigatório)
  2. Tipo de retorno (opcional)
  3. Argumentos (opcional)
Painel Gerador de funções de script com números de 1 a 3 listados de cima para baixo. 1. Um nome configurável (obrigatório), 2 tipos de retorno (opcional) e 3 argumentos (opcional).

Você pode acessar o objeto de script em scripts com o nome dele, como outros widgets. Dentro de uma função do objeto de script, você tem acesso a todos os objetos na história, como widgets, variáveis globais ou popups.

Utilização de argumentos de entrada e tipo de retorno

No lado esquerdo do exemplo abaixo, você pode ver o objeto de script Utils com uma função de script chamada deviceSize.

Ele usa largura e altura como argumentos de entrada e retorna uma matriz contendo o tamanho e a orientação.

À direita, você pode ver o seguinte:

  1. O script dentro da função de script
  2. A utilização da função de script
  3. Os resultados exibidos no console
Painel Função de script à esquerda com Tipos de retorno (azul) e Argumentos (laranja) destacados. Os números de 1 a 3 mostram o script na função de script, 2. Uso da função de script e 3. Resultado no console. Tanto 1 como 2 têm exemplos de Tipos de retorno e Argumentos destacados em azul e laranja.

Trabalhando com funções baseadas em padrão

Com funções baseadas em padrão, você pode criar funções baseadas em string fornecendo apenas exemplos de entrada e saída em vez de escrever código de script. Por exemplo, você pode transformar endereços de e-mail como john.doe@sap.com em nomes como John Doe.

Painel Função baseada em padrão do SAP Analytics Cloud (à direita) com as etapas de 1 a 5 exibidas, descritas após a imagem.

Você pode criar uma função baseada em padrão como filha de um objeto de script a partir da Estrutura de uma história.

  1. Adicionar função baseada em padrão

    Selecione Adicionar função baseada em padrão para adicioná-la à sua história. Depois de fazer isso, você deve criar o modelo por meio de exemplos de treinamento de entrada e saída.

  2. Propriedades

    Adicione um nome para a função no campo Nome. Você também pode adicionar uma Descrição opcional à função.

  3. Criar modelo

    Selecione o ícone Adicionar ao lado de Criar modelo. Em Exemplo de treinamento, defina a entrada e a saída (por exemplo, Entrada: max.mustermann@sap.com se tornará Saída: Max Mustermann).

    Às vezes, um exemplo não é suficiente devido a uma possível ambiguidade. Neste caso, você pode utilizar até três exemplos de treinamento, selecionando o ícone Adicionar para cada exemplo de treinamento.

  4. Criar/reinicializar

    Selecione Criar para que um algoritmo de aprendizagem automática comece a procurar um padrão que corresponda a cada exemplo.

    Assim que você modificar um exemplo de treinamento, o modelo voltará ao padrão, que está apenas retornando a entrada. Se você quiser anular suas modificações em exemplos de treinamento novos ou modificados, selecione Reinicializar. Isso define a função baseada em padrão como o último padrão de trabalho.

  5. Verificar modelo

    Se a criação do modelo tiver sido efetuada com êxito, você pode verificar o modelo inserindo exemplos de entrada que seguem o modelo de exemplo de treinamento. Se você inserir exemplos que não seguem o padrão acima, a função manterá seu padrão padrão, que é apenas a saída da entrada. Para verificar o modelo, selecione o ícone Adicionar ao lado de Verificar modelo. Digite um exemplo de teste no campo Entrada e, no campo Saída, você deve ver a saída correta.

Função cast()

Exemplos de formatos de valor de filtro simples e múltiplos.

Você já aprendeu que definiu o tipo de dados de uma variável de script local atribuindo um valor a ela. Isso funciona bem para todos os tipos de dados simples, como boolean, string ou integer.

No exemplo acima, você pode ver um filtro simples destacado em amarelo. Um script para o filtro simples seria:

Code Snippet
123
var mySimpleFilter = "201901"; Table_1.getDataSource().setDimensionFilter("0CALMONTH", mySimpleFilter);

Mas essa abordagem não funcionará se você tentar atribuir, por exemplo, um formato JSON que deve representar um formato de valor de filtro múltiplo.

Code Snippet
1
var myComplexFilterfilter = {values:["201901", "201902"], exclude: true};

O código acima exibirá uma mensagem de erro, uma vez que o sistema não sabe interpretar o JSON {values:["201901", "201902"], exclude: true}.

Com a ajuda da função cast(type, arg), você pode especificar o tipo de dados e passar um argumento.

Code Snippet
1
var myComplexFilterfilter = cast(Type.MultipleFilterValue, {values:["201901", "201902"], exclude: true});

O código acima indica o mecanismo de script para usar o tipo de dados MultipleFilterValue para o JSON indicado {values:["201901", "201902"], exclude: true}.

Adicionar uma variável de script global como parâmetro de URL

Cenário empresarial: alguns visualizadores de relatório em sua equipe gostam de ver somente os blocos de KPI quando abrem a história e outros gostariam de ver a história completa quando a abrem.

Como não deseja manter duas versões diferentes da história no futuro, você decide introduzir um parâmetro de URL para ativar um comportamento de inicialização condensado ou completo.

Você adiciona e configura uma variável de script global e, em seguida, adiciona o seguinte código à história usando a ação onIntitialization:

Code Snippet
12345
if (viewMode === "condensed") { TS_Content.setVisible(false); } else { TS_Content.setVisible(true); }

Para cada grupo, você fornece um URL diferente:

  • Você adiciona &p_viewMode=condensado ao URL para os visualizadores de relatórios que só desejam ver blocos de KPI na história quando a abrem.
  • Você adiciona &p_viewMode=full ao URL para os visualizadores de relatórios que desejam ver a história detalhada quando a abrem.

Este vídeo curto orientará você sobre a história final e a criação de script necessárias.

Simular as etapas

O exercício prático abaixo simula estar no modo avançado no SAP Analytics Cloud e orienta você na adição do script necessário para criar a história final mostrada no vídeo de demonstração.

Fluxo de tarefa: neste exercício prático, você irá:

  • Adicionar a variável de script global viewMode à história
  • Adicionar scripting à ação onIntitialization
  • Testar os parâmetros de URL para a história

Transferir valores de variável para outras páginas

Cenário empresarial: anteriormente, você ampliava uma história com scripting usando botões para filtrar uma tabela. Sua equipe solicita funcionalidade adicional para poder ver alguns dados mais detalhados em uma página de história separada. A expectativa é que o filtro que é aplicado na primeira página usando os botões também seja aplicado na página detalhada.

Você adiciona uma variável de script global à sua história e, para os eventos onClick dos botões, adiciona year = "2018";, year = "2019"; e year = "all"; respectivamente.

Depois de criar a nova página, você adiciona o seguinte scripting ao evento onActive:

Code Snippet
12345
if (year === "all") { TBL_Details.getDataSource().removeDimensionFilter("0CALYEAR"); } else { TBL_Details.getDataSource().setDimensionFilter("0CALYEAR", year); }

Este vídeo curto orientará você sobre a história final e a criação de script necessárias.

Simular as etapas

O exercício prático abaixo simula estar no modo avançado no SAP Analytics Cloud e orienta você na adição do script necessário para criar a história final mostrada no vídeo de demonstração.

Fluxo de tarefa: neste exercício prático, você irá:

  • Adicione a variável de script global year à sua história
  • Adicionar scripting ao evento onActive
  • Testar a história