Eine S-Prozedur besteht gemäß dem strukturierten Prozedurformat aus einem Prozedurkopf und einem Prozedurrumpf. In beiden Teilen können logisch zusammengehörige Blöcke definiert werden. Dieses Prinzip führt nicht nur zu sehr übersichtlichen Prozeduren, sondern beinhaltet auch zweckmäßige Funktionalität.
Der Prozedurkopf beginnt immer mit dem Kommando /SET-PROCEDURE-OPTIONS, mit dem die Prozedureigenschaften festgelegt werden. Danach folgt, falls erforderlich, die Deklaration der Prozedurparameter.
Im Prozedurrumpf stehen die Kommandos, Anweisungen und Programmdaten. Logisch zusammengehörige Kommandos bilden einen Kommandoblock, der wiederum aus dem Teil mit Kommandos, Anweisungen, Daten und aus einem Fehlerbehandlungsteil besteht. Der Kommandoblock wird durch ein /BEGIN-BLOCK und ein /END-BLOCK eingeschlossen. Für diesen Block können bestimmte Eigenschaften, z.B. unterschiedliche Behandlung von Kommandos und Daten, vereinbart werden. Im Fehlerfall wird automatisch der zugeordnete IF-BLOCK-ERROR-Block abgearbeitet. Die Prozedur sollte mit dem Kommando /EXIT-PROC abgeschlossen werden.