Hola a todos,
Soy Jana Milivojević y a través de este blog me gustaría mostrarles las posibilidades de las conexiones de SAP Profitability and Performance Management con otras tecnologías. La conexión entre Snowflake y SAP Profitability and Performance Management se puede establecer utilizando la versión en la nube y en las instalaciones. Sin embargo, en el siguiente ejemplo nos centraremos en la implementación en la nube.
He estado trabajando para establecer la conexión entre SAP Profitability and Performance Management Cloud y Snowflake durante los últimos meses. A través de la serie de dos blogs conectados mi colega Novak Cojbasic y me gustaría darle una idea de las posibilidades que brinda la conexión entre SAP Profitability and Performance Management Cloud y los servicios REST API. En este blog, aprenderá más sobre la configuración en el flujo de modelado de SAP Profitability and Performance Management Cloud, mientras que en el segundo blog, cubriremos el script de Python y la codificación necesaria para establecer la conexión.
Snowflake representa un verdadero software como plataforma de servicio que se puede utilizar para almacenamiento de datos, lagos de datos, intercambio seguro de datos y más. Por lo tanto, la integración entre Snowflake y SAP Profitability and Performance Management Cloud permitiría a los usuarios cargar fácilmente datos desde Snowflake, realizar varios cálculos complejos dentro de SAP Profitability and Performance Management Cloud y luego enviar los datos nuevamente al almacén de datos de Snowflake.
Hay dos enfoques posibles que se pueden utilizar en la implementación de conexiones en el lado de SAP Profitability and Performance Management Cloud. Estos dos enfoques diferentes se crearon para cubrir diferentes casos de uso.
El primer enfoque consta de dos tablas modelo y un adaptador de funciones remotas de Python:
Por otro lado, el segundo enfoque tiene la función de escritor y una tabla de modelo adicional:
El primer enfoque debe usarse cuando no hay problema con el formato de los datos que vienen para Snowflake. Lo que significa que los datos pueden ser la entrada de SAP Profitability and Performance Management Cloud Model Tables sin necesidad de cambiar, estructurar o modificar más los datos. Por ejemplo, esto significaría que las columnas numéricas contienen solo valores numéricos en el formato adecuado que reconoce SAP Profitability and Performance Management Cloud. Esto también se aplica a la fecha y los valores categóricos.
Con este enfoque, no obtendremos un error al intentar almacenar los datos importados de Snowflake en SAP Profitability and Performance Management Cloud.
En primer lugar, este enfoque requiere una tabla modelo que se usa como entrada para la función RFA de Python:
Esta tabla de modelo se utiliza para proporcionar parámetros necesarios para establecer una conexión desde Python RFA. Pero también se utiliza para definir la asignación entre los datos de origen y la tabla de modelo de nube de SAP Profitability and Performance Management de salida. Tener esta tabla de modelado de entrada en la configuración también hace que todo el proceso sea más fácil de usar, ya que el usuario final no tiene que ingresar el script de Python dentro de la función RFA de Python para cambiar los parámetros o la asignación. Simplemente se puede cambiar dentro de esta tabla modelo cuando sea necesario.
Así es como se ve una tabla de modelo poblada que se usa como entrada para Python RFA:
Podemos notar que hay dos subconjuntos diferentes de datos. Uno se relaciona con los parámetros que se necesitan para establecer la conexión, mientras que el otro se usa para asignar los campos a SAP Profitability and Performance Management Cloud:
También podemos ver que se utilizan cuatro columnas diferentes. La primera columna llamada ‘Parámetro o columna (PARCOLTYPE) está allí para que podamos definir para cada fila si contiene información sobre el parámetro o si se usa para el mapeo como se ve en la imagen de arriba.
La segunda columna llamada ‘Nombre de parámetro/campo (PARAMCOL)’ se usa para que podamos definir el nombre del parámetro o el nombre del campo de SAP Profitability and Performance Management Cloud al que queremos asignar una determinada columna. Esto nos permite acceder fácilmente a los valores que necesitamos en nuestro Python Script.
La tercera columna llamada ‘Orden (ORD)’ nos permite asignar una determinada columna de los datos de Snowflake a un campo de SAP Profitability and Performance Management Cloud (definido en la columna anterior). Por ejemplo, esto significaría que queremos asignar la primera columna de nuestra tabla Snowflake al campo ‘ZPOPER’ en SAP Profitability and Performance Management Cloud. Además, la fila número 8 indica que queremos asignar la segunda columna de la tabla Snowflake al campo ‘RBUKRS’. Este mapeo debe especificarse para cada columna.
En cuanto al primer subconjunto de datos, que se refiere a los parámetros, el orden no es importante. Estamos configurando el valor del pedido en ‘000’:
La cuarta columna se llama ‘Valor de parámetro o tipo de campo (VALTYPE)’ y aquí estamos definiendo el valor para cada parámetro. Por otro lado, cuando se trata de mapear los campos, aquí estamos especificando si cierta columna contiene texto o valores numéricos. Esta información nos ayudará más tarde a mapear los valores correctamente.
Este enfoque también requiere una función RFA de Python:
La entrada de la función RFA de Python es la tabla de modelo de entrada explicada anteriormente. También necesitamos configurar los campos de selección para que coincidan con los campos de nuestra tabla de entrada. En las reglas de Python, usamos un script de Python para conectarnos a la API de Snowflake y obtener la tabla que necesitamos. Esta parte se explicará en el segundo blog de esta serie.
Finalmente, para completar la configuración de nuestro primer enfoque, también necesitamos una tabla de modelo de salida:
En esta tabla definiremos todos los campos utilizados durante el proceso de mapeo. Esta tabla será el resultado de nuestra función Python RFA y, por lo tanto, contendrá los datos que obtuvimos de Snowflake.
El segundo enfoque debe usarse cuando los datos que queremos cargar en SAP Profitability and Performance Management Cloud no tienen un formato coherente o tienen un formato que no es adecuado con los estándares de SAP Profitability and Performance Management. Aquí es cuando la función Writer interviene y nos ayuda a resolver el problema.
En el siguiente gráfico podemos ver cómo gestionamos los datos con formato no soportado. Si los valores numéricos contienen caracteres que no son numéricos, como ‘$’. En primer lugar, los guardamos en los campos Genéricos, cambiamos el formato a través de la función Escritor y luego guardamos los valores de datos actualizados en los campos de Figura clave correctos.
Este problema ocurre a menudo cuando queremos almacenar valores no numéricos en campos de Cifra clave. Esto provocará un error en SAP Profitability and Performance Management Cloud. Por lo tanto, para superar esto, en este enfoque estamos utilizando una tabla modelo adicional que consta de ‘campos genéricos’.
Este enfoque también requiere una tabla de modelo de entrada.
Sin embargo, esta tabla de modelo de entrada contiene solo información sobre parámetros, en comparación con la tabla de modelo de entrada del primer enfoque.
Esta tabla modelo y la información que contiene sobre los parámetros necesarios para la conexión se utilizan como entrada para la función RFA de Python.
Como el formato de los datos no es adecuado para los estándares de SAP Profitability and Performance Management, necesitamos crear una tabla modelo que se usará como salida para Python RFA y puede tomar cualquier formato de datos.
Es por eso que en esta Tabla Modelo estamos usando lo que llamamos ‘Campos genéricos’. Los campos genéricos son campos de entorno de tipo CHAR, configurados con longitudes de datos muy largas. Así, en estos campos podemos almacenar todo tipo de datos (números, fechas, etc.). ya que SAP Profitability and Performance Management Cloud los tratará como texto sin formato. El número de campos genéricos que creamos debe ser igual o mayor que el número de columnas en la tabla de origen de Snowflake. Además, la longitud de cada campo debe ser lo suficientemente grande para almacenar cada registro de los datos de origen.
Una vez que tengamos una tabla de modelo de salida con campos genéricos, podemos crear el escritor que nos ayudará a convertir los datos al formato deseado. En Writer también estamos asignando los campos genéricos a los campos reales que queremos usar. Y finalmente, tenemos la Tabla Modelo que contiene el resultado. Esta tabla modelo contiene datos bien formateados que se pueden utilizar en otros cálculos de SAP Profitability and Performance Management Cloud.
Ambos enfoques están diseñados de manera que les permite ser utilizados en varios casos sin mucho esfuerzo. Por lo tanto, si desea obtener los datos de varias tablas de Snowflake, simplemente puede copiar el conjunto de funciones y luego cambiar los datos dentro de la tabla del modelo de entrada, así como los campos utilizados en las funciones. De esta manera, no necesita cambiar nada en el código y puede adaptar fácilmente la solución a sus necesidades.
Además, dado que existen numerosas soluciones de API disponibles en el mercado, este enfoque se puede utilizar para conectar SAP Profitability and Performance Management Cloud con otros servicios de API.
Además de usar Snowflake para obtener datos, también podemos ingresar datos en Snowflake. Después de realizar algunos cálculos en SAP Profitability and Performance Management Cloud, podemos configurar la función de resultado como una entrada para otro RFA de Python. Usando el código de Python podemos establecer la conexión con Snowflake y enviarlo. Estén atentos y lean más sobre esto en el segundo blog de la serie.
Gracias por tomarse el tiempo de leer este blog. Espero que le haya ayudado a comprender mejor las formas en que SAP Profitability and Performance Management Cloud se puede conectar al servicio REST API para establecer el flujo de datos. Para obtener más información sobre la forma en que funciona la configuración y la codificación de Python, lea la próxima segunda entrega de la serie de blogs que publicará mi colega. Novak Cojbasic.
Siéntase libre de compartir sus comentarios o pensamientos en la sección de comentarios. Siga el página de tema y alimentación del blog para encontrar más información y blogs sobre SAP Profitability and Performance Management. Si tienes alguna pregunta no dudes en publicarla en el Sección de preguntas de la comunidad de SAP.
Sígueme para más contenido similar.
¡Hasta la proxima vez!
Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010
Paseo de la Reforma 26
Colonia Juárez, Cuauhtémoc
Ciudad de México 06600
Real Cariari
Autopista General Cañas,
San José, SJ 40104
Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073