Adicionalmente, el servidor web 4D acepta varios URLs adicionales:
/4DSTATS, /4DHTMLSTATS, /4DCACHECLEAR y /4DWEBTEST, para permitirle obtener información sobre el funcionamiento de su sitio Web 4D. Estos URLs se describen en la sección Información sobre el sitio web.
/4DWSDL, permite el acceso al archivo de declaración de los Servicios web publicados en el servidor. Para mayor información, consulte la sección Web Services (Servidor) y el Manual de Diseño.
Sintaxis: 4DACTION/MiMetodo{/Param} Uso: URL o acción de formulario.
Este URL permite asociar un objeto HTML (texto, imagen, botón...) a un método de proyecto 4D. Este enlace será del tipo /4DACTION/MiMetodo/Param donde MiMetodo es el nombre del método de proyecto 4D a ejecutar cuando el usuario hace clic en el enlace y Param un parámetro opcional de tipo Texto pasado al método en $1 (ver el párrafo “Los parámetros Texto pasados a los métodos vía los URLs”).
Cuando 4D recibe una petición /4DACTION/MiMetodo/Param, se llama al Método de base On Web Authentication (si existe). Si devuelve True, se ejecuta el método MiMetodo. 4DACTION/ puede estar asociado a un URL en una página web estática. La sintaxis del URL debe ser de esta forma:
<A HREF="/4DACTION/MyMethod/Param"> Do Something</A>
El método de proyecto MiMetodo generalmente debe devolver una "respuesta" (envío de página HTML utilizando WEB SEND FILE o WEB SEND BLOB, etc.). Asegúrese de hacer los procesos tan cortos como sea posible para no bloquear el navegador.
Nota: un método llamado por 4DACTION no debe llamar a los elementos de interfaz (DIALOG, ALERT...).
Advertencia: para que un método 4D pueda ejecutarse vía el URL 4DACTION/, debe tener el atributo “Disponible vía 4DACTION, 4DMETHOD y 4DSCRIPT” (deseleccionado por defecto), definido en las propiedades del método. Para mayor información sobre este punto, consulte la sección Seguridad de las conexiones.
Este ejemplo describe la asociación del URL 4DACTION/ con un objeto HTML imagen con el fin de mostrar dinámicamente una imagen en la página. Inserte la siguiente instrucción en una página HTML estática:
<IMG SRC="/4DACTION/PICTFROMLIB/1000">
El método PICTFROMLIB es el siguiente:
C_TEXT($1) // Este parámetro debe declararse siempre C_PICTURE($PictVar) C_BLOB($BlobVar) C_LONGINT($Number) // Recuperamos el número de imagen en la cadena $1 $Number:=Num(Substring($1;2;99)) GET PICTURE FROM LIBRARY($Number;$PictVar) PICTURE TO BLOB($PictVar;$BlobVar;".gif") WEB SEND BLOB($BlobVar;"Pict/gif")
El servidor web 4D permite utilizar formularios “enviados”, es decir las páginas HTML estáticas que envían datos al servidor web y recuperar fácilmente el conjunto de los valores. La acción del formulario debe obligatoriamente comenzar por /4DACTION/NomMetodo.
Nota: un formulario puede ser enviado por medio de dos métodos (ambos pueden utilizarse con 4D):
POST, generalmente utilizado para añadir datos al servidor web, en una base de datos,
GET, generalmente utilizado para hacer peticiones al servidor web, datos que vienen de una base.
En este caso, cuando el servidor web recibe un formulario enviado, llama al Método de base On Web Authentication (si existe). Si devuelve True, se ejecuta el método NomMetodo. En este método, debe llamar al comando WEB GET VARIABLES con el fin de recuperar el nombre y el valor de todos los campos incluidos en una página HTML enviada al servidor.
Nota de compatibilidad: en bases convertidas, si la opción "Asignación de variables automática" en la Página Compatibilidad está seleccionada, el método proyecto especial COMPILER_WEB (si existe) se llama en primero; 4D recupera los valores de los campos HTML que se encuentran en el formulario y llena automáticamente las variables 4D en el método llamado con sus contenidos si tienen el mismo nombre. Este funcionamiento es obsoleto. Para más información, consulte la sección Asociar objetos 4D a objetos HTML .
La sintaxis HTML a aplicar en el formulario es del siguiente tipo:
En una base web 4D, queremos que los navegadores puedan buscar registros utilizando una página estática HTML. Esta página se llama “buscar.html”. La base contiene otras páginas estáticas que le permiten, por ejemplo, mostrar el resultado de la búsqueda (“resultados.html”). El tipo POST ha estado asociado a la página, como también la acción /4DACTION/SEARCH.
Este es el código HTML que corresponde a esta página:
Durante la entrada de datos, escriba “ABCD” en el área de entrada, seleccione la opción "Palabra completa" y valide haciendo clic en el botón Buscar. En la petición enviada al servidor web:
C_TEXT($1) //obligatorio para modo compilado C_LONGINT($vName) C_TEXT(vNAME;vLIST) ARRAY TEXT($arrNames;0) ARRAY TEXT($arrVals;0) WEB GET VARIABLES($arrNames;$arrVals) //recuperamos todas las variables del formulario $vName:=Find in array($arrNames;"vNAME") vNAME:=$arrVals{$vName} If(Find in array($arrNames;"vEXACT")=-1)&NBSP; //Si la opción no ha sido seleccionada vNAME:=VNAME+"@" End if QUERY([Jockeys];[Jockeys]Name=vNAME) FIRST RECORD([Jockeys]) While(Not(End selection([Jockeys]))) vLIST:=vLIST+[Jockeys]Name+" "+[Jockeys]Tel+"<BR>" NEXT RECORD([Jockeys]) End while WEB SEND FILE("results.htm") //Envío de la lista en el formulario results.htm //que contiene una referencia a la variable vLIST //por ejemplo <!--4DHTML vLIST--> //... End if
Cuando el servidor web 4D recibe el URL /4DCGI/<action> se llama el Método de base On Web Authentication (si existe). Si devuelve True, el servidor web llama al Método base On Web Connection enviando el URL “tal cual” a $1. El URL 4DCGI/ URL no corresponde a ningún archivo. Su papel es llamar 4D utilizando el Método base On Web Connection. El parámetro “<action>” puede contener todo tipo de información. Este URL le permite efectuar todo tipo de acción. Sólo necesita probar el valor de $1 en el Método base On Web Connection o en uno de sus submétodos y realizar en 4D la acción apropiada. Por ejemplo, puede crear páginas HTML estáticas totalmente personalizadas para añadir, buscar, u ordenar registros, o generar imágenes GIF rápidamente. Ejemplos de cómo utilizar este URL se encuentran en las descripciones de los comandos PICTURE TO BLOB y WEB SEND HTTP REDIRECT. Después de una acción, debe devolverse una “respuesta”, utilizando uno de los comandos de envío de datos (WEB SEND FILE, WEB SEND BLOB, etc.).
Advertencia: asegúrese de ejecutar las acciones más cortas posibles, con el fin de no bloquear el navegador.
4D envía los parámetros de Texto a los métodos 4D llamados por los URLs especiales (4DACTION/ y 4DCGI/). He aquí algunas observaciones sobre estos parámetros:
Aunque no utilice estos parámetros, debe declararlos explícitamente con el comando C_TEXT, de lo contrario se producirán errores runtime cuando acceda por web a una base ejecutada en modo compilado. El mensaje es del tipo "Error en código dinámico Parámetros incorrectos en un comando EXECUTE Nombre del método: Número de línea: Descripción: [<fecha y hora>]" Este error runtime se produce por el hecho de que el parámetro texto $1 no fue declarado en el método 4D llamado al hacer clic en el enlace HTML. Como el contexto de la ejecución es la página HTML actual, el error no hace referencia específicamente a la línea del método. Declarar explícitamente el parámetro texto $1 permite eliminar estos errores:
//Método proyecto M_SEND_PAGE C_TEXT($1) // Este parámetro debe declararse explícitamente //... WEB SEND FILE($mypage)
El parámetro $1 devuelve los datos adicionales ubicados al final del URL y pueden utilizarse para pasar los datos del entorno HTML al entorno 4D.
` Método base On Web Connection C_TEXT($1;$2;$3;$4;$5;$6) `Estos parámetros deben declararse explícitamente
Método llamado por el URL 4DACTION/ Debe declarar el parámetro $1:
` Método llamado por el URL 4DACTION/ C_TEXT($1)
Método llamado por etiqueta 4DSCRIPT/ como un comentario HTML en un documento El método debe devolver un valor en $0. Debe declarar el parámetro $0 y $1:
//Método llamado por la etiqueta 4DSCRIPT/ como un comentario HTML C_TEXT($0;$1) //Estos parámetros DEBEN ser declarados explícitamente