Condividi tramite


Uso dello strumento utilità metadati ServiceModel con l'adapter BizTalk per mySAP Business Suite

È possibile usare lo Strumento utilità metadati ServiceModel (svcutil.exe) per generare una classe client WCF o un contratto di servizio WCF (interfaccia) per le operazioni esposte dall'adapter Microsoft BizTalk per mySAP Business Suite. Dopo aver eseguito svcutil.exe per generare una classe client WCF o un contratto di servizio WCF, è possibile includere il file generato nel codice e creare istanze della classe generata o implementare un servizio WCF dall'interfaccia generata per eseguire operazioni sul sistema SAP.

Per usare svcutil.exe è necessario specificare un URI di connessione contenente le credenziali. Poiché, per impostazione predefinita, l'adattatore SAP disabilita le credenziali nell'URI di connessione, è necessario configurare svcutil.exe per usare un'associazione non predefinita per l'adapter SAP. È anche possibile configurare altre proprietà di associazione nell'associazione non predefinita; Ad esempio, per creare un client WCF per le operazioni BAPI, è necessario impostare la proprietà di associazione EnableSafeTyping su true.

Le sezioni seguenti illustrano come configurare svcutil.exe e come usare svcutil.exe per generare codice client WCF o un contratto di servizio WCF con l'adapter SAP.

Configurazione di svcutil.exe per l'adapter SAP

Per configurare svcutil.exe per l'uso di un'associazione non predefinita, è necessario creare una copia locale di svcutil.exe e quindi creare o modificare una copia locale del file di configurazione svcutil.exe.config.

  1. Creare una cartella e copiare svcutil.exe nella nuova cartella. In genere è possibile trovare svcutil.exe nel percorso di installazione di Windows SDK, in particolare C:\Programmi\Microsoft SDKs\Windows\v6.0\Bin.

  2. Creare un file denominato svcutil.exe.config nella nuova cartella.

  3. Aggiungere un'associazione e un endpoint client al file svcutil.exe.config. È necessario eseguire svcutil.exe dalla nuova cartella per assicurarsi che venga usata la configurazione corretta.

    Importante

    L'attributo name dell'endpoint client deve specificare lo schema usato nell'URI di connessione. Per questo valore viene applicata la distinzione tra maiuscole e minuscole.

    <configuration>  
      <system.serviceModel>  
        <client>  
          <!-- the name should match the required scheme of the WS-Metadata Exchange endpoint   
          and the contract should be "IMetadataExchange" -->  
          <endpoint name="sap"  
                    binding="sapBinding"  
                    bindingConfiguration="SAPBinding"  
                    contract="IMetadataExchange" />  
        </client>  
        <bindings>  
          <sapBinding>  
            <binding name="SAPBinding" acceptCredentialsInUri="true"/>  
          </sapBinding>  
        </bindings>  
    
      </system.serviceModel>  
    
    </configuration>  
    

    È possibile impostare una delle proprietà di associazione dell'adattatore SAP nella configurazione dell'associazione. Ad esempio, è possibile specificare l'associazione non predefinita seguente per usare svcutil.exe per generare un client WCF per le operazioni BAPI.

<bindings>  
  <sapBinding>  
    <binding name="SAPBinding" acceptCredentialsInUri="true"/>  
  </sapBinding>  
</bindings>  

Per altre informazioni sulla configurazione di un'associazione non predefinita per svcutil.exe, vedere l'endpoint di metadati sicuri personalizzati.

Creazione di una classe client WCF o di un contratto di servizio WCF con svcutil.exe

Per utilizzare svcutil.exe per generare codice client WCF o un'interfaccia (interfaccia) del contratto di servizio WCF per l'adattatore SAP, è necessario fornire un URI di connessione che specifica un endpoint di Exchange (MEX) WS-Metadata e l'operazione o le operazioni per cui si desidera svcutil.exe generare codice. È anche necessario specificare le credenziali di connessione per il sistema SAP nell'URI di connessione.

Nota

