Skip to main content

sap_functions

Library with utility classes and functions to facilitate the development of SAP automations in python.

This module is built on top of SAP Scripting and aims to making the development of automated workflows easier and quicker.

Implementation example

from sap_functions import SAP

sap = SAP()
sap.select_transaction("COOIS")

This script:

Checks for existant SAP GUI instances. Connects to that instance. Write "COOIS" in the transaction field.

Classes overview

Module src.sap_functions.base_sap_connection

Class BaseSapConnection

Methods:

  • __init__(self, window: int = 0): Initialize self. See help(type(self)) for accurate signature.

Module src.sap_functions.grid

Class Grid

Methods:

  • __init__(self, grid_obj: SAPGridView, session: SAPGuiSession): Initialize self. See help(type(self)) for accurate signature.
  • click_cell(self, index: int, column_id: str) -> None: This function will select and double-click in a SAP Grid cell
  • count_rows(self) -> int: This function will count all the rows in the current Grid
  • get_cell_value(self, index: int, column_id: str) -> str: Get the value of a specific Grid cell
  • get_column_id(self, column_name: str) -> str: This function will return the column id based on its column name
  • get_columns(self, *column_id: str) -> Union: Return each column content
  • get_content(self) -> Dict: Store all the content from a SAP Grid, the data will be stored and returned in a dictionary with 'header' and
  • get_grid_columns(self, *column_id: str) -> Union: Deprecated: use Grid.get_columns instead.
  • get_grid_content(self) -> Dict: Deprecated: use Grid.get_content instead.
  • get_grid_row(self, row: int) -> list: Deprecated: use Grid.get_row instead.
  • get_row(self, row: int) -> list: Get a grid row content
  • open_cell_modal(self, index: int, column_id: str) -> None: This function will select and open a cell modal in a SAP Grid cell
  • press_button(self, field_name: str, skip_error: bool = False) -> None: This function will press any button in the SAP Grid component
  • press_nested_button(self, *nested_fields: str, skip_error: bool = False) -> None: This function needs to receive several strings that have the texts that appear written in the button destination
  • select_all_content(self) -> None: Select all the table, using the SAP native function to select all items
  • select_column(self, column_id: str) -> None: Select a specific column
  • select_layout(self, layout: str) -> None: This function will select the desired Grid Layout when a SAP select Layout Pop up is open

Module src.sap_functions.label

Class Label

Methods:

  • __init__(self, session: SAPGuiSession, window: int = 0): Initialize self. See help(type(self)) for accurate signature.
  • get_all_screen_labels(self) -> list: This function will return each label row in the SAP Screen
  • get_content(self) -> Dict: Store all the content from a SAP Label, the data will be stored and returned in a dictionary with
  • get_label_content(self) -> Dict: Deprecated: use Label.get_content instead.

Module src.sap_functions.node

Class Node

Methods:

  • __init__(self, node_obj: CDispatch): Initialize self. See help(type(self)) for accurate signature.
  • click_selected_node(self): Double-click the Node selected previously
  • expand_selected_node(self): Expand the Node selected previously
  • get_content(self) -> list: Get all Nodes names in a list format
  • get_node_content(self) -> list: Deprecated: use Node.get_content instead.
  • select_node(self, node_text: str, target_index: int = 0, skip_error: bool = False): Select a specific Node based on the text inside of it

Module src.sap_functions.sap

Class SAP

