Condividi tramite


Eseguire stored procedure in SQL Server usando BizTalk Server

L'adapter Microsoft BizTalk per SQL Server visualizza le procedure nel database SQL Server come operazioni. I client dell'adapter possono richiamare le procedure usando l'adapter SQL con BizTalk Server. Per altre informazioni su come supporta queste operazioni, vedere Eseguire stored procedure in SQL Server usando l'adapter SQL. Per informazioni sulla struttura del messaggio SOAP per queste operazioni, vedere Schemi di messaggio per procedure e funzioni.

L'adapter SQL consente anche ai client dell'adapter di richiamare:

Nota

Se si esegue l'operazione sulle tabelle con colonne di tipi definiti dall'utente, assicurarsi di fare riferimento a Operazioni su tabelle e viste con tipi di User-Defined usando l'adattatore SQL prima di iniziare a sviluppare l'applicazione.

Come richiamare le procedure in SQL Server database

L'esecuzione di un'operazione nel database SQL Server tramite l'adattatore SQL con BizTalk Server comporta attività procedurali descritte in Blocchi predefiniti per sviluppare applicazioni BizTalk con l'adapter SQL. Per richiamare una routine nel database SQL Server, queste attività sono:

  • Creare un progetto BizTalk e generare lo schema per la procedura che si vuole richiamare nel database di SQL Server.

  • Creare messaggi nel progetto BizTalk per l'invio e la ricezione di messaggi da e verso SQL Server database.

  • Creare un'orchestrazione per richiamare la procedura nel database SQL Server.

  • Compilare e distribuire il progetto BizTalk.

  • Configurare l'applicazione BizTalk creando porte di invio e ricezione fisiche.

  • Avviare l'applicazione BizTalk.

    In questo argomento vengono fornite istruzioni per eseguire queste attività.

Esempio basato su questo argomento

Un esempio, ExecuteStoredProcedure, basato su questo argomento viene fornito con bizTalk Adapter Pack. Per altre informazioni, vedere Esempi per l'adapter SQL.

Generazione dello schema

In questo argomento viene illustrato come richiamare una procedura, richiamando la procedura di ADD_EMP_DETAILS. Questa procedura viene creata eseguendo gli script forniti con gli esempi. La procedura ADD_EMP_DETAILS accetta determinati parametri, inserisce un record nella tabella EMPLOYEE e restituisce un ID dipendente per il record inserito. Per informazioni sugli esempi e sugli script SQL, vedere Esempi di schemi.

Per richiamare la procedura di ADD_EMP_DETAILS, è necessario generare lo schema per la stessa procedura. Per altre informazioni su come generare lo schema, vedere Recupero di metadati per SQL Server operazioni in Visual Studio usando l'adapter SQL.

Definizione di messaggi e tipi di messaggio

Lo schema generato in precedenza descrive i "tipi" necessari per i messaggi nell'orchestrazione. Un messaggio è in genere una variabile, il tipo per cui è definito dallo schema corrispondente. È ora necessario creare messaggi per l'orchestrazione e collegarli agli schemi generati nel passaggio precedente.

  1. Aggiungere un'orchestrazione al progetto BizTalk. Da Esplora soluzioni fare clic con il pulsante destro del mouse sul nome del progetto BizTalk, scegliere Aggiungi e quindi fare clic su Nuovo elemento. Digitare un nome per l'orchestrazione BizTalk e quindi fare clic su Aggiungi.

  2. Aprire la finestra Visualizzazione orchestrazione del progetto BizTalk, se non è già aperta. A tale scopo, fare clic su Visualizza, scegliere Altre finestre e quindi fare clic su Visualizzazione orchestrazione.

  3. In Visualizzazione orchestrazione fare clic con il pulsante destro del mouse su Messaggi e quindi scegliere Nuovo messaggio.

  4. Fare clic con il pulsante destro del mouse sul messaggio appena creato e quindi selezionare Finestra proprietà.

  5. Nel riquadro Proprietà per il Message_1 eseguire le operazioni seguenti:

    Usare Per
    Identificatore Digitare Request
    Tipo di messaggio Nell'elenco a discesa espandere Schemi e quindi selezionare ExecProcedure.Procedure_dbo. ADD_EMP_DETAILS, dove ExecProcedure è il nome del progetto BizTalk. Procedure_dbo è lo schema generato per richiamare la procedura di ADD_EMP_DETAILS.
  6. Ripetere il passaggio 2 per creare un nuovo messaggio. Nel riquadro Proprietà per il nuovo messaggio eseguire le operazioni seguenti:

    Usare Per
    Identificatore Digitare Response
    Tipo di messaggio Nell'elenco a discesa espandere Schemi e quindi selezionare ExecProcedure.Procedure_dbo. ADD_EMP_DETAILSResponse.

