AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Ayuda / WLanguage / Sintaxis WLanguage / Instrucciones estructuradas
  • Webservice: ¿Cómo almacenar la respuesta del servicio web?
  • Sintaxis de los servicios web SOAP
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Ejecuta un proceso solo después de que se haya ejecutado un procedimiento determinado, y continúa ejecutando el código actual mientras espera a que finalice el procedimiento. Este tipo de instrucción se utiliza para:
  • llamar a un servicio web SOAP de forma asíncrona.
  • llamar a un procedimiento Navegador (con un valor de retorno) desde un control Página WEBDEV.
  • llamar a un procedimiento de ventana (con un valor de retorno) desde una página contenida en un control Página WEBDEV.
Ejemplo
trackingSearch is trackSearch
trackingSearchRes is resultTrackSearch
trackingSearch.accountNumber = 99999999
trackingSearch.consigneesCountry = "FR"
trackingSearch.consigneesZipCode = "37100"
trackingSearch.sendersRef = "111111"

APRES trackingSearchRes = TrackingServiceWSService.trackSearch(trackingSearch) DO
IF ErrorOccurred() THEN
Trace("Echec de l'appel au service Web: " + ErrorInfo(errFullDetails))
ELSE
Trace("Webservice correctement exécuté")
END
END
Sintaxis

Llamada asíncrona a un servicio web SOAP Ocultar los detalles

AFTER <Result> = <SOAP web service call> DO
      <Code executed if response>
END
<Code executed after SOAP web service call>
<AFTER>:
Marca el inicio del bloque de instrucciones.
<Result>:
Resultado de la ejecución del servicio web SOAP.
<SOAP web service call>:
Llamada al procedimiento que permite consultar el servicio web SOAP.
<Code executed if response>:
Código ejecutado solo si el servicio web SOAP se ha ejecutado y enviado la respuesta.
<Code executed after SOAP web service call>:
Código ejecutado directamente después de la llamada al servicio web SOAP (independientemente de si el servicio SOAP ha enviado una respuesta o no).
<END>:
Marca el final del bloque de instrucciones.
WINDEV

Control Página WEBDEV: Llamar a un procedimiento Navegador de la página con un valor de retorno Ocultar los detalles

AFTER <Result> = <WEBDEV control>.Page.ProdcedureName() DO
<Code executed if response>
END
<Code executed after call to procedure>
<AFTER>:
Marca el inicio del bloque de instrucciones.
<Result>:
Resultado de la ejecución del procedimiento Navegador de la página (que se muestra en el control Página WEBDEV).
<<WEBDEV Page control>.Page.ProcedureName()>:
Llamada al procedimiento asociado al control Página WEBDEV.
<Code executed if response>:
Código ejecutado solo si el procedimiento se ha ejecutado y enviado la respuesta.
<Code executed after call to procedure>:
Código ejecutado directamente después de la llamada al procedimiento (tanto si el procedimiento envía una respuesta como si no).
<END>:
Marca el final del bloque de instrucciones.
WEBDEV - Código Servidor

Control Página WEBDEV: Llamar a un procedimiento de ventana (con un valor de retorno) desde una página Ocultar los detalles

AFTER <Result> = MyHostControl.ProdcedureName() DO
<Code executed if response>
END
<Code executed after call to procedure>
<AFTER>:
Marca el inicio del bloque de instrucciones.
<Result>:
Resultado del procedimiento de la ventana que contiene el control Página WEBDEV.
<MyHostControl.ProcedureName()>:
Llamada al procedimiento asociado a la ventana desde la página contenida en el control Página WEBDEV.
<Code executed if response>:
Código ejecutado solo si el procedimiento se ha ejecutado y enviado la respuesta.
<Code executed after call to procedure>:
Código ejecutado directamente después de la llamada al procedimiento (tanto si el procedimiento envía una respuesta como si no).
<END>:
Marca el final del bloque de instrucciones.
Observaciones

Webservice: ¿Cómo almacenar la respuesta del servicio web?

La respuesta del servicio web se puede almacenar en el parámetro <Code executed if response>. Se pueden utilizar varias sintaxis:
  • Declaración del valor de retorno en el bloque AFTER ... DO:
    En este caso, el servicio web devuelve una variable de tipo wsResponse. Para manipular esta variable, debe asignarse explícitamente a la variable utilizada para obtener el resultado del servicio web.
    AFTER x = Websevice_Call() DO
    // here x is a wsResponse, it must be explicitly assigned
    // in a variable used to retrieve the result of the web service
    Res is TypeWS = x
    // code executed after the web service response
    // .... = Res
    END
    // code executed immediately
  • Declaración del valor de retorno fuera del bloque AFTER ... DO:
    En este caso, la variable de retorno puede manipularse directamente.
    Res is TypeWS
    AFTER Res  = WebseviceNoResponse() DO
    // code executed after the web service response
    // .... = Res
    END
    // code executed immediately

Sintaxis de los servicios web SOAP

  • Esta sintaxis solo puede utilizarse para llamar a los servicios web SOAP.
  • El parámetro <Code executed if response> se ejecuta como un procedimiento de tipo Callback una vez que el servicio web se ha ejecutado y enviado una respuesta.
  • Importante: el código ejecutado después de la llamada al servicio web SOAP (después de la palabra clave END) se ejecuta en el contexto del subproceso de llamada. Si la llamada se realiza en el subproceso principal, la ejecución de una función de espera (ThreadPause, Multitask, EventWait, etc.) provocará un interbloqueo.
  • La variable ErrorOccurred de WLanguage puede utilizarse para manipular posibles errores durante la llamada al servicio web SOAP. Por ejemplo:
    // Calls the SOAP web service to verify the VAT number
    AFTER MyResponse = checkVat(sCountry, sVATNum) DO
    	// If an error occurred
    	IF ErrorOccurred THEN
    		...
    	END
    END
Versión mínima requerida
  • Versión 26
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 17/06/2024

Señalar un error o enviar una sugerencia | Ayuda local