Configuración de un enlace de cliente para el sistema SAP
Después de haber generado la clase de cliente WCF, puede crear un cliente WCF (instancia) e invocar sus métodos para consumir el adaptador de Microsoft BizTalk para mySAP Business Suite. Para obtener información sobre cómo generar la clase de cliente WCF y el código auxiliar para las operaciones que expone el adaptador de SAP, consulte Generación de un cliente WCF o un contrato de servicio WCF para artefactos de solución de SAP.
Para crear el cliente WCF, debe especificar una dirección de punto de conexión y un enlace. La dirección del punto de conexión debe contener un URI de conexión de SAP válido y el enlace debe ser una instancia de un enlace de SAP (SAPBinding). Para más información sobre el URI de conexión de SAP, consulte Creación del URI de conexión del sistema SAP.
Puede especificar el enlace de SAP y la dirección del punto de conexión en el código o en un archivo de configuración. Cuando se usa el complemento Agregar referencia de servicio de adaptador de Visual Studio para generar la clase de cliente WCF, también se crea un archivo de configuración (app.config) para el proyecto. Este archivo contiene opciones de configuración que reflejan las propiedades de enlace y la información de conexión (excepto las credenciales) que especificó al conectarse al sistema SAP con el complemento Agregar referencia de servicio de adaptador.
Especificar el enlace y la dirección del punto de conexión en el código
En el código siguiente se muestra cómo crear un cliente WCF especificando el enlace y la dirección del punto de conexión en el código. Es recomendable especificar las credenciales del sistema SAP mediante la propiedad ClientCredentials del cliente WCF en lugar de en el URI de conexión proporcionado para la dirección del punto de conexión.
// A WCF client that targets an RFC is created
// by using a binding object and endpoint address
SAPBinding sapBinding = new SAPBinding();
EndpointAddress sapAddress = new EndpointAddress("sap://CLIENT=800;LANG=EN;@a/YourSAPHost/00");
RfcClient rfcClient = new RfcClient(sapBinding, sapAddress);
rfcClient.ClientCredentials.UserName.UserName = "YourUserName";
rfcClient.ClientCredentials.UserName.Password = "YourPassword";
rfcClient.Open();
Especificar el enlace y la dirección del punto de conexión en un archivo de configuración
En el código siguiente se muestra cómo crear un cliente WCF especificando el enlace y la dirección del punto de conexión en un archivo app.config.
// A WCF client that targets an RFC is created
// by specifying the client endpoint information in app.config
RfcClient rfcClient = new RfcClient("SAPBinding_Rfc");
rfcClient.ClientCredentials.UserName.UserName = "YourUserName";
rfcClient.ClientCredentials.UserName.Password = "YourPassword";
rfcClient.Open();
El siguiente XML muestra el archivo de configuración creado para la tabla EMP mediante el complemento Add Adapter Service Reference. Este archivo contiene la configuración del punto de conexión de cliente a la que se hace referencia en el ejemplo anterior.
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<system.serviceModel>
<bindings>
<sapBinding>
<binding name="SAPBinding" closeTimeout="00:01:00" openTimeout="00:01:00"
receiveTimeout="00:10:00" sendTimeout="00:01:00" receiveIdocFormat="Typed"
generateFlatFileCompatibleIdocSchema="true" maxConnectionsPerSystem="50"
enableConnectionPooling="true" idleConnectionTimeout="00:15:00"
flatFileSegmentIndicator="SegmentDefinition" enablePerformanceCounters="false"
autoConfirmSentIdocs="false"
acceptCredentialsInUri="false" padReceivedIdocWithSpaces="false"
enableBizTalkCompatibilityMode="false" />
</sapBinding>
</bindings>
<client>
<endpoint address="sap://CLIENT=800;LANG=EN;@a/YourSAPHost/00?RfcSdkTrace=False&AbapDebug=False&UseSapGui=Without"
binding="sapBinding" bindingConfiguration="SAPBinding" contract="Rfc"
name="SAPBinding_Rfc" />
</client>
</system.serviceModel>
</configuration>
Si un proyecto tiene más de un cliente WCF, habrá varias entradas de punto de conexión de cliente definidas en el archivo de configuración. Cada entrada de cliente WCF tendrá un nombre único en función de su configuración de enlace y de los artefactos del sistema SAP de destino (como Rfc y Trfc); por ejemplo, "SAPBinding_Rfc". Si se conecta varias veces para crear los clientes WCF en el proyecto, se crearán varias entradas de configuración de enlace, una para cada conexión. Estas entradas de configuración de enlace se denominarán de la siguiente manera: SAPBinding1, SAPBinding2, etc. Cada entrada de punto de conexión de cliente creada durante una conexión específica hará referencia a la entrada de enlace creada durante esa conexión.
Importante
El adaptador de SAP muestra diferentes artefactos de SAP del mismo tipo (como RFC, TRFC e IDOC) como diferentes operaciones del mismo contrato de servicio. Por ejemplo, dos RFC diferentes, RFC_EXAMPLE_A y RFC_EXAMPLE_B, se mostrarán en el mismo contrato de servicio ("Rfc"). Esto significa que ambas RFC se invocarán mediante la misma clase de cliente WCF, RfcClient y que los parámetros de ambas RFC se declararán en el mismo espacio de nombres. Por lo tanto, debe generar el cliente WCF para ambas RFC durante la misma sesión de complemento de referencia del servicio de adaptadores (conexión) para evitar experimentar una colisión de espacio de nombres al compilar la solución.
Consulte también
Desarrollo de aplicaciones SAP mediante el modelo de servicio WCF
Generación de un cliente WCF o un contrato de servicio WCF para artefactos de solución de SAP
Creación del URI de conexión del sistema SAP