Freigeben über


Ausführen gespeicherter Prozeduren in SQL Server mithilfe von BizTalk Server

Der Microsoft BizTalk-Adapter für SQL Server zeigt die Prozeduren in SQL Server Datenbank als Vorgänge an. Adapterclients können die Prozeduren mithilfe des SQL-Adapters mit BizTalk Server aufrufen. Weitere Informationen dazu, wie der Adapter diese Vorgänge unterstützt, finden Sie unter Ausführen gespeicherter Prozeduren in SQL Server mithilfe des SQL-Adapters. Informationen zur Struktur der SOAP-Nachricht für diese Vorgänge finden Sie unter Nachrichtenschemas für Prozeduren und Funktionen.

Mit dem SQL-Adapter können Adapterclients außerdem Folgendes aufrufen:

Hinweis

Wenn Sie Vorgänge für Tabellen ausführen, die Spalten mit benutzerdefinierten Typen enthalten, sollten Sie sich unter Vorgänge für Tabellen und Ansichten mit User-Defined-Typen mithilfe des SQL-Adapters informieren, bevor Sie mit der Entwicklung Ihrer Anwendung beginnen.

Aufrufen von Prozeduren in SQL Server Datenbank

Das Ausführen eines Vorgangs für SQL Server Datenbank mithilfe des SQL-Adapters mit BizTalk Server umfasst prozedurale Aufgaben, die unter Bausteine beschrieben sind, um BizTalk-Anwendungen mit dem SQL-Adapter zu entwickeln. Um eine Prozedur in SQL Server Datenbank aufzurufen, sind die folgenden Aufgaben:

  • Erstellen Sie ein BizTalk-Projekt, und generieren Sie ein Schema für die Prozedur, die Sie in SQL Server Datenbank aufrufen möchten.

  • Erstellen Sie Nachrichten im BizTalk-Projekt zum Senden und Empfangen von Nachrichten an und aus SQL Server Datenbank.

  • Erstellen Sie eine Orchestrierung, um die Prozedur in SQL Server Datenbank aufzurufen.

  • Erstellen und Bereitstellen des BizTalk-Projekts.

  • Konfigurieren Sie die BizTalk-Anwendung, indem Sie physische Sende- und Empfangsports erstellen.

  • Starten Sie die BizTalk-Anwendung.

    Dieses Thema enthält Anweisungen zum Ausführen dieser Aufgaben.

Beispiel basierend auf diesem Thema

Ein Beispiel, ExecuteStoredProcedure, basierend auf diesem Thema, wird mit dem BizTalk Adapter Pack bereitgestellt. Weitere Informationen finden Sie unter Beispiele für den SQL-Adapter.

Generieren eines Schemas

In diesem Thema wird veranschaulicht, wie Sie eine Prozedur aufrufen, indem Sie die ADD_EMP_DETAILS-Prozedur aufrufen. Diese Prozedur wird erstellt, indem die mit den Beispielen bereitgestellten Skripts ausgeführt werden. Die ADD_EMP_DETAILS Prozedur akzeptiert bestimmte Parameter, fügt einen Datensatz in die TABELLE EMPLOYEE ein und gibt eine Mitarbeiter-ID für den eingefügten Datensatz zurück. Informationen zu den Beispielen und den SQL-Skripts finden Sie unter Schemabeispiele.

Um die ADD_EMP_DETAILS-Prozedur aufzurufen, ist es erforderlich, ein Schema für dieselbe Prozedur zu generieren. Weitere Informationen zum Generieren eines Schemas finden Sie unter Abrufen von Metadaten für SQL Server Vorgänge in Visual Studio mithilfe des SQL-Adapters.

Definieren von Nachrichten und Nachrichtentypen

Das Schema, das Sie zuvor generiert haben, beschreibt die "Typen", die für die Nachrichten in der Orchestrierung erforderlich sind. Eine Nachricht ist in der Regel eine Variable, deren Typ durch das entsprechende Schema definiert wird. Sie müssen nun Nachrichten für die Orchestrierung erstellen und sie mit Schemas verknüpfen, die Sie im vorherigen Schritt generiert haben.

  1. Fügen Sie dem BizTalk-Projekt eine Orchestrierung hinzu. Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf den BizTalk-Projektnamen, zeigen Sie auf Hinzufügen, und klicken Sie dann auf Neues Element. Geben Sie einen Namen für die BizTalk-Orchestrierung ein, und klicken Sie dann auf Hinzufügen.

  2. Öffnen Sie das Fenster Orchestrierungsansicht des BizTalk-Projekts, wenn dieses nicht bereits geöffnet ist. Klicken Sie hierzu auf Ansicht, zeigen Sie auf Andere Fenster, und klicken Sie dann auf Orchestrierungsansicht.

  3. Klicken Sie in der Orchestrierungsansicht mit der rechten Maustaste auf Nachrichten, und klicken Sie dann auf Neue Nachricht.

  4. Klicken Sie mit der rechten Maustaste auf die neu erstellte Nachricht, und wählen Sie dann Eigenschaftenfenster aus.

  5. Führen Sie im Bereich Eigenschaften für die Message_1 die folgenden Schritte aus:

    Option Aufgabe
    Bezeichner Geben Sie Request ein
    Nachrichtentyp Erweitern Sie in der Dropdownliste Schemas, und wählen Sie dann ExecProcedure.Procedure_dbo aus. ADD_EMP_DETAILS, wobei ExecProcedure der Name Ihres BizTalk-Projekts ist. Procedure_dbo ist das Schema, das zum Aufrufen der ADD_EMP_DETAILS-Prozedur generiert wird.
  6. Wiederholen Sie Schritt 2, um eine neue Nachricht zu erstellen. Gehen Sie im Bereich Eigenschaften für die neue Nachricht wie folgt vor:

    Option Aufgabe
    Bezeichner Geben Sie Response ein
    Nachrichtentyp Erweitern Sie in der Dropdownliste Schemas, und wählen Sie dann ExecProcedure.Procedure_dbo aus. ADD_EMP_DETAILSResponse.

