Recursos python para uso de comandos SAP Hana Client sobre Windows

Hace poco debí realizar unas tareas administrativas para dejar tareas programadas de SAP Hana Client sobre Windows. Inicialmente la idea era dejar algunos archivos scripts batch, pero python maneja un mayor número de herramientas que pueden ser útiles a la hora de desarrollar tareas como el manejo de archivos, procesos, directorios del sistema, comandos propios del sistema. En este caso, se necesitaba casi todo lo mencionado, incluyendo enviar un correo electrónico junto con un archivo adjunto.

Pero el ejemplo de esta publicación estará enfocado en la creación de un script para leer una sentencia sql sobre una base de datos de SAP Hana y dejará un archivo de texto plano con la salida de la información consultada.

El archivo sql con la sentencia lo llamé sentencia.sql, y quedó de la siguiente manera:

SELECT T0."DocEntry",T0."DocNum" FROM DATABASE_NAME.OINV T0 WHERE T0."DocStatus" LIKE 'C';

En donde se realiza una consulta a la base de datos DATABASE_NAME y su tabla OINV, solo a facturas cerradas.

Luego, en el equipo con Windows, instalé python, posteriormente algunas librearías desde repositorios python a través de pip, por ejemplo:

pip install pypiwin32

Una vez con las herramientas instaladas, se realiza el script que se requiere, lo llamé consulta_sap_hana.py, la forma sencilla que usé para realizar la prueba fue la siguiente:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import win32api

HANA_SERVER = 'IP_SERVIDOR'
PORT_SERVER = 'PUERTO_CONEXIÓN'
USER_ADMIN = 'SYSTEM'
PASS_ADMIN = 'PASSWORD'

win32api.WinExec('"C:/Program Files (x86)/SAP/hdbclient/hdbsql.exe" -n '+HANA_SERVER+':'+PORT_SERVER+' -u '+USER_ADMIN+' -p '+PASS_ADMIN+' -c ";" -o "C:/Users/felix/programacion/python/resultado_facturas.txt" -I "C:/Users/felix/programacion/python/sentencia.sql"')

Desde el terminal propio de Windows se puede ejecutar el script simplemente ejecutando con el nombre consulta_sap_hana.py. Esto creará un archivo llamado resultado_facturas.txt dentro de la ruta definidaen la línea del comando en el script.

Advertisements

About felixurbina

Humano con todos los defectos y virtudes que vienen de fábrica.
This entry was posted in Python, SAP, Windows. Bookmark the permalink.

One Response to Recursos python para uso de comandos SAP Hana Client sobre Windows

  1. Siempre me pregunté cuál sería la forma más sencilla de hacer esa extracción de datos. Pensaba que debería hacer algo muy sofisticado con json o algún componente de integración. Gracias por un ejemplo tan claro.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s