Configurazione dell'orchestrazione

È necessario creare un'orchestrazione BizTalk per usare BizTalk Server per eseguire un'operazione in SQL Server. In questa orchestrazione si rilascia un messaggio di richiesta in una posizione di ricezione definita. L'adattatore SQL usa questo messaggio e lo passa a SQL Server. La risposta da SQL Server viene salvata in un'altra posizione. È necessario includere rispettivamente le forme Invia e Ricezione per inviare messaggi a SQL Server e ricevere risposte. Un'orchestrazione di esempio per richiamare una procedura è simile alla seguente:

Orchestrazione per richiamare procedure

Aggiunta di forme di messaggio

Assicurarsi di specificare le proprietà seguenti per ognuna delle forme del messaggio. I nomi elencati nella colonna Shape sono i nomi delle forme del messaggio visualizzate nell'orchestrazione appena menzionata.

Forma Tipo di forma Proprietà
ReceiveMessage Ricevere - Impostare nome su ReceiveMessage
- Impostare Attiva su True
SendMessage Send - Impostare nome su SendMessage
ReceiveResponse Ricevere - Impostare nome su ReceiveResponse
- Impostare Attiva su False
SendResponse Send - Impostare nome su SendResponse

Aggiunta di porte

Assicurarsi di specificare le proprietà seguenti per ognuna delle porte logiche. I nomi elencati nella colonna Porta sono i nomi delle porte visualizzate nell'orchestrazione.

Porta Proprietà
MessageIn - Impostare identificatore su MessageIn
- Impostare tipo su MessageInType
- Impostare il modello di comunicazionesu unidirezionale
- Impostare la direzione di comunicazione su Ricezione
LOBPort - Impostare l'identificatore su LOBPort
- Impostare il tipo su LOBPortType
- Impostare il modello di comunicazione su Request-Response
- Impostare la direzione di comunicazione su Send-Receive
ResponseOut - Impostare l'identificatore su ResponseOut
- Impostare il tipo su ResponseOutType
- Impostare il modello di comunicazionesu unidirezionale
- Impostare la direzione di comunicazione su Invia

Specificare i messaggi per le forme azione e connetterli alle porte

Nella tabella seguente vengono specificate le proprietà e i relativi valori che è necessario impostare per specificare i messaggi per le forme azione e collegare i messaggi alle porte. I nomi elencati nella colonna Shape sono i nomi delle forme del messaggio visualizzate nell'orchestrazione menzionata in precedenza.

Forma Proprietà
ReceiveMessage - Impostare il messaggio su Richiesta
- Impostare l'operazione su MessageIn.Procedure.Request
SendMessage - Impostare il messaggio su Richiesta
- Impostare l'operazione su LOBPort.Procedure.Request
ReceiveResponse - Impostare il messaggio su Risposta
- Impostare l'operazione su LOBPort.Procedure.Response
SendResponse - Impostare il messaggio su Risposta
- Impostare l'operazione su ResponseOut.Procedure.Request

Dopo aver specificato queste proprietà, le forme e le porte del messaggio sono connesse e l'orchestrazione è completata.

È ora necessario compilare la soluzione BizTalk e distribuirla in un BizTalk Server. Per altre informazioni, vedere Compilazione ed esecuzione di orchestrazioni.

Configurazione dell'applicazione BizTalk

Dopo aver distribuito il progetto BizTalk, l'orchestrazione creata in precedenza è elencata nel riquadro Orchestrazioni nella console di amministrazione di BizTalk Server. Per configurare l'applicazione, è necessario usare la console di amministrazione di BizTalk Server. Per una procedura dettagliata, vedere Procedura dettagliata: Distribuzione di un'applicazione BizTalk di base.

La configurazione di un'applicazione prevede:

  • Selezione di un host per l'applicazione.

  • Mapping delle porte create nell'orchestrazione alle porte fisiche nella console di amministrazione di BizTalk Server. Per questa orchestrazione è necessario:

    • Definire un percorso sul disco rigido e una porta file corrispondente in cui si rilascia un messaggio di richiesta. L'orchestrazione BizTalk utilizzerà il messaggio di richiesta e lo invierà a SQL Server database.

    • Definire un percorso sul disco rigido e una porta file corrispondente in cui l'orchestrazione BizTalk rilascia il messaggio di risposta contenente la risposta da SQL Server database.

    • Definire una porta di trasmissione fisica WCF-Custom o WCF-SQL per inviare messaggi a SQL Server database. È inoltre necessario specificare l'azione nella porta di trasmissione. Per informazioni su come creare porte, vedere Configurare manualmente un'associazione di porte fisiche all'adapter SQL.

      Nota

      La generazione dello schema tramite il componente aggiuntivo Del progetto BizTalk del servizio adapter di utilizzo crea anche un file di associazione contenente informazioni sulle porte e le azioni da impostare per tali porte. È possibile importare questo file di associazione dalla console di amministrazione di BizTalk Server per creare porte di trasmissione (per chiamate in uscita) o porte di ricezione (per le chiamate in ingresso). Per altre informazioni, vedere Configurare un'associazione di porte fisiche usando un file di associazione di porte per l'uso dell'adattatore SQL.