Prima di poter usare svcutil.exe con l'adattatore SAP, è necessario configurarlo per usare un'associazione non predefinita; per informazioni su come eseguire questa operazione, vedere Configuring svcutil.exe for the SAP Adapter .For information about how to do this, see Configuring svcutil.exe for the SAP Adapter.

Specificare un endpoint MEX e le operazioni di destinazione nell'URI di connessione della scheda SAP nel modo seguente:

  • È necessario includere il parametro "wsdl" nella stringa di query. Se è il primo parametro nella stringa di query, viene specificato subito dopo il punto interrogativo (?). Se non è il primo parametro, deve essere preceduto da una e commerciale (&).

  • È necessario seguire il parametro "wsdl" in base a uno o più parametri "op". Ogni parametro "op" è preceduto da una e commerciale (&) e specifica l'ID nodo di un'operazione di destinazione.

    I tre esempi seguenti illustrano come impostare come destinazione varie operazioni usando svcutil.exe.

    In questo esempio viene creata una classe client WCF per RFC_CALCULATE_TAXES.

    .\svcutil "sap://User=YourUserName; Passwd=YourPassword; Client=800; Lang=EN;@a/YourSAPHost/00?wsdl&op=http://Microsoft.LobServices.Sap/2007/03/Rfc/RFC_CALCULATE_TAXES"

    In questo esempio viene creata una classe client WCF sia per il SALESORDER_CREATEFROMDAT201 che per SALESORDER_CREATEFROMDAT202 IDOC.

    .\svcutil "sap://User=YourUserName; Passwd=YourPassword; Client=800; Lang=EN;@a/YourSAPHost/00?wsdl&op=http://Microsoft.LobServices.Sap/2007/03/Idoc/3/SALESORDER_CREATEFROMDAT201//620/Send&op=http://Microsoft.LobServices.Sap/2007/03/Idoc/3/SALESORDER_CREATEFROMDAT202//620/Send"

    In questo esempio viene creato un contratto di servizio WCF per ricevere il SALESORDER_CREATEFROMDAT201 IDOC dal sistema SAP. L'ID NODO specifica un'operazione di ricezione. Poiché questo esempio riguarda il recupero dei metadati, non è necessario specificare i parametri del listener nella query_string dell'URI di connessione.

    .\svcutil "sap://User=YourUserName; Passwd=YourPassword; Client=800; Lang=EN;@a/YourSAPHost/00?wsdl&op=http://Microsoft.LobServices.Sap/2007/03/Idoc/3/SALESORDER_CREATEFROMDAT201//620/Receive"

Importante

È necessario inserire l'URI di connessione tra virgolette nella riga di comando. In caso contrario, svcutil.exe tenta di recuperare i metadati per le operazioni non supportate dall'adapter SAP. I risultati di un tentativo di questo tipo non sono definiti.

Per impostazione predefinita, svcutil.exe inserisce il codice generato nel file output.cs; È tuttavia possibile modificare il nome del file di output e molte altre opzioni usate svcutil.exe impostando le opzioni della riga di comando. Per altre informazioni sulle opzioni supportate da svcutil.exe, vedere ServiceModel Metadata Utility Tool (Svcutil.exe) .For more information about the options that svcutil.exe supports, see the ServiceModel Metadata Utility Tool (Svcutil.exe).

Svcutil.exe non offre la possibilità di cercare le operazioni, ad esempio usando caratteri jolly. È necessario specificare in modo esplicito gli ID nodo per le operazioni specifiche di destinazione. L'ID nodo di un'operazione equivale alla stringa di azione del messaggio. Non è possibile specificare GLI ID nodo che fanno riferimento solo alle categorie. Per altre informazioni sugli ID nodo esposti dall'adattatore SAP, vedere ID dei nodi dei metadati.

Il plug-in Aggiungi riferimento al servizio adapter di Visual Studio offre funzionalità avanzate di ricerca e esplorazione che possono semplificare notevolmente la generazione di una classe client WCF e di un contratto di servizio WCF. Per altre informazioni sul plug-in Di riferimento del servizio adapter, vedere Generare un client WCF o un contratto di servizio WCF per gli artefatti della soluzione SAP.