Ampliación de la actualización de datos maestros mediante scripting

Objective

After completing this lesson, you will be able to amplíe la actualización de datos maestros mediante scripting.

Actualización de datos maestros

Uso de la funcionalidad integrada para añadir miembros a una dimensión

Puede añadir fácilmente miembros a dimensiones utilizando la funcionalidad integrada en las historias de planificación de SAP Analytics Cloud. Sin embargo, al crear nuevos datos maestros y añadir las propiedades necesarias, algunos planificadores no están seguros de qué valores de atributo utilizar. Como resultado, tienen que pasar tiempo buscando en otra documentación para encontrar el nombre exacto de la propiedad.

Es difícil mantener la consistencia de los datos, por ejemplo, en un escenario en el que hay varios planificadores que pronostican ventas de productos nuevos con varias propiedades.

Añadir datos maestros a una historia utilizando una nueva fila en la tabla.

Este tema se trata en la lección Añadir nuevos miembros de dimensión a partir de tablas de datos en el curso Realización de la planificación manual con SAP Analytics Cloud.

Escenario empresarial: Ampliar actualización de datos maestros con scripting

Vea este vídeo para obtener más información sobre los requisitos del equipo para ampliar una historia con scripting para una actualización de datos maestros más fácil y consistente.

¿No?

Los próximos 24 meses estarán muy ocupados para el equipo. Con muchos productos nuevos que se lanzan, deben crear datos maestros para cada producto nuevo cuando planifican. Lleva mucho tiempo y los resultados pueden ser bastante inconsistentes.

Trabaja con su colega Laura para comprender completamente los requisitos empresariales para la creación de datos maestros para productos nuevos. Le sugerimos que cree un diálogo emergente personalizado en el que los ID se generen por el sistema y una serie de cuadros de texto, desplegables y botones de selección soliciten a los usuarios las propiedades necesarias.

Diálogo emergente personalizado creado con scripting.

Configuración de historia

Antes de añadir sus scripts para ampliar la historia, cree el botón BTN_Add y la ventana emergente POPUP_Add. Añada y configure los widgets necesarios para cumplir con los requisitos empresariales, tomando nota de todos los nombres de ID para su script.

Opciones de ventana emergente

Tiene previsto utilizar botones personalizados en el diálogo emergente. Al crear la ventana emergente, se añaden cuatro botones:

  1. Guardar y cerrar: guarda el nuevo miembro y cierra la ventana emergente.
  2. Guardar y nuevo: guarda el nuevo miembro, pero mantiene la ventana emergente abierta.
  3. Cancelar: Cierra la ventana emergente sin guardar.
  4. Borrar todos los atributos: permite al planificador borrar los valores existentes después de seleccionar Guardar y nuevo.
Elemento emergente con configuración que se muestra en el panel Generador.

Descripción

El widget de campo de entrada INF_Article_Desc está configurado para que los planificadores puedan introducir texto libre en el campo.

Widget de texto de descripción con opción que se muestra en el panel Generador.

Marca

El widget desplegable DD_Article_Brand está configurado para que los planificadores puedan seleccionar de una lista de valores válidos. Inicialmente lo fija en No asignado porque añadirá scripting para extraer los valores de la dimensión pública.

Widget desplegable de organización con configuración que se muestra en el panel Generador.

Cuero

El widget de botón de selección RB_Article_Leather está configurado para que los planificadores puedan seleccionar entre dos opciones.

Widget de botón de selección de cuero con configuración que se muestra en el panel Generador.

Momento de la ropa

El widget desplegable DD_Article_Clothingminute está configurado para que los planificadores seleccionen entre las opciones creadas en el panel Generador.

Widget desplegable Método de ropa con configuración que se muestra en el panel del generador.

Modelos de planificación

El modelo PlanningModel contiene la marca y las dimensiones del artículo. Sin embargo, podría tener un escenario, por ejemplo, en el que la marca se lea de un modelo y artículos creados en otro.

Los nuevos artículos que se crean con el botón Crear artículo se añaden al modelo de planificación, que en el escenario es Product_Sales_MD.

Modelos de planificación.

Código utilizado en este escenario

Ahora que la historia está configurada, es el momento de añadir el código.

Actualizar listas desplegables en la inicialización de página

Cuando un planificador abre la historia, las listas desplegables de las ventanas emergentes deben actualizarse con los datos dimensionales más recientes. Una vez finalizado, se visualiza un mensaje listo.

Para ello, se añade el siguiente script al evento Page_1 - onInitialization:

Code Snippet
12345678
var brand = PlanningModel.getMembers("P00D_A_BRAND"); for (var counter = 0; counter < brand.length; ++counter){ if (brand[counter].description !== ""){ DD_Article_Brand.addItem(brand[counter].id, brand[counter].id+ " - "+ brand[counter].description); } } Application.showMessage(ApplicationMessageType.Success,"Story has loaded, you can create new Articles");
Página 1 y código utilizado

Abrir ventana emergente personalizada

Cuando se selecciona el botón Crear artículo en la historia, se abre una ventana emergente personalizada. Se solicita al planificador que seleccione propiedades para el nuevo artículo.

Para ello, añada el siguiente script al evento BTN_Add - onClick:

Code Snippet
12
POPUP_Add.open(); TXT_ID_Field.applyText(Utils.getID());
Button_Add y código utilizado

Crear artículo

En POPUP_Add, se añade el siguiente script al evento POPUP_Add - onButtonClick:

Code Snippet
12345678910111213141516171819202122232425262728293031323334353637
if (buttonId === "clear_all"){ INF_Article_Desc.setValue(""); DD_Article_Brand.setSelectedKey("#"); RB_Article_Leather.setSelectedKey("No"); DD_Article_Clothingmoment.setSelectedKey("#"); } else{ if (buttonId === "button_cncl") { this.close(); } else { SV_Materialmember = ({ id: TXT_ID_Field.getPlainText(), description: INF_Article_Desc.getValue(), properties: { Brand: DD_Article_Brand.getSelectedKey(), Clothing_Moment:DD_Article_Clothingmoment.getSelectedKey(), Leather:RB_Article_Leather.getSelectedKey() } }); var result = PlanningModel.createMembers("Article",SV_Materialmember); if(result) { Application.refreshData([TBL_1.getDataSource(),]); Application.showMessage(ApplicationMessageType.Success,"Article Successfully Created"); if (buttonId === "button_okClose") { this.close(); } if (buttonId === "button_okNew") { TXT_ID_Field.applyText(Utils.getID()); } } } }
Script utilizado para POPUP_Add.

Generar ID de artículo

Un script lee los ID de los artículos existentes.

Añada el siguiente código al objeto de script Utils - getID:

Code Snippet
1
return "Art_"+PlanningModel.getMembers("Article").length.toString();
GetID y código utilizados

Variable de script

Se hace referencia a la variable de script SV_Materialmember en el script POPUP_Add anterior y se utiliza para leer artículos existentes.

Configuración de variable de script SV_Materialmember.

Ampliar actualización de datos maestros mediante scripting

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

  • Añada el script a la página que se ejecutará en la inicialización.
  • Añada un script al botón Crear artículo para visualizar el diálogo emergente personalizado.
  • Añada el script al widget emergente para crear automáticamente el ID.
  • Cree un artículo utilizando la ventana emergente en la historia.

Ver el artículo añadido en el modelo

Una vez creado el nuevo artículo, puede verlo en el modelo.

Artículo recién creado visualizado en la dimensión Artículo del modelo de planificación P00M_ProductSalesMD.