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
