Compartir a través de


Configuración de un enlace de cliente para el sistema SAP

Después de generar 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 obtener 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 SAP Binding y la dirección del endpoint en su código o en un archivo de configuración. Cuando se usa el complemento de Visual Studio "Agregar referencia de servicio de adaptador" para generar la clase de cliente WCF, se crea también un archivo de configuración (app.config) para su 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ó cuando se conectó 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. Se recomienda 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 la vinculación 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 la dirección de enlace y 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 Agregar referencia de servicio de adaptador. 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 operaciones diferentes 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 del complemento Add Adapter Service Reference (conexión) para evitar experimentar una colisión de espacio de nombres al compilar la solución.

Véase 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