Methods:

  • __init__(self, window: int = 0) -> None: Initialize self. See help(type(self)) for accurate signature.
  • change_active_tab(self, selected_tab: Union, skip_error: bool = False) -> None: This function will try to select the transaction tab using the number "selected_tab"
  • choose_text_combo(self, field_name: str, desired_text: str, target_index: int = 0, selected_tab: Union = 0, skip_error: bool = False) -> None: This function has the ability to choose a specific text that is found within a combo box component
  • clean_all_fields(self, selected_tab: Union = 0, skip_error = False) -> None: Clean all the input fields in the actual screen
  • find_text_field(self, field_name: str, selected_tab: Union = 0) -> bool: Verify if a text exists in the SAP screen
  • flag_field(self, field_name: str, desired_operator: bool, target_index: int = 0, selected_tab: Union = 0, skip_error: bool = False) -> None: This function can flag and unflag checkboxes based on the field_name, it will flag/unflag the checkbox in the
  • flag_field_at_side(self, field_name: str, desired_operator: bool, side_index: int = 0, target_index: int = 0, selected_tab: Union = 0, skip_error: bool = False) -> None: This function can flag and unflag checkboxes based on the field_name, it will flag/unflag the checkbox at the
  • get_footer_message(self) -> str: Get the message text that is in the SAP Footer
  • get_grid(self, target_index: int = 0) -> Grid: Get the SAP Grid object from the current SAP Grid Window
  • get_label(self) -> Label: Get the SAP Label object from the current SAP Label Window
  • get_node(self, target_index: int = 0) -> Node: Get the SAP Node object from the current SAP Node Window
  • get_table(self, target_index: int = 0) -> Table: Get the SAP Table object from the current SAP Table Window
  • get_text_at_side(self, field_name, side_index: int, target_index: int = 0, selected_tab: Union = 0) -> str: This function will return the text next to the text received as a parameter
  • get_tree(self) -> Tree: Get the SAP Tree object from the current SAP Tree Window
  • insert_variant(self, variant_name: str, skip_error: bool = False) -> None: This function will try to press the "Get Variant" button in the transaction, after that it will overwrite the
  • multiple_selection_field(self, field_name: str, target_index: int = 0, selected_tab: Union = 0, skip_error: bool = False) -> None: This function will press the "Multiple Selection" button in the respective field
  • multiple_selection_paste_data(self, data: list, delete_values: bool = False, skip_error: bool = False) -> None: With the Multiple Selection window open, it's possible to execute this function to easily paste all the data
  • navigate_into_menu_header(self, *nested_path: str) -> None: This function needs to receive several strings that have the texts that appear written in the header destination
  • open_focused_field_modal(self): This function will open the modal of a focused field
  • option_field(self, field_name: str, target_index: int = 0, selected_tab: Union = 0, skip_error: bool = False) -> None: This function will select an option field
  • option_field_at_side(self, field_name: str, side_index: int = 0, target_index: int = 0, selected_tab: Union = 0, skip_error: bool = False) -> None: This function will select an option field
  • press_button(self, field_name: str, target_index: int = 0, selected_tab: Union = 0, skip_error: bool = False) -> None: Press any button in the SAP screens, except in shells and tables components
  • run_actual_transaction(self, skip_error: bool = False) -> None: Run the active transaction, this function will try to press Enter, and after that will try to press F8
  • save_file(self, file_name: str, path: str, option: int = 0, type_of_file: str = 'txt', skip_error: bool = False) -> None: This function will easily navigate into SAP menu header to save the current transaction data, commonly used to
  • select_main_screen(self, skip_error: bool = False) -> None: Navigate to the SAP main Screen
  • select_transaction(self, transaction: str) -> None: Navigate to a transaction in SAP GUI
  • set_focus(self, field_name, side_index: int = 0, target_index: int = 0, selected_tab: Union = 0): This function will select/focus in the field with the text received as a parameter
  • write_text_field(self, field_name: str, desired_text: str, target_index: int = 0, selected_tab: Union = 0, skip_error: bool = False) -> None: This function will write the desired text in the respective input at the side of the field name
  • write_text_field_until(self, field_name: str, desired_text: str, target_index: int = 0, selected_tab: Union = 0, skip_error: bool = False) -> None: This function will write the desired text in the "until" field in the respective input at the side of the

Module src.sap_functions.session

Class GuiComponent

Methods:

  • Select(self) -> None:
  • __annotate__(format):
  • __getitem__(self, index: int) -> GuiComponent:
  • __iter__(self) -> Iterator:
  • change(self) -> None:
  • clickCurrentCell(self):
  • containerType(self) -> str:
  • press(self) -> None:
  • sendVKey(self, key: int) -> None:
  • setFocus(self) -> None:
  • visualize(self) -> None:

Class SAPGridView

Methods:

  • __annotate__(format):
  • clearSelection(self) -> None: Calling clearSelection removes all row, column and cell selections
  • clickCurrentCell(self) -> None: This function emulates a mouse click on the current cell
  • contextMenu(self) -> None: Calling contextMenu emulates the context menu request
  • doubleClickCurrentCell(self) -> None: This function emulates a mouse double click on the current cell
  • getCellValue(self, row: int, column: str) -> str: Returns the value of the cell as a string
  • selectAll(self) -> None: This function selects the whole grid content (i.e. all rows and all columns).
  • selectColumn(self, column: str) -> None: This function adds the specified column to the collection of the selected columns
  • selectContextMenuItem(self, item: str) -> None: Select an item from the control’s context menu
  • setCurrentCell(self, row: int, column: str) -> None: If row and column identify a valid cell, this cell becomes the current cell. Otherwise, an exception is raised.

Class SAPGuiFrameWindow

Methods:

  • __annotate__(format):
  • close(self) -> None: The function attempts to close the window. Trying to close the last main window of a session will not succeed immediately; the dialog ‘Do you really want to log off?’ will be displayed first

Class SAPGuiInfo

Methods:

  • __annotate__(format):

Class SAPGuiScrollbar

Methods:

  • __annotate__(format):

Class SAPGuiSession

