Defining SOAP Web Service Faults
Un archivo WSDL puede contener un elemento fault para una operación y un atributo de mensaje que contiene el mensaje de error. En consecuencia, al diseñar un servicio web SOAP en MapForce puede añadir un componente "fault" a la asignación. De esta forma el servicio generará una excepción si se cumple una condición en particular.
Para insertar un componente "fault" en una asignación debe existir un elemento fault en el archivo WSDL. |
Puede definir la condición del fallo dentro de la asignación y también puede definir el texto del mensaje de error. Si la condición se cumple, el servicio web reaccionará de la siguiente manera:
•en un entorno real (en tiempo de ejecución, después de que se haya implementado el servicio web en un servidor), el servicio web fallará y devolverá al autor de la llamada el mensaje que se haya definido.
•en MapForce (en el momento de realizar el diseño) se detiene la ejecución de la asignación y se puede ver el mensaje en la ventana Mensajes.
Para añadir un componente "fault" a una asignación de MapForce:
1.En el menú Insertar, haga clic en Excepción. (También puede hacer clic en el botón Excepción de la barra de herramientas.)
2.Seleccione Crear elemento de error de WSDL.
Nota: | si la opción Crear elemento de error de WSDL está deshabilitada y aparece el mensaje "no hay errores para esta operación", esto significa que no existen errores en el archivo WSDL y, en consecuencia, tampoco se puede añadir uno en MapForce. |
Para ver un ejemplo de una asignación que contiene un error de servicio web, abra el siguiente proyecto de prueba de MapForce: <Documentos>\Altova\MapForce2023\MapForceExamples\TimeService\TimeService.mfp. Haga doble clic en la asignación (operación) getTimeZoneTime.mfd.
En la asignación de la imagen anterior la excepción debería activarse si n0:timezone no es igual a UTC.
•la función equal comprueba si la zona horaria es UTC y pasa al filtro el resultado binario.
•si la condición es false, es decir, si no es UTC, entonces el parámetro on-false del filtro activa la excepción Fault:errorSoapOut y el proceso de asignación se detiene. (Tenga en cuenta que también puede vincular la excepción al parámetro on-true.)
•el mensaje SoapFault ofrece dos conjuntos de mensajes de error.
Es muy importante saber dónde se encuentra el filtro en el ejemplo:
•deben asignarse los dos parámetros del componente del filtro, on-true y on-false. Uno de los dos debe asignarse al componente "fault" y el otro al componente de destino que recibe los datos de origen filtrados. Si no se siguen estos pasos, el componente "fault" nunca se activa. •los componentes de excepción y de destino deben conectarse directamente al componente del filtro. No se pueden colocar funciones ni otros componentes entre el filtro y la excepción, ni tampoco entre el filtro y los componentes de destino. |