Il file di macro si compone di due parti:
La parte di dichiarazione può anche contenere istruzioni e blocchi di strutture di linguaggio, come ad esempio istruzioni EXEC, blocchi IF, istruzioni INCLUDE e blocchi MESSAGE. Per ulteriori informazioni sulla struttura del linguaggio, consultare il relativo capitolo nel manuale Riferimenti di Net.Data.
Suggerimento per l'autorizzazione: Assicurarsi che il server Web abbia diritto di accesso ai file cui fanno riferimento le istruzioni EXEC e INCLUDE. Consultare Garanzia dei diritti di accesso a oggetti a cui Net.Data ha accesso per ulteriori informazioni.
In questa sezione, una semplice macro Net.Data illustra gli elementi del linguaggio macro. Questa macro di esempio presenta un modulo che richiede che le informazioni vengano trasferite ad un programma REXX. La macro passa tali informazioni ad un programma REXX esterno denominato OMPSAMP.MBR, che ripete i dati immessi dal'utente. I risultati vengono successivamente visualizzati in una seconda pagina HTML.
Esaminare prima l'intera macro e poi ogni blocco in dettaglio:
%{ ********************** blocco DEFINE ************************%}
%DEFINE {
page_title="Net.Data Macro Template"
%}
%{ ********************** Blocco definizione FUNCTION ************************%}
%FUNCTION(DTW_REXX) rexx1 (IN input) returns(result)
{ %EXEC{ompsamp.mbr %}
%}
%FUNCTION(DTW_REXX) today () RETURNS(result)
{
result = date()
%}
%{ ********************** Blocco HTML: immissione ************************%}
%HTML(INPUT) {
<html>
<head>
<title>$(page_title)</title>
</head><body>
<h1>Input Form</h1>
Today is @today()
<FORM METHOD="post" ACTION="output">
Immettere alcuni dati per trasferirsi a un programma REXX:
<INPUT NAME="input_data" TYPE="text" SIZE="30">
<p>
<INPUT TYPE="submit" VALUE="Enter">
</form>
< hr>
<p>[<a href="/">Home page</a>]
</body></html>
%}
%{ ********************** Blocco HTML: emissione ************************%}
%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>
%}
La macro di esempio consiste di quattro blocchi principali: i blocchi DEFINE, FUNCTION e i due blocchi HTML. E' anche possibile avere più blocchi DEFINE, FUNCTION e HTML in una macro di Net.Data.
I due blocchi HTML contengono tag di presentazione del tipo HTML, che facilitano la scrittura delle macro Web. Se si ha esperienza di HTML, la creazione di una macro comprende semplicemente l'aggiunta di istruzioni macro da elaborare in modo dinamico sul server e l'invio di istruzioni SQL al database.
Sebbene la macro appare simile ad un documento HTML, il server Web vi accede tramite Net.Data utilizzando CGI. Net.Data richiede due parametri: il nome della macro da elaborare e il blocco HTML di quella macro da visualizzare.
Quando viene richiamato il file di macro, Net.Data lo elabora dall'inizio. Le sezioni che seguono esaminano ciò che succede mentre Net.Data elabora il file.