ERPClimb logoERPClimb
SAP technical topicObjectBDC: CALL TRANSACTION vs Batch Input Session MethodModuleABAP

BDC: CALL TRANSACTION vs Batch Input Session Method

Batch Data Communication automates classic SAP GUI transactions by feeding screen field values. CALL TRANSACTION processes the BDC data immediately in the current program, while the session method stores transactions in a batch-input session for later execution and monitoring in SM35. BDC is screen-dependent and therefore fragile across UI changes; use released BAPIs/APIs when a stable business interface exists.

Practitioner technical guide to BDC: CALL TRANSACTION vs Batch Input Session Method, with architecture context, a worked example, decision rules, production pitfalls, S/4HANA implications, ownership, and the standard SAP objects used to prove behavior.

Reviewed by an ERPClimb SAP consultant on 20 Sept 2026· 791 words

What it is

BDC works at dynpro level. A BDC data table identifies program, screen, OK codes and screen fields exactly as the transaction expects them. CALL TRANSACTION USING executes that sequence immediately and can return BDCMSGCOLL messages to the caller. The session method builds a batch-input session, traditionally through BDC_OPEN_GROUP/BDC_INSERT/BDC_CLOSE_GROUP, which operators later process in SM35 or schedule for background processing. Because BDC drives the presentation flow rather than a business API, changes in screen sequence, required fields, popups, user defaults or transaction variants can break an interface that once worked.

When to use it

Use CALL TRANSACTION when no suitable released API exists, transaction logic is stable, volume is manageable and the caller needs immediate per-record feedback. Use a session when operational visibility, restartability and manual reprocessing are more important than immediate synchronous response, especially in legacy migration loads. Before choosing either, search for a BAPI, IDoc, OData/SOAP API, migration object or application-specific mass-load tool. BDC should be a fallback for classic GUI transactions, not the first integration pattern.

How it fits the stack

BDC sits above SAP GUI/dynpro logic and below the business transaction, whereas BAPIs and APIs call the application layer directly. SHDB records transactions and helps generate BDC field sequences; SM35 monitors sessions. Authorization checks still run under the executing user. COMMIT behavior is owned by the called transaction. Background execution can differ from foreground because dialogs, screen values and frontend-dependent behavior are unavailable. Fiori apps generally do not provide BDC-compatible dynpro flows.

A worked example

A legacy migration must create an object for which no supported API exists. The team records the transaction with SHDB, builds BDC data, and initially tests CALL TRANSACTION in foreground to understand errors. For the production load they choose session processing so failed records remain visible in SM35 and can be reprocessed after master-data correction. Months later a support package adds a mandatory screen field; the session begins failing, demonstrating why the interface needs regression testing after UI changes.

How to choose

  • First look for a released business API, IDoc or migration object; choose BDC only when no supported semantic interface exists.
  • Choose CALL TRANSACTION for immediate synchronous control and returned message handling.
  • Choose session method when restartability and operator monitoring in SM35 are more important.
  • Record/test the exact transaction variant and screen sequence used in the target release.
  • Design idempotency so rerunning failed records does not create duplicates.

Common pitfalls

  • Hard-coding screen numbers/fields from one release and never regression testing after upgrades.
  • Using BDC for a transaction that already has a stable BAPI/API.
  • Ignoring BDCMSGCOLL and deciding success only from SY-SUBRC.
  • Running frontend-dependent transaction logic in background and assuming it behaves like dialog.
  • Reprocessing a partially successful load without a duplicate-detection strategy.

ECC, S/4HANA and clean core

BDC can still work for classic SAP GUI transactions in S/4HANA on-premise/private cloud, but it is not a clean-core integration pattern and is irrelevant to many Fiori-only/cloud scenarios. S/4HANA migration projects should prefer Migration Cockpit objects, released APIs, IDocs or BAPIs when available. Existing BDCs deserve upgrade testing because simplification items and transaction redesign can change screens even when the business process remains.

Whose problem this is

ABAP/data-migration teams build and test BDC logic. Functional consultants own the transaction flow, mandatory fields and configuration. Operations teams monitor SM35 sessions. Architects should challenge every new BDC requirement and document why no supported business interface is available.

Related SAP objects

Reviewed pages this object connects to in the ERPClimb knowledge graph.

Source: ERPClimb — https://erpclimb.com/sap-technical-topics/bdc-call-transaction-vs-session-methodERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.