Methods:

  • CreateSession(self) -> None:
  • EndTransaction(self) -> None:
  • __annotate__(format):
  • findById(self, identifier: str) -> GuiComponent:
  • startTransaction(self, transaction: str) -> None:

Module src.sap_functions.table

Class Table

Methods:

  • __init__(self, table_obj: CDispatch, session: SAPGuiSession, target_index: int, window: int = 0): Initialize self. See help(type(self)) for accurate signature.
  • _return_table(self):
  • click_cell(self, row: int, column: int, skip_error: bool = False) -> None: Focus in a cell and double-click in it, using the relative visible table row. The desired cell needs to be
  • count_visible_rows(self, skip_error: bool = False) -> int: Count all the visible rows from a SAP Table
  • flag_cell(self, row: int, column: int, desired_operator: bool, skip_error: bool = False) -> None: Flags a checkbox in a SAP Table cell, using the relative visible table row. The desired cell needs to be
  • get_cell_value(self, row: int, column: int, skip_error: bool = False) -> str: Return the content of a SAP Table cell, using the relative visible table row. The desired cell needs to be
  • get_columns(self, *column_text: str, skip_error: bool = False) -> Union: Return each column content
  • get_content(self, skip_error: bool = False) -> Dict: Store all the content from a SAP Table, the data will be stored and returned in a dictionary with 'header' and
  • get_table_content(self, skip_error: bool = False) -> Dict: Deprecated: use Table.get_content instead.
  • select_entire_row(self, absolute_row: int, skip_error: bool = False) -> None: Select the entire row from a SAP Table, it uses the absolute table row. The desired cell needs to be
  • unselect_entire_row(self, absolute_row: int, skip_error: bool = False) -> None: Unselect the entire row from a SAP Table, it uses the absolute table row. The desired cell needs to be
  • write_cell_value(self, row: int, column: int, desired_text: str, skip_error: bool = False) -> None: Write any value in a SAP Table cell, using the relative visible table row. The desired cell needs to be

Module src.sap_functions.tree

Class Tree

Methods:

  • __init__(self, tree_obj: CDispatch): Initialize self. See help(type(self)) for accurate signature.
  • get_columns(self, *column_text: str) -> Union: Return each column content
  • get_content(self, skip_error: bool = False) -> Dict: Store all the content from a SAP Tree, the data will be stored and returned in a dictionary with 'header' and
  • get_tree_columns(self, *column_text: str) -> Union: Deprecated: use Tree.get_columns instead.
  • get_tree_content(self, skip_error: bool = False) -> Dict: Deprecated: use Tree.get_content instead.

Module src.sap_functions.utils

Top-level Functions

  • active_window(sap) -> int:
  • count_and_create_sap_screens(connection: CDispatch, window: int):
  • generic_conditionals(sap, index: int, children: CDispatch, objective: str) -> bool:
  • get_sap_connection() -> CDispatch:
  • scroll_through_fields(sap, extension: str, objective: str) -> bool:
  • scroll_through_grid(sap, extension: str) -> Union:
  • scroll_through_node(sap, extension: str) -> Union:
  • scroll_through_table(sap, extension: str) -> Union:
  • scroll_through_tabs_by_id(sap, area: GuiComponent, extension: str, selected_tab: int) -> GuiComponent:
  • scroll_through_tabs_by_name(sap, area: GuiComponent, extension: str, tab_name: str) -> GuiComponent:
  • scroll_through_tree(sap, extension: str) -> Union:

Metadata

Release files for sap-functions 1.3.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sap-functions 1.3.5
File Size Uploaded Provenance
sap_functions-1.3.5.tar.gz 22.2 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for sap-functions 1.3.5
File Interpreter ABI Platform
sap_functions-1.3.5-py3-none-any.whl Python 3 none any Details

Total release size: 44.0 kB

Release files / sap_functions-1.3.5.tar.gz

Download URL sap_functions-1.3.5.tar.gz
Size 22.2 kB
Tags Source
SHA-256 checksum
How to use checksums
66fc04826c807e8a38d4f5f6df374fc7971e8fd05e7a3e40f32f400e0506f346
BLAKE2b-256 checksum
How to use checksums
8975005d2717060c4b55c369641b09431bcd3e88689b4a9c6d3bcb44b686e239
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.

Transparency log

Release files / sap_functions-1.3.5-py3-none-any.whl

Download URL sap_functions-1.3.5-py3-none-any.whl
Size 21.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
761b6f47023264370de9aa23466e2f75a3366323f9290f6185b899837fc32d6e
BLAKE2b-256 checksum
How to use checksums
c3f4fbe1dd7063d6b0ad4bb645c45a44935f8c5dba0d857b8f3093bc7f506074
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.

Transparency log

Security for sap-functions 1.3.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for sap_functions-1.3.5.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page