• Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
S4PCADEMY_Logo
Twitter Linkedin Instagram
S4PCADEMY_Logo
Twitter Linkedin Instagram
SAP ABAP

Edición para desarrolladores ABAP y desarrollo de la interfaz Python

By s4pcademy 


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/)




Cinco acciones para una cadena de suministro sostenible
Previo
Resuelva problemas de discrepancia de estado utilizando la nueva funcionalidad de Documentos electrónicos para Chile: actualización de correo entrante
Siguiente

Madrid

Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010

México

Paseo de la Reforma 26
Colonia Juárez,  Cuauhtémoc
Ciudad de México 06600

Costa Rica

Real Cariari
Autopista General Cañas, 
San José, SJ 40104

Perú

Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073

Twitter Linkedin Instagram
Copyright 2022 | All Right Reserved.