Uso de opciones de scripting globales en un script para ampliar una historia

Objective

After completing this lesson, you will be able to ampliar una historia con opciones de script globales.

Variables de script globales y parámetros de URL

Variables de script globales

En lecciones anteriores, trabajamos con variables de script locales. Se definieron con la función var dentro de un único bloque de script. El valor solo era accesible dentro de ese bloque específico y no se podía acceder a él desde el exterior.

Las variables de script globales se definen como "objeto permanente propio a nivel de historia". Esto significa que se puede acceder a ellos desde todos los bloques de script dentro de la historia.

En el siguiente ejemplo, puede ver una pestaña Estructura de la historia de SAP Analytics Cloud y el panel Variable de script. Puede:

  1. Crear una nueva variable de script en la pestaña Esquema de una historia
  2. Nombrar la variable de script
  3. Seleccione el tipo de datos de la variable de script
  4. Active la variable de script que se va a utilizar como parámetro de URL. Para las variables de tipo matriz y las variables de tipo no primitivo (tipos distintos de string, boolean, integer y number), la función de parámetro de URL no se aplica y la opción está desactivada de forma predeterminada.
Pasos 1-4 para utilizar variables de script globales como se describe en los pasos anteriores a la imagen.

Con las variables de script globales, puede pasar un parámetro del URL a la historia. Por ejemplo, podría:

  • Pasar un valor que se utiliza como filtro para una dimensión
  • Pasar un valor que se utiliza para definir una disposición específica

Si desea pasar una variable de script global como parámetro de URL, debe anteponer el nombre de la variable con p_ en el URL con el siguiente formato: <yourAppURL>&p_<VariableName>=<VariableValue>.

Por ejemplo, <yourAppURL>&p_viewMode=condensed. Este escenario se utiliza en un ejercicio, por lo que verá los pasos para crearlo más adelante en esta lección.

Al utilizar variables de script expuestas como parámetro "URL", se establecen en la carga inicial de la historia.

Con la opción Activar URL dinámico, el valor de URL también se puede actualizar durante el uso de la historia. Por ejemplo, cuando un usuario abre una historia con el parámetro de URL p_Entity=Alemania y en el modo de visualización cambia un filtro a Francia. El parámetro de URL se actualiza a p_Entity=France sin necesidad de volver a iniciar la historia por completo. A continuación, el usuario también puede marcar este URL y compartirlo con otros con la certeza de que se aplicará el mismo filtro.

Nota

Rendimiento: Siempre que sea posible, utilice variables de script locales en lugar de variables de script globales.

Vinculación de propiedad

En lecciones anteriores, se examinó la definición de elementos para el widget manualmente mediante entrada directa y dinámicamente mediante scripting. En esta lección, veremos la definición dinámica de los elementos para el widget mediante la vinculación de propiedades.

La función de vinculación de propiedades ofrece al diseñador de historias la opción de vincular los valores a uno de los siguientes objetos:

  • Variables de script
  • Variables de modelo
  • Filtros y variables de mosaico

La vinculación de valores de widget es una forma fácil de crear valores dinámicos para propiedades, por ejemplo, elementos de un widget Cuadro de lista.

En el siguiente ejemplo, puede ver una lista desplegable que muestra los valores de filtro definidos de la tabla. La entrada seleccionada se vuelve a escribir en una variable de script global.

Vinculación de valor de widget de SAP Analytics Cloud. Valor del panel Generador Tipo de fuente de datos y dónde se muestra en una tabla (parte superior). Variables de script en el panel Generador y dónde verlas en la historia Estructura (parte inferior).

El valor de un widget simple se puede vincular a uno de los siguientes:

  • Variable de script de tipo primario
  • Propiedad de aplicación
  • Filtro y variable de mosaico
  • Variable de modelo

Nota

Los tipos admitidos varían con cada widget.

Tipos de vinculación admitidos por widget

