SAP SE37 — Function Builder
A function module is a reusable block of ABAP with a defined interface: importing parameters in, exporting parameters out, tables and exceptions. SAP ships thousands of them, and they are the building blocks most custom development is assembled from.
SE37 is where you look at them. The feature that makes it genuinely valuable to non-developers is the test function: press F8 and you get a screen where you can type input values, run the module, and see exactly what comes back.
That turns SE37 into a diagnostic tool. If a process is failing somewhere inside a function module, you can call it in isolation with the same inputs and watch what it returns — no debugger, no program, no transport.
Function modules marked RFC-enabled can additionally be called from outside the system, which is how many interfaces and middleware connections work.
When you would actually use SE37
- Testing what a function module returns for a given set of inputs.
- Reading the interface of a module before someone builds against it.
- Reproducing a failure in isolation from the process around it.
- Checking whether a module is RFC-enabled before an interface design assumes it.
What the screen looks like
| Parameter | Type | Value |
|---|---|---|
| COMPANYCODE_LIST | TABLE | (output) |
| RETURN | STRUCTURE | (output) |
The fields, in plain English
The name. SAP standard modules use area prefixes; BAPI_ modules are documented business interfaces intended for external use; Z or Y modules are custom.
Watch out: Prefer BAPIs when integrating. Ordinary internal function modules can change between releases without notice.
What you pass in. On the test screen these become editable fields.
What comes back. On the test screen they are filled in after execution.
Table parameters passed both ways — most BAPIs return their real payload here rather than in a single export parameter.
The named error conditions the module can raise. Reading these tells you how it fails, which is often more informative than reading how it succeeds.
Shown on the Attributes tab. Only RFC-enabled modules can be called from another system, which decides whether an interface design is viable.
Step by step
- 1Enter the function module name.
- 2Press Display to read the interface — imports, exports, tables, exceptions.
- 3Check the Attributes tab if RFC capability matters.
- 4Press F8 to open the test screen.
- 5Fill in the import parameters and execute.
- 6Read the export parameters, table contents and any exception raised.
- 7Save a test data set if you will repeat the test.
Errors you will hit, and what they mean
Function module does not exist
Why: Typo, or the module belongs to a component not installed in this system.
Fix: Search with a wildcard. Function group naming conventions make related modules easy to find once you have one.
The test runs but changes data
Why: Some function modules commit their work. The test environment is a real execution, not a simulation.
Fix: Never test an unfamiliar module in production. Read what it does first, and test in a sandbox.
Exception raised with no obvious message
Why: Function modules raise named exceptions rather than user-friendly text.
Fix: Look up the exception in the module's own documentation tab — it usually explains the condition precisely.
Common questions
What is the difference between a function module and a BAPI?
A BAPI is a function module with a documented, release-stable interface intended for business use and external calls. All BAPIs are function modules; most function modules are not BAPIs.
Can I test a function module safely?
Only if you know what it does. The test screen genuinely executes it, and some modules commit database changes. Read first, and prefer a sandbox.
How do I find the right function module?
Search by name pattern in SE37, or browse the function group in SE80. Existing code that already does something similar is usually the fastest route.
Transactions that go with SE37
Reading about it only gets you so far
Practise SAP transactions in a safe simulated environment and keep what you learn.
Practise SAP transactions hands-on
Interactive modules, games, and an AI tutor — free to start.
Get started free →