Call
Der Steuerungsbefehl call ruft eine Subroutine auf, die vorher durch einen sub-Befehl definiert werden muss.
Syntax:
Call name ( [ paramlist ])
Argumente:
Argument | Beschreibung |
---|---|
name | Der Name der Subroutine. |
paramlist | Eine durch Komma getrennte Liste der Parameter, die an die Subroutine übergeben werden. Jeder Eintrag dieser Liste kann ein Feldname, eine Variable oder eine beliebige Formel sein. |
Die Subroutine, die von einem call-Befehl aus aufgerufen wird, muss bereits an einer vorherigen Stelle im Skript durch ein sub definiert sein.
Die Parameter werden dabei in die Subroutine kopiert und, sofern es sich beim Parameter im call-Befehl um eine Variable und nicht um eine Formel handelt, beim Beenden der Subroutine auch wieder zurückkopiert.
Beschränkungen:
-
Da call zu den Steuerungsbefehlen gehört und daher mit einem Semikolon oder einer Zeilenschaltung abschließt, darf sich der Befehl nicht über mehrere Zeilen erstrecken.
-
Wenn Sie eine Unterroutine mit Sub..end sub innerhalb eines Steuerungsbefehls definieren, beispielsweise if..then, können Sie nur die Unterroutine innerhalb des gleichen Steuerungsbefehls aufrufen.
Beispiel:
Dieses Beispiel lädt eine Liste aller Qlik-relevanten Dateien in einem Ordner und seinen Unterordnern. Die Dateiinformationen werden in einer Tabelle gespeichert. Es wird angenommen, dass Sie eine Datenverbindungen mit dem Namen Apps zu diesem Ordner erstellt haben.
Die DoDir-Subroutine wird mit der Referenz auf den Ordner 'lib://Apps' als Parameter aufgerufen. In der Subroutine befindet sich eine Rekursion Call DoDir (Dir). Diese sorgt dafür, dass die Funktion in den Unterordnern rekursiv nach Dateien sucht.