Die Makrodatei besteht aus zwei Abschnitten:
Der Deklarationsabschnitt kann darüber hinaus noch weitere Sprachkonstrukte und Anweisungen enthalten, wie z. B. EXEC-Anweisungen, IF-Blöcke, INCLUDE-Anweisungen und MESSAGE-Blöcke. Weitere Informationen zu den Sprachkonstrukten finden Sie im Kapitel über die Sprachkonstrukte im Handbuch Net.Data Reference.
Hinweis zu Berechtigungen: Stellen Sie sicher, daß der Web-Server Zugriffsrechte auf Dateien hat, auf die in EXEC- und INCLUDE-Anweisungen verwiesen wird. Weitere Informationen hierzu finden Sie im Abschnitt Angeben von Zugriffsrechten auf Net.Data-Dateien.
Im folgenden Abschnitt werden anhand eines einfachen Net.Data-Makros die Elemente der Makrosprache erläutert. Dieses Beispielmakro zeigt ein Formular, das Informationen anfordert, die an ein REXX-Programm übergeben werden. Das Makro übergibt diese Informationen an ein externes REXX-Programm namens OMPSAMP.CMD, das die vom Benutzer eingegebenen Daten wiederholt. Die Ergebnisse werden anschließend auf einer zweiten HTML-Seite angezeigt.
Sehen Sie sich zunächst das gesamte Makro an. Im folgenden werden dann die einzelnen Blöcke näher erläutert:
%{ ********************** DEFINE block ************************%} %DEFINE { page_title="Net.Data macro Template" %} %{ ********************** FUNCTION Definition block ************************%} %FUNCTION(DTW_REXX) rexx1 (IN input) returns(result) { %EXEC{ompsamp.cmd %} %} %FUNCTION(DTW_REXX) today () RETURNS(result) { result = date() %} %{ ********************** HTML Block: Input ************************%} %HTML(INPUT){ <html> <head> <title>$(page_title)</title> </head><body> <h1>Input Form</h1> Today is @today() <FORM METHOD="post" ACTION="output"> Type some data to pass to a REXX program: <INPUT NAME="input_data" TYPE="text" SIZE="30"> <p> <INPUT TYPE="submit" VALUE="Enter"> </form> <hr> <p>[<a href="/">Home page</a>] </body></html> %} %{ ********************** HTML Block: Output ************************%} %HTML (OUTPUT) { <html> <head> <title>$(page_title)</title> </head><body> <h1>Output Page</h1> <p>@rexx1(input_data) <p><hr> <p>[<a href="/">Home page</a> | <a href="input">Previous page</a>] </body></html> %}
Das Beispielmakro besteht aus vier Hauptblöcken: dem DEFINE-, dem FUNCTION- sowie den beiden HTML-Blöcken. Ein Net.Data-Makro kann auch mehrere DEFINE-, FUNCTION- und HTML-Blöcke enthalten.
Die beiden HTML-Blöcke enthalten gängige HTML-Befehle, die das Schreiben von Web-Makros sehr einfach machen. Wenn Sie mit HTML vertraut sind, besteht die Erstellung eines Makros nur aus dem Hinzufügen von Makroanweisungen, die dynamisch auf dem Server verarbeitet werden, sowie von SQL-Anweisungen, die an die Datenbank gesendet werden.
Obwohl das Makro einem HTML-Dokument ähnelt, greift der Web-Server über Net.Data mit Hilfe von CGI oder einer Web-Server-API darauf zu. Net.Data erfordert zwei Parameter: den Namen des zu verarbeitenden Makros und den anzuzeigenden HTML-Block in diesem Makro.
Wenn die Makrodatei aufgerufen wird, beginnt Net.Data mit der Verarbeitung am Anfang der Datei. In den folgenden Abschnitten wird die Verarbeitung der einzelnen Blöcke durch Net.Data beschrieben.