Inserción, actualización, eliminación o selección de operaciones mediante BizTalk Server con el adaptador de SQL
El adaptador de Microsoft BizTalk para SQL Server muestra un conjunto de operaciones estándar en SQL Server tablas y vistas de base de datos. Se denominan operaciones del lenguaje de manipulación de datos (DML). Mediante el uso de operaciones DML, puede realizar operaciones sencillas de inserción, actualización, selección y eliminación en tablas y vistas. Para obtener más información sobre cómo el adaptador admite estas operaciones, vea Insertar, actualizar, eliminar y seleccionar operaciones en tablas y vistas con el adaptador de SQL. Para obtener información sobre la estructura del mensaje SOAP para estas operaciones, vea Esquemas de mensaje para insertar, actualizar, eliminar y seleccionar operaciones en tablas y vistas.
Nota
Si está realizando operaciones en tablas que tienen columnas de tipos definidos por el usuario, asegúrese de consultar Operaciones en tablas y vistas con User-Defined Tipos mediante el adaptador de SQL antes de empezar a desarrollar la aplicación.
Realización de operaciones básicas en una base de datos de SQL Server
Realizar una operación en una base de datos de SQL Server mediante el adaptador de SQL con BizTalk Server implica tareas de procedimientos descritas en Bloques de creación para desarrollar aplicaciones de BizTalk con el adaptador de SQL. Para realizar las operaciones Insertar, Actualizar, Eliminar o Seleccionar en tablas y vistas de SQL Server, estas tareas son:
Cree un proyecto de BizTalk y genere un esquema para la operación que desea invocar en una tabla o vista de base de datos SQL Server.
Cree mensajes en el proyecto de BizTalk para enviar y recibir mensajes de la base de datos SQL Server.
Cree una orquestación para invocar la operación en la tabla o vista de base de datos SQL Server.
Compile e implemente el proyecto de BizTalk.
Configure la aplicación de BizTalk mediante la creación de puertos físicos de envío y recepción.
Inicie la aplicación de BizTalk.
En este tema se proporcionan instrucciones para realizar estas tareas.
Ejemplo basado en este tema
Se proporciona un ejemplo, SelectTable, basado en este tema con el paquete de adaptadores de BizTalk. Para obtener más información, vea Ejemplos para el adaptador de SQL.
Generación de esquema
En este tema se muestra cómo realizar operaciones DML básicas seleccionando registros de la tabla EMPLOYEE de la base de datos SQL Server. Ejecute los scripts proporcionados con los ejemplos para crear la tabla EMPLOYEE. Para obtener más información sobre los ejemplos, vea Ejemplos de esquema.
Para demostrar cómo seleccionar registros, se genera el esquema para la operación Select de la tabla EMPLOYEE. Debe crear un proyecto de BizTalk y usar el complemento consumir servicio adaptador para generar el esquema. Consulte Recuperación de metadatos para SQL Server operaciones en Visual Studio mediante el adaptador de SQL para obtener más información sobre cómo generar esquemas.
Importante
Si está generando metadatos para las operaciones en una tabla que tiene columnas de tipos definidos por el usuario (UDT), asegúrese de que los ensamblados respectivos de los UDT están disponibles en la misma ubicación que el ejecutable de Visual Studio, devenv.exe. El archivo ejecutable normalmente está disponible en <installation drive>:\Program Files\Microsoft Visual Studio <version>\Common7\IDE
. En este ejemplo, la tabla EMPLOYEE tiene una columna UDT (Point). Asegúrese de copiar el ensamblado correspondiente en la misma ubicación que el ejecutable de Visual Studio.
Para obtener información sobre cómo crear un UDT, vea Crear un tipo de User-Defined. Para obtener información sobre cómo registrar un UDT en SQL Server, consulte Registro de tipos de User-Defined en SQL Server.
Definición de mensajes y tipos de mensajes
El esquema que ha generado anteriormente describe los "tipos" necesarios para los mensajes de la orquestación. Normalmente, un mensaje es una variable cuyo tipo está definido por el esquema correspondiente. Ahora debe crear mensajes para la orquestación y vincularlos a esquemas generados en el paso anterior.
Agregue una orquestación al proyecto de BizTalk. En Explorador de soluciones, haga clic con el botón derecho en el nombre del proyecto de BizTalk, seleccione Agregar y, a continuación, haga clic en Nuevo elemento. Escriba un nombre para la orquestación de BizTalk y, a continuación, haga clic en Agregar.
Abra la ventana Vista orquestación del proyecto de BizTalk si no está abierta. Para ello, haga clic en Ver, seleccione Otras ventanas y, a continuación, haga clic en Vista de orquestación.
En la vista Orquestación, haga clic con el botón derecho en Mensajes y, a continuación, haga clic en Nuevo mensaje.
Haga clic con el botón derecho en el mensaje recién creado y, a continuación, seleccione Ventana Propiedades.
En el panel Propiedades del Message_1, haga lo siguiente:
Use Para hacer esto Identificador Escriba Request
Tipo de mensaje En la lista desplegable, expanda Esquemas y, a continuación, seleccione SelectTable.TableOperation_dbo_Employee.Select, donde SelectTable es el nombre del proyecto de BizTalk. TableOperation_dbo_Employee es el esquema generado para la operación Select en la tabla EMPLOYEE. Repita el paso 2 para crear un mensaje. En el panel Propiedades del nuevo mensaje, haga lo siguiente:
Use Para hacer esto Identificador Escriba Response
Tipo de mensaje En la lista desplegable, expanda Esquemas y, a continuación, seleccione SelectTable.TableOperation_dbo_Employee.SelectResponse.
Configuración de la orquestación
Debe crear una orquestación de BizTalk para usar BizTalk Server para realizar una operación en SQL Server. En esta orquestación, quitará un mensaje de solicitud en una ubicación de recepción definida. El adaptador de SQL consume este mensaje y lo pasa a SQL Server. La respuesta de SQL Server se guarda en otra ubicación. Debe incluir formas enviar y recibir para enviar mensajes a SQL Server y recibir respuestas, respectivamente. Una orquestación de ejemplo para la operación Select es similar a la siguiente:
Agregar formas de mensaje
Asegúrese de especificar las siguientes propiedades para cada una de las formas de mensaje. Los nombres enumerados en la columna Shape son los nombres de las formas de mensaje que se muestran en la orquestación mencionada.
Forma | Tipo de forma | Propiedades |
---|---|---|
ReceiveMessage | Recepción | - Establecer nombre en ReceiveMessage - Establecer Activar en True |
SendMessage | Envío | - Establecer nombre en SendMessage |
ReceiveResponse | Recepción | - Establecer nombre en ReceiveResponse - Establecer Activar en False |
SendResponse | Envío | - Establecer el nombre en SendResponse |
Adición de puertos
Asegúrese de especificar las siguientes propiedades para cada uno de los puertos lógicos. Los nombres enumerados en la columna Puerto son los nombres de los puertos como se muestra en la orquestación.
Port | Propiedades |
---|---|
MessageIn | - Establecer identificadoren MessageIn - Establecer el tipo en MessageInType - Establecer el patrón de comunicación en unidireccional - Establecer la dirección de comunicación para recibir |
LOBPort | - Establecer identificador en LOBPort - Establecer tipo en LOBPortType - Establecer el patrón de comunicación en Solicitud-respuesta - Establecer la dirección de comunicación en enviar y recibir |
ResponseOut | - Establecer identificador enResponseOut - Establecer tipo en ResponseOutType - Establecer el patrón de comunicación en unidireccional - Establecer la dirección de comunicación en Enviar |
Especificar mensajes para formas de acción y conectarlos a puertos
En la tabla siguiente se especifican las propiedades y sus valores que se deben establecer para especificar mensajes para las formas de acción y para vincular los mensajes a los puertos. Los nombres enumerados en la columna Shape son los nombres de las formas de mensaje tal como se muestran en la orquestación mencionada anteriormente.
Forma | Propiedades |
---|---|
ReceiveMessage | - Establecer mensaje en solicitud - Establecer operación en MessageIn.Select.Request |
SendMessage | - Establecer mensaje en solicitud - Establecer operación en LOBPort.Select.Request |
ReceiveResponse | - Establecer mensaje en respuesta - Establecer la operación en LOBPort.Select.Response |
SendResponse | - Establecer mensaje en respuesta - Establecer la operación en ResponseOut.Select.Request |
Después de especificar estas propiedades, se conectan las formas y los puertos de mensaje y se completa la orquestación.
Ahora debe compilar la solución de BizTalk e implementarla en BizTalk Server. Para obtener más información, vea Compilar y ejecutar orquestaciones.
Configuración de la aplicación de BizTalk
Después de implementar el proyecto de BizTalk, la orquestación que creó anteriormente aparece en el panel Orquestaciones de la consola de administración de BizTalk Server. Debe usar la consola de administración de BizTalk Server para configurar la aplicación. Para obtener un tutorial, vea Tutorial: Implementación de una aplicación básica de BizTalk.
La configuración de una aplicación implica:
Selección de un host para la aplicación.
Asignación de los puertos que creó en la orquestación a puertos físicos en la consola de administración de BizTalk Server. Para esta orquestación, debe:
Defina una ubicación en el disco duro y un puerto de archivo correspondiente donde quitará un mensaje de solicitud. La orquestación de BizTalk consumirá el mensaje de solicitud y lo enviará a la base de datos SQL Server.
Defina una ubicación en el disco duro y un puerto de archivo correspondiente donde la orquestación de BizTalk quitará el mensaje de respuesta que contiene la respuesta de la base de datos de SQL Server.
Defina un puerto de envío físico WCF-Custom o WCF-SQL para enviar mensajes a la base de datos SQL Server. También debe especificar la acción en el puerto de envío. Para obtener información sobre cómo crear puertos, consulte Configuración manual de un enlace de puerto físico al adaptador de SQL.
Nota
La generación del esquema mediante el complemento de proyecto consumir servicio de adaptador de BizTalk también crea un archivo de enlace que contiene información sobre los puertos y las acciones que se establecerán para esos puertos. Puede importar este archivo de enlace desde la consola de administración de BizTalk Server para crear puertos de envío (para llamadas salientes) o puertos de recepción (para llamadas entrantes). Para obtener más información, consulte Configuración de un enlace de puerto físico mediante un archivo de enlace de puertos para usar el adaptador de SQL.
Iniciar la aplicación
Debe iniciar la aplicación de BizTalk para seleccionar registros de una tabla de base de datos SQL Server. Para conocer los pasos para iniciar una aplicación de BizTalk, vea Cómo iniciar una orquestación.
En esta fase, asegúrese de que:
El puerto de recepción FILE para recibir mensajes de solicitud para la orquestación se está ejecutando.
El puerto de envío FILE para recibir los mensajes de respuesta de la orquestación se está ejecutando.
Se está ejecutando el puerto de envío de WCF-Custom o WCF-SQL para enviar mensajes a la base de datos SQL Server.
La orquestación de BizTalk para la operación se está ejecutando.
Importante
Si está realizando operaciones en una tabla que tiene columnas de tipos definidos por el usuario (UDT), asegúrese de que los ensamblados respectivos de los UDT están disponibles en la misma ubicación que el ejecutable de BizTalk Server, btsntsvc.exe. El archivo ejecutable normalmente está disponible en <installation drive>:\Program Files\Microsoft BizTalk Server <version>
. En este ejemplo, la tabla EMPLOYEE tiene una columna UDT (Point). Asegúrese de copiar el ensamblado correspondiente en la misma ubicación que el archivo ejecutable de BizTalk Server.
Para obtener información sobre cómo crear un UDT, vea Crear un tipo de User-Defined. Para obtener información sobre cómo registrar un UDT en SQL Server, vea Registrar tipos de User-Defined en SQL Server.
Ejecución de la operación
Después de ejecutar la aplicación, debe quitar un mensaje de solicitud a la ubicación de recepción del archivo. El esquema del mensaje de solicitud debe ajustarse al esquema de la operación Select que generó anteriormente. Por ejemplo, el mensaje de solicitud para seleccionar todos los registros de la tabla EMPLOYEE es:
<Select xmlns="http://schemas.microsoft.com/Sql/2008/05/TableOp/dbo/Employee">
<Columns>*</Columns>
<Query>where Employee_ID=10001</Query>
</Select>
Este mensaje de solicitud recuperará los registros de la tabla Employee que cumplen la condición especificada en el <Query>
elemento . Si desea recuperar columnas específicas de la tabla, debe especificarlas en el <elemento Columns> , separados por comas, en la misma secuencia que aparecen en la definición de tabla. Si no desea especificar una condición para recuperar datos, deje el <Query>
elemento en blanco. Vea Esquemas de mensajes para insertar, actualizar, eliminar y seleccionar operaciones en tablas y vistas para obtener más información sobre el esquema de mensajes de solicitud para realizar operaciones DML básicas en tablas y vistas de base de datos SQL Server mediante el adaptador de SQL.
La orquestación consume el mensaje y lo envía a SQL Server base de datos. La respuesta de SQL Server base de datos se guarda en la otra ubicación FILE definida como parte de la orquestación. Por ejemplo, la respuesta de SQL Server base de datos del mensaje de solicitud anterior es:
<?xml version="1.0" encoding="utf-8" ?>
<SelectResponse xmlns="mssql://Microsoft.LobServices.Sql/2008/01/TVOp/dbo/Employee">
<SelectResult>
<Employee xmlns="mssql://Microsoft.LobServices.Sql/2008/01/Types/Tables/dbo">
<Employee_ID>10001</Employee_ID>
<Name>John</Name>
<DOJ>1983-12-31T00:00:00Z</DOJ>
<Designation>Manager</Designation>
<Job_Description>Management</Job_Description>
<Photo>EjRVYzRFVQ==</Photo>
<Rating>1,2</Rating>
<Salary>100000.00</Salary>
<Last_Modified>AAAAAAAAD6I=</Last_Modified>
</Employee>
</SelectResult>
</SelectResponse>
Prácticas recomendadas
Una vez implementado y configurado el proyecto de BizTalk, puede exportar los valores de configuración a un archivo XML denominado archivo de enlace. Una vez que genere un archivo de enlace, puede importar los valores de configuración del archivo, de modo que no sea necesario crear elementos como los puertos de envío y recibir puertos para la misma orquestación. Para obtener más información sobre los archivos de enlace, consulte Reutilización de enlaces de adaptador de SQL.
Si va a insertar, actualizar o eliminar grandes volúmenes de datos, asegúrese de establecer los valores de tiempo de espera adecuados para el adaptador de WCF y para la transacción MSDTC. Para obtener más información, vea el problema "El adaptador no puede insertar, actualizar o eliminar grandes volúmenes de datos en una sola operación mediante BizTalk Server" en Solución de problemas operativos con el adaptador de SQL.