tool-bi
Builds an ABAP batch input transaction through chained method calls, one per screen, field and value, then runs it directly or writes it to a batch input session.
The steps of the transaction to be automated are encapsulated in one object, which the README gives as its purpose: the clarity and maintainability of ABAP batch input programs. new_dynpro() opens a screen, program() and dynpro() name it, ok_code() sets the function code, and field( name )->value( value ) converts character strings, dates and numerical values into the BDC_FVAL format automatically, with line( index ) for fields inside table controls or loop structures. Once the screens are defined, insert() adds the transaction to a batch input session the caller has opened with BDC_OPEN_GROUP, or mode( )->run( ) executes it immediately, and mode(), no_bi_mode(), no_bi_end(), set_defsize() and update() set the batch input parameters before either. Messages go through the ABAP-LoggerABAP-LoggerA logging library for ABAP that records messages into the standard Application Log (BC-SRV-BAL) and displays them from there, installed through abapGit on ABAP 702 or higher.independent, abap framework, and it accepts instances of both the modern ZIF_LOGGER and the legacy ZCL_LOGGER. Which transaction to drive and what each field gets is the caller's; for the rest the README points at the demo report that comes with it.
Facts
Where it sits
Who is behind it
In the atlas: maintains 5, contributes to 6@jrgkrausmaintainer
Before choosing this
Conditions
PolicySAP API Policy 4.2026a§ 2.2.2, 3from Driving the SAP GUIAn MCP server drives SAP GUI for an agent, through its Scripting API or the screen.
- § 2.2.2 AI call sequences and data extraction. Outside SAP-endorsed architectures, data services or expressly identified pathways, the policy prohibits specified agentic API use and systematic or large-scale extraction.
- § 3 Monitoring and remedies. SAP states that it may monitor API use and take enforcement actions when use does not comply with the documentation and policy.
Driving the user interface for an agent is still an agent executing a sequence of actions against the system. Check whether section 2.2.2 applies to the design, and that the user interface is not used as a way around the controls section 3 names.
SAP API Policy 4.2026a →What it declares
Every artifact
- Type
- Package
- Origin
- Independently maintained
As a package
- Where it runs
- Inside its host
- Distributed through
- does not say
Connections
Operating the SAP GUI programmatically
Logging library for ABAP over the Application Log
Download
README
quoted from jrgkraus/tool-bi under MIT, readABAP Batch Input Toolbox: Streamlined Processing
Despite the prevalence of newer technologies, batch input processing remains a relevant aspect of ABAP development. This document introduces a utility designed to enhance the clarity and maintainability of ABAP batch input programs.
Conceptual Overview
The core idea is to encapsulate the steps of a transaction we aim to automate within a dedicated object.
For instance, to initiate automation for the 'SO10' transaction, you would instantiate the tool as follows:
ta = new zcl_tool_bi_transaction( 'SO10' ).
ta->new_dynpro(
)->program( 'SAPMSSCE'
)->dynpro( '1100'
)->cursor( 'RSSCE-TDNAME'
)->ok_code( '=CREA'
)->field( 'RSSCE-TDNAME' )->value( |{ textname }|
)->field( 'RSSCE-TDID' )->value( 'ST'
)->field( 'RSSCE-TDSPRAS' )->value( 'EN' ).
ta->new_dynpro(
)->program( 'SAPLSTXX'
)->dynpro( '1100'
)->ok_code( '=TXSV'
)->line( 2 )->field( 'RSTXT-TXLINE' )->value( 'First line'
)->line( 2 )->cursor( 'RSTXT-TXLINE'
)->line( 3 )->field( 'RSTXT-TXPARGRAPH' )->value( '*'
)->line( 3 )->field( 'RSTXT-TXLINE' )->value( 'Second line'
)->line( 4 )->field( 'RSTXT-TXPARGRAPH' )->value( '*'
)->line( 4 )->field( 'RSTXT-TXLINE' )->value( 'third line' ).
- The
program( )anddynpro( )methods specify the program and screen number, respectively. - The
field( <name> )->value( <value> )method is used to set the value of a specific field on the screen. It intelligently handles various data types, including character strings, dates, and numerical values, automatically converting them to the appropriate format. - For fields within table controls or loop structures, use
line( <index> )->field( <name> )->value( <value> ), providing the specific line index. - The
ok_code( )method allows you to set the function code (user command) for the screen.
Once all screen inputs are defined, you can execute the transaction using either a batch input session or by running it directly:
if session is not initial.
call function 'BDC_OPEN_GROUP'
exporting
group = session
importing
qid = session_id.
if ta->insert( logger ) > 0.
logger->popup( ).
else.
call function 'BDC_CLOSE_GROUP'.
endif.
else.
if ta->mode( mode )->run( logger ) > 0.
logger->popup( ).
endif.
endif.
This toolbox provides the flexibility to either generate a batch input session for later processing or to execute the automated transaction immediately.
The tool leverages the ABAP logger framework for comprehensive message logging. It accepts instances of both the modern ZIF_LOGGER and the legacy ZCL_LOGGER.
Prior to execution, you can configure various batch input parameters using the following methods:
Before running, you can set parameters with
mode( )- Sets the batch input processing mode (e.g., 'A' for display all screens, 'N' for no display, 'E' for display errors only)no_bi_mode( ),no_bi_end( )- Control the 'No Batch Input' flagsset_defsize( )- Activates the use of the default window size.update( )- Defines the update mode
For detailed usage examples and further exploration of the available functionalities, please refer to the accompanying demo report.
dependencies
This tool relies on the ABAP logger library for its logging capabilities.
Others providing
Compare all 5 on the Driving the SAP GUI page →- sapgui.mcpsapgui.mcpDrives the SAP desktop GUI and the Web GUI, and is built for the jobs a REST client cannot do — end-to-end testing against the real screen, visual validation, and screenshots for documentation.independent, abapMCP server driving SAP GUI and Web GUI for end-to-end testingfrom ABAP
- kts982/mcp-sap-guikts982/mcp-sap-guiSAP GUI for Windows through the Scripting API, deliberately client-agnostic, with CI, docs, a dependency audit and tagged releases wired up around it.independent, abapMCP server for SAP GUI for Windows via the Scripting APIfrom ABAP
- mcp-sap-guimcp-sap-guiThe earliest of the SAP GUI servers in the atlas. It works the screen by coordinates and hands back a screenshot after each action, with a setup script and a short path from clone to a driven transaction.independent, abapMCP server working SAP GUI by screen coordinatesfrom ABAP
- SAPient MCPSAPient MCPAn MCP server for SAP GUI automation built on RoboSAPiens, the Robot Framework library, rather than on the Scripting API directly, over stdio or SSE depending on the client.independent, abapSAP GUI automation MCP server built on RoboSAPiensfrom ABAP
Details
Sources
Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.
Compatibility and provenance
abaplint
History in the atlas
- First seen.
For your agent
- Ref
artifact:jrgkraus-tool-bi- JSON
- /artifacts/jrgkraus-tool-bi.json
- MCP
- Connecting an agent