PERFORM [subroutine | index]
  [ (programm) | 
    IN PROGRAM program  | 
    OF { subroutine_n } | 
    ON COMMIT  ]
  [TABLES   { itab_n } ]
  [USING    { parameter_n } ]
  [CHANGING { parameter_n } ]
  [IF FOUND].
Das angegebene, mit FORM definierte Unterprogramm wird aufgerufen. Mittels der Zusätze TABLES, USING und CHANGING werden interne Tabellen oder Feldparameter als aktuelle Parameter übergeben.
Mittels der Zusätze (programm) oder IN PROGRAM werden Unterprogramme aus anderen Programmen aufgerufen. Die Übergabe des Programm- und Unterprogrammnamens kann im Falle von IN PROGRAM auch dynamisch erfolgen. Eventuelle Laufzeitfehler, die entstehen würden, wenn das aufgerufene externe Unterprogramm nicht verfügbar ist, werden mit IF FOUND unterbunden. Mit OF kann das aufzurufende Unterprogramm über einen Index angesprochen werden. Die in Frage kommenden Unterprogrammnamen folgen nach OF, nach PERFORM steht kein Name, sondern ein Datenfeld, das einen gültigen Index enthalten muß.
Mittels des Zusatzes ON COMMIT erfolgt die Ausführung des Unterprogramms erst bei einem COMMIT WORK. Eine Parameterübergabe ist in diesem Fall nicht möglich, die Daten müssen in programminternen Feldern oder im globalen Memory bis zum Verbuchungszeitpunkt aufbewahrt werden.