Einrichten der Orchestrierung

Sie müssen eine BizTalk-Orchestrierung erstellen, um BizTalk Server zum Ausführen eines Vorgangs auf SQL Server zu verwenden. In dieser Orchestrierung löschen Sie eine Anforderungsnachricht an einem definierten Empfangsspeicherort. Der SQL-Adapter nutzt diese Nachricht und übergibt sie an SQL Server. Die Antwort von SQL Server wird an einem anderen Speicherort gespeichert. Sie müssen Senden- und Empfangen-Shapes einschließen, um Nachrichten an SQL Server bzw. Antworten zu senden und zu empfangen. Eine Beispielorchestrierung zum Aufrufen einer Prozedur ähnelt der folgenden:

Orchestrierung für Aufrufverfahren

Hinzufügen von Nachrichten-Shapes

Stellen Sie sicher, dass Sie die folgenden Eigenschaften für die einzelnen Nachrichtenformen angeben. Die in der Spalte Shape aufgeführten Namen sind die Namen der Nachrichtenformen, die in der gerade erwähnten Orchestrierung angezeigt werden.

Form Formtyp Eigenschaften
ReceiveMessage Empfangen Name aufReceiveMessage festlegen
– Legen Sie Aktivieren auf True fest.
SendMessage Send Name aufSendMessage festlegen
ReceiveResponse Empfangen Name aufReceiveResponse festlegen
– Legen Sie Aktivieren auf False fest.
SendResponse Send Name aufSendResponse festlegen

Hinzufügen von Ports

Stellen Sie sicher, dass Sie die folgenden Eigenschaften für jeden der logischen Ports angeben. Die in der Spalte Port aufgeführten Namen sind die Namen der Ports, die in der Orchestrierung angezeigt werden.

Port Eigenschaften
MessageIn - Bezeichner auf MessageIn festlegen
– Legen Sie Type auf MessageInType fest.
- Festlegen des Kommunikationsmusters auf unidirektionales Muster
- Festlegen der Kommunikationsrichtung auf Empfangen
LOBPort – Festlegen des Bezeichners auf LOBPort
– Legen Sie Type auf LOBPortType fest.
- Festlegen des Kommunikationsmusters auf Anforderungsantwort
- Festlegen der Kommunikationsrichtung auf Senden/Empfangen
ResponseOut – Festlegen des Bezeichners auf ResponseOut
– Festlegen von Typ auf ResponseOutType
- Festlegen des Kommunikationsmusters auf unidirektionales Muster
- Kommunikationsrichtung auf Senden festlegen

Angeben von Nachrichten für Aktions-Shapes und Verbinden mit Ports

Die folgende Tabelle gibt die Eigenschaften und deren Werte an, die Sie festlegen sollten, um Nachrichten für Aktionsformen anzugeben und die Nachrichten mit den Ports zu verknüpfen. Die in der Spalte Shape aufgeführten Namen sind die Namen der Nachrichtenformen, die in der zuvor erwähnten Orchestrierung angezeigt werden.

Form Eigenschaften
ReceiveMessage - Nachricht aufAnforderung festlegen
- Festlegen von Vorgang auf MessageIn.Procedure.Request
SendMessage - Nachricht aufAnforderung festlegen
- Festlegen von Operation auf LOBPort.Procedure.Request
ReceiveResponse Nachricht aufAntwort festlegen
– Festlegen von Operation auf LOBPort.Procedure.Response
SendResponse Nachricht aufAntwort festlegen
– Festlegen von Operation auf ResponseOut.Procedure.Request

Nachdem Sie diese Eigenschaften angegeben haben, sind die Nachrichtenformen und -ports verbunden, und Die Orchestrierung ist abgeschlossen.

Sie müssen jetzt die BizTalk-Lösung erstellen und in einer BizTalk Server bereitstellen. Weitere Informationen finden Sie unter Erstellen und Ausführen von Orchestrierungen.

Konfigurieren der BizTalk-Anwendung

