Configurare un'associazione client per il sistema SAP
Dopo aver generato la classe client WCF, è possibile creare un client WCF (istanza) e richiamare i relativi metodi per usare l'adapter Microsoft BizTalk per mySAP Business Suite. Per informazioni su come generare la classe client WCF e il codice helper per le operazioni esposte dall'adapter SAP, vedere Generare un client WCF o un contratto di servizio WCF per gli artefatti della soluzione SAP.
Per creare il client WCF, è necessario specificare un indirizzo endpoint e un'associazione. L'indirizzo dell'endpoint deve contenere un URI di connessione SAP valido e l'associazione deve essere un'istanza di un'associazione SAP (SAPBinding). Per altre informazioni sull'URI di connessione SAP, vedere Creare l'URI di connessione del sistema SAP.
È possibile specificare l'associazione SAP e l'indirizzo dell'endpoint nel codice o in un file di configurazione. Quando si usa il plug-in Add Adapter Service Reference Visual Studio per generare la classe client WCF, viene creato anche un file di configurazione (app.config) per il progetto. Questo file contiene le impostazioni di configurazione che riflettono le proprietà di associazione e le informazioni di connessione (ad eccezione delle credenziali) specificate quando si è connessi al sistema SAP con il plug-in Add Adapter Service Reference Plug-in.
Specifica dell'associazione e dell'indirizzo dell'endpoint nel codice
Il codice seguente illustra come creare un client WCF specificando l'indirizzo dell'associazione e dell'endpoint nel codice. È consigliabile specificare le credenziali del sistema SAP usando la proprietà ClientCredentials del client WCF anziché nell'URI di connessione fornito per l'indirizzo dell'endpoint.
// 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();
Specifica dell'associazione e dell'indirizzo dell'endpoint in un file di configurazione
Il codice seguente illustra come creare un client WCF specificando l'indirizzo dell'associazione e dell'endpoint in un file di 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();
Il codice XML seguente mostra il file di configurazione creato per la tabella EMP dal plug-in Add Adapter Service Reference Plug-in. Questo file contiene la configurazione dell'endpoint client a cui si fa riferimento nell'esempio precedente.
<?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>
Se un progetto ha più client WCF, nel file di configurazione verranno definite più voci dell'endpoint client. Ogni voce client WCF avrà un nome univoco in base alla configurazione di associazione e agli artefatti del sistema SAP di destinazione ,ad esempio Rfc e Trfc; ad esempio "SAPBinding_Rfc". Se ci si connette più volte per creare i client WCF nel progetto, verranno create più voci di configurazione dell'associazione, una per ogni connessione. Queste voci di configurazione di associazione verranno denominate nel modo seguente: SAPBinding1, SAPBinding2 e così via. Ogni voce dell'endpoint client creata durante una connessione specifica farà riferimento alla voce di associazione creata durante tale connessione.
Importante
L'adattatore SAP presenta diversi artefatti SAP dello stesso tipo (ad esempio RFC, TRFC e IDOC) come operazioni diverse dello stesso contratto di servizio. Ad esempio, due schede di rete diverse, RFC_EXAMPLE_A e RFC_EXAMPLE_B, verranno entrambe visualizzate con lo stesso contratto di servizio ("Rfc"). Ciò significa che entrambe le schede di rete verranno richiamate dalla stessa classe client WCF, RfcClient e che i parametri per entrambe le schede di rete verranno dichiarati nello stesso spazio dei nomi. Pertanto, è necessario generare il client WCF per entrambe le schede di rete durante la stessa sessione plug-in di riferimento del servizio adapter (connessione) per evitare che si verifichi una collisione dello spazio dei nomi quando si compila la soluzione.
Vedere anche
Sviluppare applicazioni SAP usando il modello di servizio WCF
Generare un client WCF o un contratto di servizio WCF per gli artefatti della soluzione SAP
Creare l'URI di connessione del sistema SAP