ValidationAdapter
En el ejemplo ValidationAdapter se muestra cómo ejecutar reglas de validación especiales en un mensaje en un proceso público de respondedor. El Acelerador de Microsoft® BizTalk para RosettaNet (BTARN) realiza de forma nativa la validación en la canalización de envío o recepción y en orquestaciones. Si desea realizar una validación adicional, puede crear un adaptador de validación. La validación adicional podría incluir la validación entre campos o reglas de validación específicas de la empresa que no se pueden implementar mediante un XSD.
Para crear un adaptador de validación, agregue código de C# al ejemplo ValidationAdapter, publique las interfaces y escriba el adaptador en las propiedades del contrato. A continuación, BTARN llamará al adaptador de validación durante el procesamiento de mensajes.
Dado que validationAdapter lo usa la orquestación de procesos públicos, se ejecuta bajo las mismas credenciales que el servicio host de BizTalk que hospeda esa orquestación.
El ejemplo ValidationAdapter se encuentra en <unidad>:\Archivos de programa\Acelerador de versiones> de Microsoft BizTalk <para RosettaNet\SDK\ValidationAdapter.
Muestra
En el ejemplo ValidationAdapter se muestra la validación de la dirección de correo electrónico en el contenido del servicio. El ejemplo implementa la IValidateRNIFMessageParts
interfaz . Devuelve un RNIFException
si la dirección de correo electrónico no tiene el formato correcto. Los documentos XML preámbuloToValidate, serviceHeaderToValidate, deliveryHeaderToValidate y serviceContentToValidate definen la validación.
ValidationAdapter usa la propiedad RNIFerror.IsOkToSendException para determinar qué tipo de mensaje se va a enviar en caso de error. Si la validación no se realiza correctamente, ValidationAdapter establece RNIFerror.ErrorCode en un valor distinto de cero. Si la propiedad RNIFerror.IsOkToSendException es true, el proceso envía una confirmación negativa. Para RNIF 2.0, se trata de un mensaje de excepción. Para RNIF 1.1, se trata de un mensaje de excepción de confirmación de recibo. Si la propiedad RNIFerror.IsOkToSendException es false y 0A1 está configurada, el proceso enviará un mensaje 0A1. Una vez que el proceso envía un mensaje de excepción, un mensaje de excepción de confirmación de recibo o un mensaje 0A1, finalizará.
Si la propiedad RNIFerror.IsOkToSendException es false y 0A1 no está configurada, el proceso no enviará ninguna excepción ni una 0A1. Registrará el error y, a continuación, finalizará.
Si la validación se realiza correctamente, ValidationAdapter establece RNIFerror.ErrorCode en 0 y BTARN enruta el mensaje al proceso privado. Enruta el mensaje al proceso privado solo si la validación es correcta.
Para implementar este ejemplo
Para implementar el ejemplo ValidationAdapter, debe agregar el adaptador de validación al contrato.
Para agregar el adaptador de validación al contrato
Haga clic en Inicio, seleccione Todos los programas, Seleccione Acelerador de Microsoft BizTalk para RosettaNet y, a continuación, haga clic en Acelerador de BizTalk para RosettaNetManagement Console.
En el Acelerador de BizTalk para la Consola de administración de RosettaNet, expanda Acelerador de BizTalk para RosettaNet y, a continuación, haga clic en Contratos.
Haga doble clic en el contrato al que desea agregar el adaptador de validación.
En el cuadro de diálogo Adaptador de validación , haga clic en el botón de puntos suspensivos (...) situado a la derecha del nombre del ensamblado, vaya a la ubicación que contiene el ensamblado del adaptador de validación, seleccione el archivo de .dll adecuado y, a continuación, haga clic en Abrir.
Haga clic en la flecha abajo de Nombre de clase, seleccione la clase de adaptador de validación y, a continuación, haga clic en Aceptar.