Dynpro screens — the classic GUI model¶
Level: 301 · deep dive
Status: stub — the model is here; the worked example is not yet.
One line: A dynpro is a screen painted in the Screen Painter and driven by flow logic — PROCESS BEFORE OUTPUT fills it, PROCESS AFTER INPUT reads it — with fields transported between screen and program by name, which is the single fact that explains most "my module does not see the value" questions.
The model in five points¶
- A screen belongs to a program and has a number;
CALL SCREEN 100shows it. - Flow logic is a small language of its own:
PROCESS BEFORE OUTPUTandPROCESS AFTER INPUT, each a list ofMODULEcalls andFIELDstatements, in a separate editor from the ABAP. - Field transport is by name: a screen field
SCARR-CARRIDis copied to and from the program's global variable of the same name — which is what the obsoleteTABLESstatement was for. - PAI transports before it runs modules, in flow-logic order;
FIELD f MODULE mtransportsfjust beforem, and a failed check insidemreopens only the fields named in thatFIELD(orCHAIN … ENDCHAIN). sy-ucomm/ theOK_CODEfield carries the function the user chose; the GUI status (SET PF-STATUS) defines which functions exist.
Compound elements: table controls (a scrollable grid bound to an internal table, walked with LOOP AT … WITH CONTROL in flow logic), tabstrips, subscreens (a screen inside a screen area), and custom containers that host ALV and other GUI controls, which then talk back through events.
Why it is here¶
Not for new development: Fiori, RAP and OData are where a new UI goes. It is here because every classic transaction — and every enhancement to one, and every BDC recording — is a sequence of dynpros, and because debugging one without the transport rules in your head is guesswork.
What this page still needs¶
- [ ] a minimal module pool with one screen, its flow logic shown beside the program
- [ ] the field-transport order worked through with a failing check
- [ ] a table control, and why the flow-logic
LOOPis not an ABAP loop - [ ]
SHDBrecording of a standard transaction, annotated
See also¶
CALL SCREEN,MODULE,PROCESS BEFORE OUTPUT— the statements- Program types — the module pool
- Batch input and BDC — driving screens from code
- Events — GUI controls
- Web Dynpro and legacy UI — what came between this and Fiori