Nachdem Sie das BizTalk-Projekt bereitgestellt haben, wird die zuvor erstellte Orchestrierung im Bereich Orchestrierungen in der BizTalk Server Verwaltungskonsole aufgeführt. Sie müssen die BizTalk Server-Verwaltungskonsole verwenden, um die Anwendung zu konfigurieren. Eine exemplarische Vorgehensweise finden Sie unter Exemplarische Vorgehensweise: Bereitstellen einer einfachen BizTalk-Anwendung.

Das Konfigurieren einer Anwendung umfasst Folgendes:

  • Auswählen eines Hosts für die Anwendung.

  • Zuordnen der Ports, die Sie in Ihrer Orchestrierung erstellt haben, zu physischen Ports in der BizTalk Server-Verwaltungskonsole. Für diese Orchestrierung müssen Sie Folgendes ausführen:

    • Definieren Sie einen Speicherort auf der Festplatte und einen entsprechenden Dateiport, an dem Sie eine Anforderungsnachricht ablegen. Die BizTalk-Orchestrierung nutzt die Anforderungsnachricht und sendet sie an SQL Server Datenbank.

    • Definieren Sie einen Speicherort auf der Festplatte und einen entsprechenden Dateiport, an dem die BizTalk-Orchestrierung die Antwortnachricht mit der Antwort aus SQL Server Datenbank entfernt.

    • Definieren Sie einen physischen WCF-Custom- oder WCF-SQL-Sendeport, um Nachrichten an SQL Server Datenbank zu senden. Sie müssen auch die Aktion im Sendeport angeben. Informationen zum Erstellen von Ports finden Sie unter Manuelles Konfigurieren einer physischen Portbindung an den SQL-Adapter.

      Hinweis

      Beim Generieren des Schemas mithilfe des BizTalk-Projekt-Add-Ins "Verbrauchadapterdienst" wird auch eine Bindungsdatei erstellt, die Informationen zu den Ports und den Aktionen enthält, die für diese Ports festgelegt werden sollen. Sie können diese Bindungsdatei aus der BizTalk Server-Verwaltungskonsole importieren, um Sendeports (für ausgehende Anrufe) zu erstellen oder Ports (für eingehende Anrufe) zu empfangen. Weitere Informationen finden Sie unter Konfigurieren einer physischen Portbindung mithilfe einer Portbindungsdatei für die Verwendung des SQL-Adapters.

Starten der Anwendung

Sie müssen die BizTalk-Anwendung zum Aufrufen von Prozeduren in SQL Server Datenbank starten. Anweisungen zum Starten einer BizTalk-Anwendung finden Sie unter Starten einer Orchestrierung.

Stellen Sie in dieser Phase Folgendes sicher:

  • Der FILE-Empfangsport zum Empfangen von Anforderungsmeldungen für die Orchestrierung wird ausgeführt.

  • Der FILE-Sendeport zum Empfangen der Antwortnachrichten von der Orchestrierung wird ausgeführt.

  • Der WCF-Custom oder WCF-SQL-Sendeport zum Senden von Nachrichten an SQL Server Datenbank ausgeführt wird.

  • Die BizTalk-Orchestrierung für den Vorgang wird ausgeführt.

Ausführen des Vorgangs

Nachdem Sie die Anwendung ausgeführt haben, müssen Sie eine Anforderungsnachricht an den FILE-Empfangsspeicherort ablegen. Das Schema für die Anforderungsnachricht muss dem Schema für die zuvor generierte Prozedur entsprechen. Die Anforderungsmeldung zum Aufrufen des GET_EMP_DETAILS lautet beispielsweise:

<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>  

Weitere Informationen zum Anforderungsmeldungsschema zum Aufrufen von Prozeduren in SQL Server Datenbank mit dem SQL-Adapter finden Sie unter Nachrichtenschemas für Prozeduren und Funktionen.

Die Orchestrierung nutzt die Nachricht und sendet sie an SQL Server Datenbank. Die Antwort aus SQL Server Datenbank wird am anderen FILE-Speicherort gespeichert, der als Teil der Orchestrierung definiert ist. Beispielsweise lautet die Antwort aus SQL Server Datenbank für die vorherige Anforderungsnachricht:

<?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>  

In der obigen Antwort enthält das <Employee_ID> Element die Mitarbeiter-ID für den eingefügten Datensatz.

Bewährte Methoden

Nachdem Sie das BizTalk-Projekt bereitgestellt und konfiguriert haben, können Sie Konfigurationseinstellungen in eine XML-Datei namens bindungsdatei exportieren. Nachdem Sie eine Bindungsdatei generiert haben, können Sie die Konfigurationseinstellungen aus der Datei importieren, sodass Sie keine Elemente wie Sendeports und Empfangsports für dieselbe Orchestrierung erstellen müssen. Weitere Informationen zu Bindungsdateien finden Sie unter Wiederverwenden von Adapterbindungen.

Weitere Informationen

Entwickeln von BizTalk-Anwendungen mithilfe des SQL-Adapters