MEDIUM Effort: M — Medium (days) Architecture

How to remediate: Function group global data abuse

Storing session state in function group global variables. Creates thread safety issues in multi-session ABAP cloud.

Is this issue in your codebase?

A1 scans all 30 rules across your custom ABAP — results in minutes.

Scan your codebase free →

What changes in S/4HANA

ABAP Cloud has different session model. Global FM state causes intermittent bugs.

Before and after: ABAP code example

Before (ECC)
* ECC: global data in function group (shared state)
FUNCTION-POOL zfg_order_cache.
DATA: gt_cached_orders TYPE STANDARD TABLE OF ty_order,
      gv_last_bukrs    TYPE bukrs.

FUNCTION z_get_cached_order.
  READ TABLE gt_cached_orders ...
ENDFUNCTION.
After (S/4HANA)
* S/4HANA ABAP Cloud: use instance-based class (no shared state)
CLASS zcl_order_cache DEFINITION PUBLIC CREATE PUBLIC.
  PUBLIC SECTION.
    METHODS get_order
      IMPORTING iv_order TYPE vbeln
      RETURNING VALUE(rs_order) TYPE ty_order.
  PRIVATE SECTION.
    DATA mt_cache TYPE STANDARD TABLE OF ty_order.
ENDCLASS.

Effort estimate and common pitfalls

Effort estimate

M — Medium (days)

Estimate is per affected object. Total effort scales with the number of occurrences in your codebase. Use the A1 scan to get an object-level count before estimating the full project.

Common pitfalls

  • ! Missing related objects that contain the same pattern
  • ! Not testing edge cases after replacing the API
  • ! Skipping regression tests for dependent programs

Related rules to check

Find every instance of this issue in your codebase

The A1 scanner checks all 30 compatibility rules — including Function group global data abuse — across your custom ABAP objects and produces a prioritised remediation backlog.

Scan your codebase for this issue free →

SAP, S/4HANA and ABAP are trademarks of SAP SE. s4ready.ai is an independent solution and is not affiliated with, endorsed by, or sponsored by SAP SE.