Die Eingabequelle wird im Operanden INPUT definiert. Standardmäßig ist die Datensichtstation *TERMINAL eingestellt. Eingabequelle kann aber auch sein:
das Terminal
eine katalogisierte Datei
eine Variable
ein Bibliothekselement
die Systemdatei SYSDTA
Wie die eingelesenen Werte einer Variablen zugewiesen werden, hängt von den Angaben im Operanden VARIABLE-NAME ab (siehe "READ-VARIABLE Variablen Werte zuweisen ").
Terminal
Die Eingaben werden von der Datenstation (= *TERMINAL) gelesen. Jede Eingabe, die mit der
-Taste abgeschlossen wird, gilt dann als ein Variablenwert.Durch den Unteroperanden SECRET-INPUT hat man zudem die Möglichkeit einer geheimen Datenstation-Eingabe über ein geschütztes Feld.
Benutzerdatei / Bibliothekselement
Benutzerdatei und Bibliothekselement unterscheiden sich nur in der Art der Speicherung und daher in der Angabe des Namens. Wenn als Eingabequelle eine Benutzerdatei oder ein Bibliothekselement angegeben ist, wird jeder Datensatz als ein Wert interpretiert, der einer Variablen zugewiesen wird.
Für ISAM-Dateien kann eingestellt werden, ob der ISAM-Schlüssel erhalten bleiben oder bei der Eingabe entfernt werden soll. Standardmäßig wird der ISAM-Schlüssel entfernt und nur der Rest des Datensatzes einer Variablen zugewiesen.
Listenvariable
Wird als Eingabequelle eine Listenvariable angegeben, muss diese Liste mit dem Datentyp *STRING deklariert sein und einen gültigen Inhalt haben. (Die Liste kann auch mit dem Datentyp *ANY deklariert sein, wenn sie nur String-Werte enthält.)
Jedes Element dieser Liste gilt dann als ein Wert, der einer Variablen zugewiesen wird.
Systemdatei SYSDTA
Daten werden von SYSDTA genauso eingelesen wie von einer Datei. Allerdings mit folgender Ausnahme: Wenn das Lesen vor SYSDTA- EOF beendet wird, wird beim nächsten Lesen von SYSDTA auf den nächsten SYSDTA-Satz zugegriffen. Das erlaubt gezieltes Lesen von SYSDTA, z.B. für den Fall: wenn nur eine einfache Variable gelesen werden soll.
Die Eingabe endet mit dem Ende der Systemdatei SYSDTA, d.h. entweder bei Dateiende, wenn SYSDTA einer katalogisierten Datei zugewiesen ist, oder mit dem nächsten Kommando, wenn SYSDTA SYSCMD zugewiesen ist (Default-Voreinstellung von S-Prozeduren).
Einlesen von SYSDTA kann mit HOLD-PROGRAM, oder BEGIN-BLOCK PROGRAM-INPUT = *MIXED-WITH-CMD nicht unterbrochen werden (um in den Kommando-Modus
umzuschalten). Diese Kommandos bzw. Maßnahmen verursachen nur, dass ein Einlesestopp, d.h. SYSDTA-EOF (Dateiende), zum jeweiligen Kommando gemeldet wird. Nur das Kommando SEND-DATA beendet das READ-VARIABLE-Kommando nicht.