Finalidad
Invoca un bloque FUNCTION, un bloque MACRO_FUNCTION o una función incorporada con argumentos específicos. Si la función no es una función incorporada, debe definirla en la macro de Net.Data antes de especificar una llamada de función.
Sintaxis
>>-@nombre_función---(------------------------------------------> >-----+---------------------------------------------------+--)-->< | .-,--------------------------------------------. | | V | | '----+-nombre_variable-------------------------+--+-' +-referencia de variable------------------+ +-llamada de función----------------------+ | .-----------------------------. | | V | | '-"----+-serie------------------+--+---"--' +-referencia de variable-+ '-llamada de función-----'
Valores
Contexto
Las llamadas de función pueden encontrarse en estos contextos:
Restricciones
Ejemplos
Ejemplo 1: Llamada a la función formQuery de SQL
%FUNCTION(DTW_SQL) formQuery(){ SELECT $(queryVal) from $(tableName) %} %HTML (Input){ <p>Which columns of $(tableName) do you want to see?</p> <form method="post" action="report"> <input name="queryval" type="checkbox" value="name" />Name <input name="queryval" type="checkbox" value="mail" />E-mail <input name="queryval" type="checkbox" value="fax" />FAX <input type="submit" value="submit request" /> </form> %} %HTML (Report){ <p>Here are the columns you selected:</p> <hr /> @formQuery() %}
Ejemplo 2: Llamada a una función REXX con parámetros de entrada y salida
%FUNCTION(DTW_REXX) my_rexx_pgm(INOUT a, b, IN c, OUT d) { %EXEC{ mypgm.cmd this is a test %} %} %HTML(INPUT) { <p> Original variable values: $(w) $(x) $(z) </p> <p> @my_rexx_pgm(w, x, y, z) </p> <p> Modified variable values: $(w) $(x) $(z) </p> %}
Ejemplo 3: Llamada a una función REXX con parámetros de entrada, que utiliza referencias de variables y llamadas de función
%FUNCTION(DTW_REXX) my_rexx_pgm(IN a, b, c, d, OUT e) { ... %} %HTML(INPUT) { <p> @my_rexx_pgm($(myA), @getB(), @retrieveC(), $(myD), myE)</p> %}
Ejemplo 4: Macro que ilustra la utilización del parámetro INOUT.
%DEFINE a = "initial value of a"
%FUNCTION(DTW_REXX) func1(INOUT x) {
Say 'value at start of function:<br />
Say 'x =' x
Say '<p>'
x = "new value of a"
Say '<p>'
%REPORT {
<p>value at start of report block:<p>
x = $(x)<br />
@dtw_assign(x, "newest value of a")
value at end of report block:<br />
x = $(x)<br />
%}
%}
%HTML (Report) {
initial values:<br />
a = $(a)<br />
@func1(a)
value after function call:<br />
a = $(a)<br />
%}
Salida resultante
initial values: a = initial value of a value at start of function: x = initial value of a value at start of report block: x = new value of a value at end of report block: x = newest value of a value after function call: a = newest value of a