La vinculación de valores está disponible para varios widgets diferentes. La siguiente lista le ofrece un resumen de los widgets y los tipos de vinculación admitidos:

  1. Cuadro de lista, desplegable, grupo de casillas de seleccióny grupo de botones de selección
    • Valores vinculables: ID, texto de visualización
    • Vinculaciones admitidas: variable de script, filtro de widget y variable y variable de modelo
  2. Campo de entrada, área de texto
    • Valores vinculables: IDText
    • Vinculaciones admitidas: variable de script, filtro y variable de widget, variable de modelo y propiedad de historia (incluido el usuario/hora/fecha actual, la fecha de la última modificación, la fecha/hora de la última modificación, el último modificador y el creador)
  3. Botón deslizante
    • Valores vinculables: valor actual
    • Vinculaciones admitidas: variable de script, filtro y variable de widget, variable de modelo
  4. Regulador de área
    • Valores vinculables: valor inicial y valor final
    • Vinculaciones admitidas: variable de script, filtro y variable de widget, variable de modelo
  5. Imagen
    • Valores vinculables: URL de imagen
    • Vinculaciones admitidas: variable de script

También puede utilizar la opción de la función Reescribir en tiempo de ejecución. Con esto, puede asignar automáticamente el valor seleccionado por un usuario a una variable de script global que puede utilizarse en otros scripts o widgets.

Objetos y funciones de script globales

El objeto de script global actúa como contenedor o biblioteca. Es una parte no visible de una historia.

Objetos de script globales (superior, naranja) y Funciones de script globales (inferior, azul).

Puede invocar una función de script con la siguiente sintaxis: <ScriptObjectName>.<ScriptFunctionName>();

Como diseñador de historias, puede utilizar una función para encapsular determinada lógica de script que se puede utilizar en otras funciones de script, como programas de control de eventos. Esto le impide duplicar código y facilita la actualización de historias. Una vez que haya añadido un objeto de script, puede crear funciones en este objeto. Cada función de script tiene:

  1. Un nombre configurable (obligatorio)
  2. Tipo de devolución (opcional)
  3. Argumentos (opcional)
Panel Generador de funciones de script con números del 1 al 3 enumerados de arriba abajo. 1. Un Nombre configurable (obligatorio), 2 Tipo de devolución (opcional) y 3 Argumentos (opcional).

Puede acceder al objeto de script en scripts con su nombre como otros widgets. Dentro de una función del objeto de script, tiene acceso a todos los objetos de la historia, como widgets, variables globales o ventanas emergentes.

Uso de argumentos de entrada y tipo de devolución

En la parte izquierda del siguiente ejemplo, puede ver el objeto de script Utils con una función de script llamada deviceSize.

Utiliza el ancho y el alto como argumentos de entrada y devuelve una matriz que contiene el tamaño y la orientación.

A la derecha puede ver lo siguiente:

  1. El script dentro de la función de script
  2. El uso de la función de script
  3. Los resultados tal como se muestran en la consola
Panel Función de script a la izquierda con Tipos de retorno (azul) y Argumentos (naranja) resaltados. Los números del 1 al 3 muestran el script dentro de la función de script, 2. Uso de la función de script y 3. Resultado en la Consola. Tanto 1 como 2 tienen ejemplos de tipos de retorno y argumentos resaltados en azul y naranja.

Trabajar con funciones basadas en patrones

Con las funciones basadas en patrones, puede crear funciones basadas en cadenas proporcionando solo ejemplos de entrada y salida en lugar de escribir código de script. Por ejemplo, puede transformar direcciones de correo electrónico como john.doe@sap.com en nombres como John Doe.

Panel Función basada en patrón de SAP Analytics Cloud (derecha) con los pasos del 1 al 5, que se describen después de la imagen.

