La técnica Omnis denominada “Cliente-Ligero” o “Ultra-thin” nos permite invocar una tarea remota o “
remote task” desde un formulario HTML, sin necesidad de utilizar el cliente JavaScript o el también llamado “jsClient”. En éstos casos Omnis crea una instancia para la tarea remota particular, he invoca a su método “
$construct()”. El valor de retorno, será texto HTML standard.
La invocación directa http, deberá seguir la siguiente estructura:
http://≤Servidor≥:≤Puerto≥/Cliente-ligero
≤Servidor≥ es el nombre de dominio o dirección IP del equipo en el que se esté ejecutando Omnis Studio. La dirección 127.0.0.1, será apropiada si se trata de nuestra propia máquina.
≤Puerto≥ es el número de puerto previamente fijado sobre la propiedad “
$ServerPort” de Omnis Studio; de forma predeterminada es el 5912, pero puede cambiarse por cualquier otro entre 1 y 32767. La propiedad “
$ServerPort” forma parte del grupo “
$root.$prefs”.
Para probar esto, puede optar por descargarse la librería denominada “DirectHTTP”, la cual está disponible para su descarga gratuita desde la web de
Aula Omnis, o bien créela una con ese mismo nombre y después añádale una “remote task” con el nombre “rtDirectHTTP” e inserte en su método “
$construct()” el código siguiente:
; Sobre el $construct()
; Cree también la siguientes variables
; Cómo parámetro: pParams (Row)
; Como locales: fullhtml (Char 100000000) y html (Char 100000000)
Begin text block
Text: ≤html≥ (Carriage return,Linefeed)
Text: ≤body bgcolor="FFFFFF"≥ (Carriage return,Linefeed)
Text: ≤title≥Hello [pParams.User] ≤/title≥ (Carriage return,Linefeed)
Text: ≤H1≥Hello [pParams.User] ≤/H1≥ (Carriage return,Linefeed)
Text: ≤a href="javascript:history.go(-1);"≥Go back≤/a≥ (Carriage return,Linefeed)
Text: ≤/BODY≥ (Carriage return,Linefeed)
Text: ≤/html≥ (Carriage return,Linefeed)
End text block
Get text block html
Calculate fullhtml as con('content-type: text/html',chr(13,10),'content-length:',len(html),chr(13,10,13,10),html)
Quit method fullhtml
La “
remote task” es invocada desde dentro del formulario HTML del modo siguiente:
≤html≥
≤form action="http://127.0.0.1:5912/ultra" method="Get"≥
¿Cuál es su nombre? ≤input br="" maxlength="50" name="User" size="30" type="Text" /≥ ≤input type="Submit" name="Send" value="Send"≥
≤input type="hidden" name="OmnisLibrary" value="DirectHTTP"≥
≤input type="hidden" name="OmnisClass" value="rtDirectHTTP"≥
≤/form≥
≤/html≥
Deberá cambiar la dirección IP y el puerto 5912 para que se conforme a su configuración, la dirección IP y el número de puerto indicados anteriormente son los usados por Omnis como valores por defecto.
A continuación, abra el formulario HTML en un navegador, introduzca un nombre y haga clic en “Send”. Esto provocará la invocación del método “
$construct” de la tarea remota “rtDirectHTTP”, pasándole el parámetro denominado “User”, que contendrá el texto introducido en el formulario. La llamada http completa es la siguiente:
http://127.0.0.1:5912/ultra?User=Santa&Send=Send&OmnisLibrary=DirectHTTP&OmnisClass=rtDirectHTTP
La “remote task” procesa los valores del formulario y devuelve al navegador texto HTML estándar, como se muestra a continuación: