Net.Data: Guida alla gestione e alla programmazione per OS/400

Specifica dei blocchi macro HTML in una transazione

Per definire quali blocchi HTML fanno parte della transazione utilizzare un identificativo, chiamato gestore transazioni nella richiesta URL che richiama i blocchi HTML. Tre sono i passi della procedura per la definizione e l'uso di un gestore transazioni:

  1. Definire il gestore transazioni nella macro.

  2. Chiamare la funzione integrata DTW_ACCEPT per trasferire il nome gestore a Net.Data e al server Web.

  3. Specificare il gestore nella richiesta URL per richiamare il blocco HTML successivo.

Per definire un gestore transazioni:

  1. Definire una variabile per il gestore transazioni nella sezione DEFINE. Ad esempio:
    %DEFINE handle=""
    

  2. E' anche possibile generare un gestore transazioni univoco specificando la funzione integrata DTW_RTVHANDLE() nella sezione DEFINE.

    Sintassi: @DTW_RTVHANDLE(nome_gestore)

    Esempio:

    @DTW_STATIC()
     
    %DEFINE handle = ""
    @DTW_RTVHANDLE(handle)
     
    

Il gestore transazioni può essere rappresentato da una qualsiasi stringa di caratteri. Tuttavia, la funzione DTW_RTVHANDLE() fornisce una misura di sicurezza generando un gestore transazioni univoco, evitando che altri possano richiamare una macro che verrebbe eseguita nella transazione.

Per specificare un gestore transazioni per Net.Data:

Specificare il valore del gestore transazioni per Net.Data con la funzione integrata DTW_ACCEPT(). Poichè questo gestore è parte delle informazioni contenute nelle intestazioni HTTP inviate al server, la funzione DTW_ACCEPT() deve essere chiamata prima che qualsiasi emissione venga generata dalla macro. In genere, costituisce il primo elemento nel blocco HTML.

Sintassi: @DTW_ACCEPT(nome_gestore, ["timeout"])

In cui timeout è un parametro facoltativo che specifica il numero di secondi che il server Web deve attendere per ottenere una risposta dal browser prima della chiusura della transazione.

E' possibile chiamare DTW_ACCEPT() all'interno di un blocco HTML o all'esterno di ogni blocco HTML. Se la funzione è chiamata all'esterno di ogni blocco HTML, il gestore transazioni e i valori di timeout facoltativi vanno applicati a tutti i blocchi HTML all'interno della macro.

Esempio 1: Specifica un gestore transazioni per le successive richieste URL da eseguire in questa transazione

@DTW_STATIC()
 
%DEFINE handle = ""
@DTW_RTVHANDLE(handle)
 
 
%HTML(Block1){
@DTW_ACCEPT(handle)
 ...
%}

Importante: Quando viene chiamato DTW_ACCEPT() come primo elemento nel blocco HTML, assicurarsi che non esistano spazi tra la riga in cui l'istruzione %HTML viene specificata e la riga della chiamata DTW_ACCEPT(). Net.Data considera gli spazi come testo da inviare al browser ed emette un messaggio di errore che indica che la chiamata DTW_ACCEPT() non è stata rilevata prima di inviare i dati al browser.

Esempio 2: Specifica un gestore transazioni che si applica a tutti i blocchi HTML della macro

@DTW_STATIC()
 
%DEFINE handle = ""
@DTW_RTVHANDLE(handle)
 
@DTW_ACCEPT(handle)
 
%HTML(Block1){
 ...
%}
 
%HTML(Block2){
 ...
%}

Per specificare il gestore quando viene richiamato un blocco HTML eseguito nella transazione:

Una volta generato un gestore transazioni e chiamata la funzione DTW_ACCEPT(), solo gli URL che presentano quel gestore transazioni possono essere eseguiti nella transazione. Il gestore transazioni deve seguire immediatamente il nome programma CGI nell'URL.
Nota:Ciascuno dei seguenti URL deve essere specificato come una stringa continua nel codice; vengono qui divisi per facilitarne la lettura.

Parametri:

server
Specifica il nome del server Web. Se il server è locale, è possibile ometterlo ed utilizzare il relativo URL.

percorso_di_richiamo_Net.Data
Il percorso e il nome file di file eseguibili. Ad esempio, /cgi-bin/db2www/.

gestore_transazione
Specifica gli URL che fanno parte di una transazione avviata da una macro di Net.Data. Questo identificativo si ottiene richiamando la funzione integrata DTW_RTVHANDLE e deve seguire il percorso_di_richiamo_Net.Data.

nomefile
Il nome del file della macro di Net.Data. Net.Data ricerca questo file e verifica la corrispondenza del nome file con le istruzioni di percorso definite nella variabile del percorso di inizializzazione MACRO_PATH. Consultare MACRO_PATH per ulteriori informazioni.

blocco
Specifica il nome del blocco HTML nel file di macro di riferimento di Net.Data.

metodo
Specifica il metodo HTML utilizzato con il form. Si consiglia METHOD=POST.

?nome=val&...
Specifica uno o più parametri facoltativi trasferiti a Net.Data.

Generalmente per questi URL vanno forniti i collegamenti HTML, oppure specificare l'URL su una tag di azione modulo all'interno della macro.

Esempio 1: Un tipico blocco HTML che si collega ad altri richiami della macro eseguiti nella stessa transazione

@DTW_STATIC()
 ...
%define handle = ""
@DTW_RTVHANDLE(handle)
 
%html(report) {
@DTW_ACCEPT(handle)
 ...
<a href="/cgi-bin/db2www/$(handle)/qsys.lib/mylib.lib/
   macros.file/pcgi1.mbr/report2">continue</a><br>
<a href="/cgi-bin/db2www/$(handle)/qsys.lib/mylib.lib/
   macros.file/pcgi1.mbr/quit">quit</a><br>
%}
 

Esempio 2: Un tipico blocco HTML con un collegamento FORM ACTION ad un'altra macro

@DTW_STATIC()
 ...
%define handle = ""
@DTW_RTVHANDLE(handle)
 
%html(input) {
@DTW_ACCEPT(handle)
 ...
<form method=post action="/cgi-bin/db2www/$(handle)/qsys.lib/
mylib.lib/macros.file/pcgi1.mbr/report2">
<p>Tipo di hardware da visualizzare
<menu>
<li><input type="radio" name="hdware" value="MON" checked>Monitors
<li><input type="radio" name="hdware" value="PNT">Pointing devices
<li><input type="radio" name="hdware" value="PRT">Printers
<li><input type="radio" name="hdware" value="SCN">Scanners
</menu>
</form>
%}
 


[ Inizio pagina | Pagina precedente | Pagina successiva | Indice | Indice analitico ]