Python ha crecido en popularidad y la cantidad de casos de uso ha aumentado rápidamente desde finanzas, big data y aprendizaje automático. Para aquellos de nosotros en SAP, será útil utilizar el poder de procesamiento proporcionado por Python y al mismo tiempo conservar los beneficios y ventajas de trabajar en SAP.
En este blog, veremos cómo usar python y consultar odata de la edición ABAP para desarrolladores usando IntellJ PY Charm y mostrar el poder de python en el análisis de datos usando un ejemplo simple. Hay muchos blogs que describen cómo configurar python y IntelliJ para el desarrollo. Uno de esos blogs es Python con Intellij.
Para consultar odata, debe instalar pyodata desde GitHub. Esto está disponible desde Paquete SAP Pyodata. Instale la biblioteca como se menciona
Se supone que tiene la edición para desarrolladores de SAP ABAP en funcionamiento. Estoy usando la edición Developer 7.52.
Una vez que se complete la configuración, puede crear un nuevo proyecto de Python en Py Charm y agregar un nombre de archivo de Python como appy.py. El siguiente código muestra cómo consultar el servicio odata del sistema ABAP.
# Import the requirements
import pyodata import pandas as pd import requests
# Create a PyOData client instance service_url = "http://vhcalnplci.dummy.nodomain:8000//sap/opu/odata/sap/EPM_REF_APPS_SHOP_SRV" #we are querying Shopping service to analyse the review information
session = requests.Session() session.auth = ('Developer', 'Down1oad') #username and password for ABAP developer edition client = pyodata.Client(service_url, session)
# Get the Products entity set and its entity type entity_sets = client.entity_sets products_entity_set="" scalar_properties = set() for es in client.schema.entity_sets: if es.name == "Reviews": proprties = es.entity_type.proprties() for prop in proprties: if prop.name == 'ProductId' or prop.name == 'Rating' or prop.name == 'HelpfulCount': scalar_properties.add(prop.name) print(scalar_properties) reviews = client.entity_sets.Reviews.get_entities().execute() # Create an empty list to store the dictionaries for each reviews review_list = [] # Loop through each review entity and create a dictionary for review in reviews: review_dict = {} for property_name in scalar_properties: review_dict[property_name] = getattr(review, property_name) review_list.append(review_dict) # Convert the list of dictionaries to a pandas DataFrame df = pd.DataFrame(review_list) df=df.sort_index() df2= df.groupby('ProductId').sum() print(df2)
Cuando ejecuta el programa, obtiene el resultado que se muestra a continuación
El resultado anterior muestra el poder de python para el análisis de datos usando un ejemplo simple. Si tuviéramos que escribir un ABAP para hacer lo mismo, tendríamos que pasar por la salida y sumar las reseñas por producto.
Ayudará si los lectores pueden comentar y proporcionar comentarios y sugerencias para futuros blogs. Si está interesado en la conectividad ABAP, siga la página del tema del entorno de conectividad ABAP (https://community.sap.com/topics/abap-conectividad), publicar y responder preguntas (https://answers.sap.com/tags/266264953119842772207986043063520), y leer otras publicaciones sobre el tema (https://blogs.sap.com/tags/266264953119842772207986043063520/)
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