Puede crear una función basada en patrón como inferior de un objeto de script desde el esquema de una historia.

  1. Añadir función basada en patrón

    Seleccione Añadir función basada en patrón para añadirla a su historia. Una vez hecho esto, debe crear el patrón mediante ejemplos de formación de entrada y salida.

  2. Propiedades

    Añada un nombre para la función en el campo Nombre. También puede añadir una Descripción opcional a la función.

  3. Crear patrón

    Seleccione el icono Añadir junto a Crear patrón. En Ejemplo de formación, defina la entrada y la salida (por ejemplo, Entrada: max.mustermann@sap.com se convertirá en Salida: Max Mustermann).

    A veces, un ejemplo no es suficiente debido a la posible ambigüedad. En este caso, puede utilizar hasta tres ejemplos de formación seleccionando el icono Añadir para cada ejemplo de formación.

  4. Crear/Restablecer

    Seleccione Crear para que un algoritmo de aprendizaje automático empiece a buscar un patrón que coincida con cada ejemplo.

    En cuanto modifica un ejemplo de entrenamiento, el patrón vuelve a su valor predeterminado, que solo devuelve la entrada. Si desea deshacer las modificaciones en ejemplos de formación nuevos o modificados, seleccione Restablecer. Esto establece la función basada en patrón en el último patrón de trabajo.

  5. Verificar patrón

    Si la creación del patrón se ha realizado correctamente, puede verificar el patrón introduciendo ejemplos de entrada que sigan el patrón de ejemplo de entrenamiento. Si introduce ejemplos que no siguen el patrón anterior, la función mantendrá su patrón predeterminado, que es solo la salida de la entrada. Para verificar el patrón, seleccione el icono Añadir junto a Verificar patrón. Escriba un ejemplo de prueba en el campo Entrada y en el campo Salida, debería ver la salida correcta.

Función cast()

Ejemplos de formatos de valor de filtro simples y múltiples.

Ya ha aprendido que define el tipo de datos de una variable de script local asignándole un valor. Funciona bien para todos los tipos de datos simples como boolean, string o integer.

En el ejemplo anterior, puede ver un filtro simple resaltado en amarillo. Un script para el filtro simple sería:

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

Pero ese enfoque no funcionará si intenta asignar, por ejemplo, un formato JSON que debería representar un formato de valor de filtro múltiple.

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

El código anterior mostrará un mensaje de error, ya que el sistema no sabe cómo interpretar el {values:["201901", "201902"], exclude: true} JSON.

Con la ayuda de la función cast(type, arg) puede especificar el tipo de datos y pasar un argumento.

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

El código anterior indica el motor de script para utilizar el tipo de datos MultipleFilterValue para el {values:["201901", "201902"], exclude: true} JSON indicado.

Añadir una variable de script global como parámetro de URL

Escenario empresarial: a algunos visores de informes de su equipo les gusta ver solo los mosaicos de KPI cuando abren la historia y a otros les gustaría ver la historia completa cuando la abren.

Como no desea actualizar dos versiones diferentes de la historia en el futuro, decide introducir un parámetro de URL para poder activar un comportamiento de inicio condensado o completo.

Añada y configure una variable de script global y, a continuación, añada el siguiente código a la historia mediante la acción onIntitialization:

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

Para cada grupo, proporcione una URL diferente:

  • Añada &p_viewMode=condensed a la URL para los visores de informes que solo desean ver mosaicos de KPI en la historia cuando lo abren.
  • Añada &p_viewMode=full a la URL para los visores de informes que deseen ver la historia detallada cuando la abran.

Este breve vídeo le guiará a través de la historia final y el scripting necesario.

Simular los pasos

El siguiente ejercicio de práctica simula estar en modo avanzado en SAP Analytics Cloud y le guía a través de la adición del scripting necesario para crear la historia final que se muestra en el vídeo de demostración.

Flujo de tareas: en este ejercicio práctico, podrá:

  • Añada la variable de script global viewMode a la historia
  • Añadir scripting a la acción onIntitialization
  • Probar los parámetros de URL para la historia

Pasar valores de variable a otras páginas

Escenario empresarial: Anteriormente, ha ampliado una historia con scripting utilizando botones para filtrar una tabla. Su equipo solicita una funcionalidad adicional para poder ver algunos datos más detallados en una página de historia separada. La expectativa es que el filtro que se aplica en la primera página utilizando los botones también se aplique en la página de detalles.

Añada una variable de script global a su historia y, a continuación, para los eventos onClick para los botones, añada year = "2018";, year = "2019"; y year = "all"; respectivamente.

Una vez creada la nueva página, añada el siguiente scripting al evento onActive:

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

Este breve vídeo le guiará a través de la historia final y el scripting necesario.

Simular los pasos

El siguiente ejercicio de práctica simula estar en modo avanzado en SAP Analytics Cloud y le guía a través de la adición del scripting necesario para crear la historia final que se muestra en el vídeo de demostración.

Flujo de tareas: en este ejercicio práctico, podrá:

  • Añada la variable de script global año a su historia
  • Añadir scripting al evento onActive
  • Probar la historia