Net.Data: Guida alla gestione e alla programmazione per OS/400
Utilizzare un'istruzione di chiamata di funzione di Net.Data
per richiamare entrambe le funzioni definite dall'utente e le funzioni
integrate. Utilizzare il carattere at (@) seguito da un nome blocco
FUNCTION o da un nome blocco MACRO_FUNCTION:
@nome_funzione([ argument,... ])
- nome_funzione
- E' il nome del blocco FUNCTION o del blocco MACRO_FUNCTION da
richiamare. La funzione deve risultare già definita nella macro di
Net.Data, a meno che non si tratti di una funzione
integrata.
- argument
- E' il nome di una variabile definita, di una stringa di caratteri
letterali, di un riferimento di variabile o di una chiamata di
funzione. Argument su una chiamata di funzione corrispondono ai
parametri su un blocco FUNCTION o su un blocco MACRO_FUNCTION ed ad ogni
parametro viene assegnato il valore argument corrispondente mentre il blocco
FUNCTION o il blocco MACRO_FUNCTION viene elaborato. I valori di
argument devono essere uguali nel numero e nel tipo a quelli dei parametri
corrispondenti.
Net.Data elabora il blocco FUNCTION , il blocco MACRO_FUNCTION o le
funzioni integrate associate ad una chiamata di funzione nel seguente
ordine:
- Net.Data elabora i riferimenti delle variabili e le chiamate di
funzione nella sezione delle istruzioni eseguibili del blocco FUNCTION.
Net.Data sostituisce tutti i riferimenti delle variabili con i valori
correnti delle variabili ed esegue e sostituisce tutte le chiamate di funzione
con il valore di chiamata di funzione. I riferimenti delle variabili e
le chiamate di funzione vengono elaborati nell'ordine in cui sono stati
specificati. Net.Data non elabora le funzioni integrate o i
blocchi MACRO_FUNCTION durante questa fase.
- Il processore del linguaggio nativo elabora la sezione delle istruzioni
eseguibili. Per i blocchi FUNCTION, il processore corrisponde
all'ambiente di linguaggio specificato sul blocco FUNCTION, come SQL,
REXX o Perl. Per i blocchi MACRO_FUNCTION, Net.Data opera come
processore di linguaggio ed esegue le istruzioni eseguibili. Alcune
funzioni integrate non dispongono di istruzioni eseguibili.
Net.Data elabora le funzioni integrate per nome funzione.
Net.Data trasferisce i parametri della funzione al processore del
linguaggio nativo. Net.Data trasferisce i valori al processore
di linguaggio nativo solo per i parametri IN e INOUT ed accetta i valori
restituiti dal processore di linguaggio nativo solo per i parametri OUT e
INOUT.
- Net.Data imposta le variabili implicite RETURN_CODE e
DTW_DEFAULT_MESSAGE in base al codice di ritorno e al messaggio restituito del
processore di linguaggio. Net.Data non imposta queste variabili
per i blocchi MACRO_FUNCTION.
- Se il blocco FUNCTION o il blocco MACRO_FUNCTION contiene uno o più
blocchi REPORT o specifica prospetti predefiniti da generare, Net.Data
elabora il prospetto i prospetti utilizzando i nuovi valori dei parametri di
emissione a cui si fa riferimento. Net.Data non genera prospetti
per le funzioni integrate.
- Se il blocco FUNCTION contiene un blocco MESSAGE locale, Net.Data
elabora il blocco MESSAGE. Net.Data elabora il blocco MESSAGE
globale quando si verifica una delle seguenti condizioni:
- Viene specificato un blocco MESSAGE globale e il codice di ritorno non
viene gestito da un blocco MESSAGE locale.
- Viene chiamata una funzione integrata.
MACRO_FUNCTION.
- Net.Data sostituisce la chiamata di funzione con il valore
restituito della funzione. Per i blocchi FUNCTION, il valore può
essere:
- valore di parametro RETURNS
- Sostituito per il blocco FUNCTION con una parola chiave RETURNS.
- Stringa vuota ("")
- Sostituito per il blocco FUNCTION senza una parola chiave RETURNS quando
RETURN_CODE è zero.
- RETURN_CODE
- Sostituito per il blocco FUNCTION senza una parola chiave RETURNS quando
RETURN_CODE non è zero.
Pe i blocchi MACRO_FUNCTION, i risultati della sezione delle istruzioni
eseguibili sostituisce la chiamata di funzione.
Per le funzioni integrate, il valore dipende dal formato della funzione
integrata.
[ Inizio pagina | Pagina precedente | Pagina successiva | Indice | Indice analitico ]