PackagePackagetypeA library you install and call yourself.See every one →What this type is →independently maintainedindependently maintainedoriginPublished by one person or a small company outside SAP. Says nothing about quality; the readings say that.See every one →

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-Logger 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

Last pushLicenceMIT

Where it sits

Lives in
Provides
Driving the SAP GUIABAPDriving the SAP GUIcapabilityOperating the SAP GUI programmatically to perform tasks or test interactions through the actual screen. [Agent access to your code](capability:agent-code-access) works with development objects instead of the user interface.
Requires
ABAP-LoggerABAP-LoggerartifactLogs the messages a batch input run produces; the README names it under its own dependencies heading, with no condition stated.

Who is behind it

Jörg KrauseJörg KrausePersonMaintains this
In the atlas: maintains 5, contributes to 6
@jrgkraus
maintainer

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

Connections2

README

quoted from jrgkraus/tool-bi under MIT, read
jrgkraus/tool-bi/readme.mdOn GitHub

ABAP 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( ) and dynpro( ) 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 BDC_FVALBDC\_FVAL 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' flags
  • set_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.

MIT, read
Driving the SAP GUI
  1. sapgui.mcpMCP server driving SAP GUI and Web GUI for end-to-end testing
  2. kts982/mcp-sap-guiMCP server for SAP GUI for Windows via the Scripting API
  3. mcp-sap-guiMCP server working SAP GUI by screen coordinates
  4. SAPient MCPSAP GUI automation MCP server built on RoboSAPiens

Details

Sources3
Added by handdiscovered herechecked
github.com/jrgkraus/tool-bitree, pushes, contributors, CIchecked
readme.mdquoted, and what the entry declareschecked

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
discovered viaAdded by hand
first seen in the atlas
ecosystem and domainabap, developer-experience
abaplint
issues under its own abaplint configuration269
lines669
statements325
objects13
files24
analysed, main
abaplint version2.120.84
History in the atlas1
  1. First seen.
For your agent
Ref
artifact:jrgkraus-tool-bi
JSON
/artifacts/jrgkraus-tool-bi.json
MCP
Connecting an agent