Avvio dell'applicazione

È necessario avviare l'applicazione BizTalk per richiamare le procedure in SQL Server database. Per istruzioni sull'avvio di un'applicazione BizTalk, vedere Come avviare un'orchestrazione.

In questa fase, assicurarsi di:

  • La porta di ricezione FILE per ricevere messaggi di richiesta per l'orchestrazione è in esecuzione.

  • La porta di trasmissione FILE per ricevere i messaggi di risposta dall'orchestrazione è in esecuzione.

  • La porta di trasmissione WCF-Custom o WCF-SQL per inviare messaggi a SQL Server database è in esecuzione.

  • L'orchestrazione BizTalk per l'operazione è in esecuzione.

Esecuzione dell'operazione

Dopo aver eseguito l'applicazione, è necessario eliminare un messaggio di richiesta nel percorso di ricezione FILE. Lo schema per il messaggio di richiesta deve essere conforme allo schema per la procedura generata in precedenza. Ad esempio, il messaggio di richiesta per richiamare il GET_EMP_DETAILS è:

<ADD_EMP_DETAILS xmlns="mssql://Microsoft.LobServices.Sql/2008/01/Procedures/dbo">  
  <emp_name>John</emp_name>  
  <emp_desig>Developer</emp_desig>  
  <salary>100000</salary>  
</ADD_EMP_DETAILS>  

Per altre informazioni sullo schema dei messaggi di richiesta per richiamare le procedure nel database SQL Server tramite l'adapter SQL, vedere Message Schemas for Procedures and Functions .See Message Schemas for Procedures and Functions for more information about the request message schema for invoking procedures in SQL Server database using the SQL adapter.

L'orchestrazione utilizza il messaggio e lo invia a SQL Server database. La risposta da SQL Server database viene salvata nell'altro percorso FILE definito come parte dell'orchestrazione. Ad esempio, la risposta da SQL Server database per il messaggio di richiesta precedente è:

<?xml version="1.0" encoding="utf-8" ?>   
<ADD_EMP_DETAILSResponse xmlns="mssql://Microsoft.LobServices.Sql/2008/01/Procedures/dbo">  
  <ADD_EMP_DETAILSResult>  
    <DataSet xmlns="http://schemas.datacontract.org/2004/07/System.Data">  
      <xs:schema id="NewDataSet" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">  
        <xs:element msdata:IsDataSet="true" name="NewDataSet">  
          <xs:complexType>  
            <xs:sequence>  
              <xs:element minOccurs="0" maxOccurs="unbounded" name="NewTable">  
                <xs:complexType>  
                  <xs:sequence>  
                    <xs:element minOccurs="0" name="Employee_ID" type="xs:int" />   
                  </xs:sequence>  
                </xs:complexType>  
              </xs:element>  
            </xs:sequence>  
          </xs:complexType>  
        </xs:element>  
      </xs:schema>  
      <diffgr:diffgram xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">  
        <NewDataSet xmlns="">  
          <NewTable>  
            <Employee_ID>10001</Employee_ID>   
          </NewTable>  
        </NewDataSet>  
      </diffgr:diffgram>  
    </DataSet>  
  </ADD_EMP_DETAILSResult>  
  <ReturnValue>0</ReturnValue>   
</ADD_EMP_DETAILSResponse>  

Nella risposta precedente l'elemento <Employee_ID> contiene l'ID dipendente per il record inserito.

Procedure consigliate

Dopo aver distribuito e configurato il progetto BizTalk, è possibile esportare le impostazioni di configurazione in un file XML denominato file di associazione. Dopo aver generato un file di associazione, è possibile importare le impostazioni di configurazione dal file, in modo che non sia necessario creare elementi come le porte di trasmissione e le porte di ricezione per la stessa orchestrazione. Per altre informazioni sui file di associazione, vedere Riutilizzare le associazioni degli adattatori.

Vedere anche

Sviluppare applicazioni BizTalk tramite l'adapter SQL