Paso 4: Configurar la solución de BizTalk Server
En el paso anterior, ha creado e implementado una aplicación de BizTalk Server para recibir notificaciones de Salesforce en BizTalk Server e insertar los detalles en una base de datos SQL Server local. En este paso, configuraremos la aplicación en BizTalk Server consola de administración. La configuración de la aplicación supone principalmente crear puertos físicos correspondientes a los puertos lógicos que creamos en la orquestación. También implica enlazar el puerto físico a los puertos lógicos. Realizaremos los pasos siguientes para configurar la aplicación BizTalk Server:
Configurar una ubicación de recepción WCF-BasicHttpRelay de tipo solicitud-respuesta para recibir las notificaciones de oportunidades de Salesforce.
Configurar un puerto de envío WCF-WebHttp de tipo petición-respuesta para enviar una consulta a Salesforce para recuperar los detalles de producto relacionados con la notificación de oportunidad recibida. Este puerto de envío recibe también la respuesta de la consulta de Salesforce.
Configurar un puerto de envío WCF-SQL unidireccional para insertar la respuesta de la consulta de Salesforce en una base de datos de SQL Server local.
Configure la aplicación BizTalk Server asociando el puerto lógico en la orquestación con los puertos físicos creados en la consola de administración de BizTalk Server.
Abra la consola de administración de BizTalk Server. Expanda el nodo Aplicaciones y busque la aplicación SalesforceIntegration . Esta aplicación se crea al implementar el proyecto de BizTalk Server desde Visual Studio.
Expanda la aplicación SalesforceIntegration , haga clic con el botón derecho en Puertos de recepción, seleccione Nuevoy, a continuación, haga clic en Puerto de recepción de solicitud-respuesta. Especifique el nombre del puerto como
ReceiveOppNotification
y en el panel izquierdo, haga clic en Ubicaciones de recepción.En el cuadro de diálogo Propiedades de la ubicación de recepción, especifique los siguientes valores.
Parámetro Value Nombre Escriba ReceiveOppNotification
.Tipo Seleccione WCF-BasicHttpRelay. Controlador de recepción Seleccionar BizTalkServerAplicación Canalización de recepción Seleccionar XMLReceive Canalización de envío Seleccione PassThruTransmit. Haga clic en Configurar en el tipo de puerto.
En el cuadro de diálogo "Propiedades de transporte WCF-BasicHttpRelay", especifique los siguientes valores:
En la pestaña General , en Dirección (URI), escriba
https://btssalesforce.servicebus.windows.net/notifications/opportunity
. Aquí, btssalesforce es el espacio de nombres que creó en el paso 1: Crear un espacio de nombres de Service Bus. La dirección URL que especifique aquí es la misma dirección URL que especificó al crear un flujo de trabajo en Salesforce en el paso 2: Configurar el sistema salesforce. Configure un flujo de trabajo en el que cada vez que la fase de una oportunidad esté establecida en Won cerrado, Salesforce envía una notificación a la dirección URLhttps://btssalesforce.servicebus.windows.net/notifications/opportunity
. Especificamos la misma dirección URL aquí como parte de la configuración de esta ubicación de recepción. Cuando la ubicación de recepción está habilitada, el punto de conexión de retransmisión especificado por la dirección URL se crea en Microsoft Azure.En la pestaña Seguridad , especifique lo siguiente:
En Modo de seguridad, seleccione Transporte y, en Tipo de autenticación de cliente de Relay, seleccione Ninguno.
Active la casilla Habilitar detección de servicios para publicar el comportamiento del servicio en el Registro de servicios. Especifique el nombre para mostrar que indica el nombre con el que se publica el servicio en el Registro. Puede establecer el modo de detección en público o privado. Para este tutorial, establezca Nombre para mostrar en
SF Outbound Notification
y Modo de detección en Público.En el cuadro Servicio de control de acceso, haga clic en Editar. En Access Control URI de STS de servicio, escriba
https://btssalesforce-sb.accesscontrol.windows.net/
. En Nombre del emisor y Clave del emisor, escriba los valores que guardó en paso 1: Crear un espacio de nombres de Service Bus para los campos Usuario predeterminado y Clave predeterminada .
Haga clic en Aceptar hasta que salga de todos los cuadros de diálogo abiertos.
Expanda la aplicación SalesforceIntegration , haga clic con el botón derecho en Puertos de envío, seleccione Nuevoy, a continuación, haga clic en Static Solicit-Response Send Port (Puerto de envío estático).
En el cuadro de diálogo Propiedades de puerto de envío, especifique los siguientes valores:
Parámetro Value Nombre Escriba SalesforceREST
.Tipo Seleccionar WCF-WebHttp Controlador de envío Seleccionar BizTalkServerAplicación Canalización de envío Seleccione PassThruTransmit. Canalización de recepción Seleccione AddNamespace y haga clic en el botón de puntos suspensivos de la canalización para configurar la canalización.
- En fase 1: Descodificar, en NamespaceBase, escribahttp://BtsSalesforceIntegration.QueryResult
. Este es el espacio de nombres del esquema QueryResult.xsd que creó en el paso 3b: Recuperar detalles de oportunidad de Salesforce mediante el adaptador de WCF-WebHttp. Cuando la canalización de recepción AddNamespace recibe la respuesta de Salesforce, agrega este espacio de nombres al mensaje de respuesta. De manera predeterminada, el mensaje de respuesta de Salesforce no incluye ningún espacio de nombres.
En Espacio de nombresPrefijo, escribasf
.
- En fase 2: Desensamblar, acepte los valores predeterminados y, a continuación, haga clic en Aceptar.En el cuadro de diálogo Propiedades de puerto de envío, haga clic en Configurar con el tipo de puerto.
En el cuadro de diálogo Propiedades de transporte WCF-WebHttp, especifique los siguientes valores:
En la pestaña General, realice las acciones siguientes:
en Dirección (URI), escriba
https://<Salesforce_instance_name>.salesforce.com/services/data/v24.0
. Puede recuperar el nombre de instancia de Salesforce copiando el texto que aparece entre https:// y Salesforce.com en la barra de dirección donde tiene abierto el portal Salesforce.com. Por ejemplo, si la dirección URL del portal de Salesforce es https://na15.salesforce.com/home/home.jsp, el nombre de la instancia de Salesforce es na15.En el cuadro Método HTTP y asignación de direcciones URL , especifique lo siguiente:
<BtsHttpUrlMapping> <Operation Method="GET" Url="/query?q={VAR}" /> </BtsHttpUrlMapping>
Este es el modo en que se usa esta configuración: para consultar Salesforce para recuperar más información sobre la notificación de oportunidades, debemos realizar una operación GET en el punto de conexión REST de Salesforce (especificado en el campo Dirección ) y anexar la consulta para recuperar los detalles de la oportunidad. Por tanto, la dirección URL debe tener el siguiente aspecto:
https://na15.salesforce.com/services/data/v24.0/query?q=<query_string>
Ya tenemos el punto de conexión rest de Salesforce como parte del campo Dirección (URI). Por lo tanto, como parte de la propiedad Método HTTP y asignación de direcciones URL, especificamos mediante el método GET y anexando {VAR} como una variable.
En el cuadro Asignación de variables , haga clic en Editar. En este cuadro se especifica cómo se deduce el valor de la variable {VAR} en tiempo de ejecución.
En el paso 3b: Recuperar detalles de oportunidad de Salesforce mediante el adaptador de WCF-WebHttp, hemos promocionado la propiedad Query, lo que dio lugar a la creación de un propertySchema.xsd. Usaremos el elemento Query de ese esquema para pasar la cadena de consulta asignando ese elemento a la variable {VAR} en la dirección URL.
En el cuadro de diálogo Asignación de variables, la columna Variable muestra el nombre de la variable que especificó anteriormente, por ejemplo, VAR. En la columna Nombre de propiedad, especifique el nombre de la propiedad promocionada que tiene la cadena de consulta que se va a pasar a la variable. En este tutorial, ese nombre de propiedad es Query. Por último, en Espacio de nombres de propiedad, especifique el espacio de nombres de PropertySchema.xsd, que es
https://BtsSalesforceIntegration.PropertySchema
. Haga clic en OK.
En la pestaña Seguridad , en Modo de seguridad, seleccione Transporte.
En la pestaña Comportamiento, use el comportamiento personalizado que creó en Step 3d: Enabling BizTalk Server to Send and Receive Messages from Salesforce (Enviar y recibir mensajes de Salesforce) para autenticarse con Salesforce. Para usar el comportamiento, proceda como se indica a continuación:
Haga clic con el botón derecho en EndpointBehavior y seleccione Agregar extensión.
En el cuadro de diálogo Seleccionar extensión de comportamiento , seleccione Microsoft.BizTalk.Adapter.Behaviors.Demo.Salesforce. Habíamos usado este nombre de comportamiento cuando agregamos el comportamiento a machine.config.
Seleccione el comportamiento recién agregado y especifique los siguientes valores:
Parámetro Value consumerKey (obligatorio) Especifique la clave de consumidor para su cuenta de Salesforce. Para recuperar la clave de consumidor, vaya a la aplicación conectada de Salesforce que creó en el paso 2: Configurar el sistema salesforce. consumerSecret (obligatorio) Recupere el secreto de consumidor de la aplicación conectada de Salesforce que creó en el paso 2: Configurar el sistema Salesforce. Password (obligatorio) Especifique la contraseña para la cuenta de Salesforce. Para conectarse a Salesforce desde una aplicación de terceros, debe especificar la contraseña con el formato que permite el token de seguridad. Por ejemplo, si la contraseña es contraseña y el token es XXXXXX, debe escribir passwordXXXXXX
.sessionTimeout Tiene un valor predeterminado de 300. Username (obligatorio) Especifique la cuenta de inicio de sesión de desarrollador de Salesforce.
En la pestaña Mensajes , en el cuadro Mensaje saliente , en Suprimir cuerpo para verbos, escriba
GET
. Esto garantiza que, para el método GET, no haya carga de mensajes en la solicitud que se envía a Salesforce.Haga clic en Aceptar hasta que salga de todos los cuadros de diálogo abiertos.
Expanda la aplicación SalesforceIntegration , haga clic con el botón derecho en Puertos de envío, seleccione Nuevoy, a continuación, haga clic en Puerto de envío unidireccional estático.
En el cuadro de diálogo Propiedades de puerto de envío, especifique los siguientes valores:
Parámetro Value Nombre Escriba SendToSQL
.Tipo Selección de WCF-SQL Controlador de envío Seleccionar BizTalkServerAplicación Canalización de envío Seleccionar XMLTransmit En el cuadro de diálogo Propiedades del puerto de envío, haga clic en Configurar con el tipo de puerto.
En el cuadro de diálogo Propiedades de transporte WCF-SQL, especifique los siguientes valores:
En la pestaña General, realice las acciones siguientes:
En
Endpoint Address
, haga clic en Configurar. Para la propiedad InitialCatalog , especifique el nombre de la base de datos que contiene la tabla donde deben especificarse los datos de la respuesta de Salesforce. Para este tutorial, escriba este valor comoOrders
. En Propiedad Server, escriba el nombre del servidor donde está instalada SQL Server base de datos.En encabezado acción SOAP, especifique la acción que se va a usar para insertarla en la tabla OrderDetails . Debe escribir
TableOp/Insert/dbo/OrderDetails
.
En la pestaña Credenciales, si deja todo en blanco, el adaptador usará autenticación de Windows para conectarse a la base de datos de SQL Server. Si desea usar alguna otra forma de autenticación, puede especificar los valores relevantes.
Haga clic en Aceptar hasta que salga de todos los cuadros de diálogo abiertos.
En la consola de administración de BizTalk Server, haga clic con el botón derecho en la aplicación SalesforceIntegration y, a continuación, haga clic en Configurar.
En el cuadro de diálogo Configurar aplicación, seleccione la orquestación NotificationServiceClient y, en el panel derecho, haga lo siguiente:
En Host, seleccione BizTalkServerApplication.
Asigne el puerto de recepción lógico SalesforceNotificationPort al puerto de recepción físico ReceiveOppNotification.
Asigne el puerto de envío lógico SalesforceRESTInterface al puerto de envío físico , SalesforceREST.
Asigne el puerto de envío lógico SendToSQL al puerto de envío físico , SendToSQL.
Haga clic en OK.
Haga clic con el botón derecho en la aplicación SalesforceIntegration y, a continuación, haga clic en Iniciar. Esto inicia la orquestación NotificationServiceClient , habilita la ubicación de recepción e inicia el puerto de envío.
En este tema, hemos terminado de configurar la solución en BizTalk Server consola de administración asociando los puertos lógicos de la orquestación con los puertos físicos.