Skip to main content

Automate SAP with python!

Project description

Github - https://github.com/kamildemocko/PySapScript

SAP scripting for use in Python.
Can perform different actions in SAP GUI client on Windows.

Documentation

https://kamildemocko.github.io/PySapScript/pysapscript.html

Installation

pip install pysapscript

Usage

Create pysapscript object

import pysapscript

sapscript = pysapscript.Sapscript()

parameter default_window_title: = "SAP Easy Access"

Launch Sap

sapscript.launch_sap(
    sid="SQ4",
    client="012",
    user="robot_t",
    password=os.getenv("secret_password")
)

additional parameters:

root_sap_dir = Path(r"C:\Program Files (x86)\SAP\FrontEnd\SAPgui")
maximise = True
quit_auto = True

Attach to an already opened window:

from pysapscript.window import Window

window: Window = sapscript.attach_window(0, 0)

positional parameters (0, 0) -> (connection, session)

Quitting SAP:

  • pysapscript will automatically quit if not manually specified in launch_sap parameter
  • manual quitting method: sapscript.quit()

Performing action:

element: use SAP path starting with wnd[0] for element arguments, for example wnd[0]/usr/txtMAX_SEL

  • element paths can be found by recording a sapscript with SAP GUI or by applications like SAP Script Tracker
window = sapscript.attach.window(0, 0)

window.maximize()
window.restore()
window.close()

window.start_transaction(value)
window.navigate(NavigateAction.enter)
window.navigate(NavigateAction.back)

window.write(element, value)
window.press(element)
window.send_v_key(value[, focus_element=True, value=0])
window.select(element)
window.read(element)
window.set_checkbox(value)
window.visualize(element[, seconds=1])

table: ShellTable = window.read_shell_table(element)
html_content = window.read_html_viewer(element)

Table actions

ShellTable uses polars, but can also be return pandas or dictionary

from pysapscript.shell_table import ShellTable

table: ShellTable = window.read_shell_table()

table.rows
table.columns

table.to_dict()
table.to_dicts()
table.to_polars_dataframe()
table.to_pandas_dataframe()

table.cell(row_value, col_value_or_name)
table.get_column_names()

table.load()
table.press_button(value)
table.select_rows([0, 1, 2])
table.change_checkbox(element, value)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pysapscript-3.0.0.tar.gz (20.6 kB view hashes)

Uploaded Source

Built Distribution

pysapscript-3.0.0-py3-none-any.whl (22.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page