Freigeben über


Aufrufen Table-Valued Funktionen in SQL Server mithilfe von BizTalk Server

Sie können den SQL-Adapter mit BizTalk Server verwenden, um Tabellenwertfunktionen in SQL Server aufzurufen. Der Adapter macht die Tabellenwertfunktionen als Vorgänge verfügbar, die direkt auf SQL Server aufgerufen werden können. Weitere Informationen dazu, wie der Adapter Tabellenwertfunktionen unterstützt, finden Sie unter Ausführen von Table-Valued Funktionen in SQL Server mithilfe des SQL-Adapters. Informationen zur Struktur der SOAP-Nachricht zum Aufrufen von Tabellenwertfunktionen finden Sie unter Message Schemas for Procedures and Functions.

Voraussetzungen

Aufrufen von Tabellenwertfunktionen in einer SQL Server-Datenbank

Das Ausführen eines Vorgangs für eine SQL Server-Datenbank mithilfe des SQL-Adapters mit BizTalk Server umfasst verfahrene Aufgaben, die in Bausteinen zum Entwickeln von BizTalk-Anwendungen mit dem SQL-Adapter beschrieben werden. Um Tabellenwertfunktionen in SQL Server aufzurufen, führen Sie die folgenden Aufgaben aus:

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

  2. Erstellen Sie Nachrichten im BizTalk-Projekt zum Senden und Empfangen von Nachrichten von SQL Server.

  3. Erstellen Sie eine Orchestrierung, um den Vorgang auf SQL Server aufzurufen.

  4. Erstellen und Bereitstellen des BizTalk-Projekts.

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

  6. Starten Sie die BizTalk-Anwendung.

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

Schema generieren

In diesem Thema wird veranschaulicht, wie Tabellenwertfunktionen in SQL Server mithilfe des SQL-Adapters mit BizTalk Server aufgerufen werden. Um diesen Vorgang zu veranschaulichen, führen Sie in diesem Thema die TVF_EMPLOYEE-Funktion aus. Diese Funktion verwendet die Bezeichnung eines Mitarbeiters als Parameter und gibt alle Mitarbeiterdatensätze mit dieser Bezeichnung als Tabellentyp zurück. Die Tabelle "Mitarbeiter" und die Funktion werden erstellt, indem die skripts ausgeführt werden, die mit den Beispielen bereitgestellt werden. Weitere Informationen zum Skript finden Sie unter Beispiele für den SQL-Adapter.

Um zu veranschaulichen, wie Tabellenwertfunktionen aufgerufen werden, wird das Schema für die TVF_EMPLOYEE Tabellenwertfunktion generiert. Sie müssen ein BizTalk-Projekt erstellen und das Add-In "Adapterdienst konsumieren" verwenden, um das Schema zu generieren. Weitere Informationen zum Generieren von 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 für die Nachrichten in der Orchestrierung erforderlichen "Typen". Eine Nachricht ist in der Regel eine Variable, deren Typ durch das entsprechende Schema definiert ist. Erstellen Sie nun Nachrichten für die Orchestrierung, und verknüpfen Sie sie mit Schemas, die Sie im vorherigen Schritt generiert haben.

  1. Fügen Sie dem BizTalk-Projekt eine Orchestrierung hinzu. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Namen des BizTalk-Projekts, 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 es noch nicht geöffnet ist. Klicken Sie dazu 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. Gehen Sie im Eigenschaftenbereich für die Message_1 wie folgt vor:

    Verwenden Sie diese Aktion
    Kennung Geben Sie Request ein
    Nachrichtentyp Erweitern Sie in der Dropdownliste Schemas, und wählen Sie dann TableFunctions.TableValuedFunction_dbo.TVF_EMPLOYEE aus, wobei TableFunctions der Name Ihres BizTalk-Projekts ist. TableValuedFunction_dbo ist das Schema, das für die TVF_EMPLOYEE-Funktion generiert wird.
  6. Wiederholen Sie Schritt 2, um eine neue Nachricht zu erstellen. Gehen Sie im Eigenschaftenbereich für die neue Nachricht wie folgt vor:

    Verwenden Sie diese Aktion
    Kennung Geben Sie Response ein
    Nachrichtentyp Erweitern Sie in der Dropdownliste Schemas und wählen Sie dann TableFunctions.TableValuedFunction_dbo.TVF_EMPLOYEEResponse aus.

Einrichten der Orchestrierung

Erstellen Sie eine BizTalk-Orchestrierung, um BizTalk Server zum Ausführen eines Vorgangs auf SQL Server zu verwenden. In dieser Orchestrierung legen Sie eine Anforderungsnachricht an einem definierten Empfangsort ab. Der SQL-Adapter verwendet diese Meldung 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 zu senden und Antworten zu empfangen. Eine Beispiel-Orchestrierung zum Aufrufen einer Tabellenwertfunktion sieht wie folgt aus:

Orchestrierung zum Aufrufen einer Tabellenwertfunktion

Hinzufügen von Nachrichten-Formen

Geben Sie die folgenden Eigenschaften für jede der Nachrichten-Shapes ein. Die in der Spalte "Shape" aufgeführten Namen sind die der Nachrichten-Shapes, die in der gerade erwähnten Orchestrierung angezeigt werden.

Gestalt Shape-Typ Eigenschaften
NachrichtEmpfangen Empfangen - Name aufReceiveMessage festlegen
- Setze Aktivieren auf True
NachrichtSenden Senden - Name auf SendMessage setzen
AntwortEmpfangen Empfangen - Name auf den Wert ReceiveResponse setzen
- Setze Aktivieren auf Falsch
SendResponse Senden - Name auf SendResponse setzen

Hinzufügen von Ports

Geben Sie die folgenden Eigenschaften für jeden der logischen Ports ein. Die in der Spalte "Port" aufgeführten Namen sind die Namen der Ports, die in der Orchestrierung angezeigt werden.

Hafen Eigenschaften
MessageIn - Bezeichner auf MessageIn setzen
- 'Type' auf MessageInType festlegen
- Kommunikationsmuster auf Einweg festlegen
- Setze Kommunikationsrichtung auf Empfangen
LOBPort - Bezeichner auf LOBPort setzen
- 'Type' auf 'LOBPortType' festlegen
- Kommunikationsmuster auf Anfrage-Antwort festlegen
- Kommunikationsrichtung auf "Senden-Empfangen" festlegen
ResponseOut - Bezeichner wird auf ResponseOut festgelegt
- Setzen Sie den Typ auf ResponseOutType
- Kommunikationsmuster auf Einweg festlegen
- Kommunikationsrichtung auf "Senden" festlegen

Geben Sie Nachrichten für Aktions-Shapes ein, und verbinden Sie sie mit Ports.

In der folgenden Tabelle werden die Eigenschaften und deren Werte angegeben, die Sie festlegen sollten, um Nachrichten für Aktions-Shapes anzugeben und die Nachrichten mit den Ports zu verknüpfen. Die in der Spalte "Shape" aufgeführten Namen sind die Namen der Nachrichten-Shapes, wie in der zuvor erwähnten Orchestrierung angezeigt.

Gestalt Eigenschaften
NachrichtEmpfangen - Nachricht auf Anforderung festlegen
- Vorgang auf MessageIn.TVF.Request festlegen
NachrichtSenden - Nachricht auf Anforderung festlegen
- Vorgang auf LOBPort.TVF.Request festlegen
AntwortEmpfangen - Nachricht auf Antwort festlegen
- Operation auf LOBPort.TVF.Response festlegen
SendResponse - Nachricht auf Antwort festlegen
- Vorgang auf ResponseOut.TVF.Request festlegen

Nachdem Sie diese Eigenschaften angegeben haben, werden die Nachrichten-Shapes und Ports verbunden, und Ihre Orchestrierung ist abgeschlossen.

Erstellen Sie nun die BizTalk-Lösung, und stellen Sie sie auf BizTalk Server bereit. Weitere Informationen finden Sie unter Building and Running Orchestrations.

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 Walkthrough: Deploying a Basic BizTalk Application.

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:

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

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

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

      Hinweis

      Durch das Generieren des Schemas mithilfe des Add-Ins "Verbrauchsadapterdienst BizTalk Project" 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) oder Empfangsports (für eingehende Anrufe) zu erstellen. Weitere Informationen finden Sie unter Konfigurieren einer physischen Portbindung mithilfe einer Portbindungsdatei zur Verwendung des SQL-Adapters.

Starten der Anwendung

Starten Sie die BizTalk-Anwendung zum Aufrufen von Tabellenwertfunktionen in der SQL Server-Datenbank. Anweisungen zum Starten einer BizTalk-Anwendung finden Sie unter "So starten Sie eine Orchestrierung".

Stellen Sie in dieser Phase folgendes sicher:

  • Der FILE-Empfangsanschluss zum Erhalten von Anforderungsmeldungen für die Orchestrierung ist in Betrieb.

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

  • Der Sendport WCF-Custom oder WCF-SQL, um Nachrichten an die SQL Server-Datenbank zu senden, läuft.

  • 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 Anforderungsmeldung am Eingangs-Ort für DATEI ablegen. Das Schema für die Anforderungsnachricht muss dem Schema für die zuvor generierte TVF_EMPLOYEE Tabellenwertfunktion entsprechen. Die Anforderungsnachricht zum Aufrufen der TVF_EMPLOYEE-Funktion lautet beispielsweise:

<TVF_EMPLOYEE xmlns="http://schemas.microsoft.com/Sql/2008/05/TableValuedFunctions/dbo">  
  <emp_desig>Tester</emp_desig>  
</TVF_EMPLOYEE>  

Diese Anforderungsnachricht ruft die TVF_EMPLOYEE-Funktion auf, um Mitarbeiterdatensätze mit der Bezeichnung "Tester" abzurufen. Weitere Informationen zum Anforderungsnachrichtenschema zum Aufrufen von Tabellenwertfunktionen in SQL Server mithilfe des SQL-Adapters finden Sie unter Nachrichtenschemas für Prozeduren und Funktionen .

Hinweis

Wenn Sie keinen Wert für den Parameter angeben, führt der Adapter die Funktion intern mithilfe des DEFAULT-Schlüsselworts aus. Dies bedeutet, dass der Adapter die Funktion ausführt, indem der Standardwert für den Parameter übergeben wird, sofern er als Teil der Funktionsdefinition verfügbar ist.

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

<?xml version="1.0" encoding="utf-8" ?>   
<TVF_EMPLOYEEResponse xmlns="http://schemas.microsoft.com/Sql/2008/05/TableValuedFunctions/dbo">  
  <TVF_EMPLOYEEResult>  
    <TVF_EMPLOYEE xmlns="http://schemas.microsoft.com/Sql/2008/05/Types/TableFunctionReturnTables/dbo">  
      <Employee_ID>10499</Employee_ID>   
      <Name>John</Name>   
      <Designation>Tester</Designation>   
      <Salary>999999.00</Salary>   
      <Last_Modified>AAAAAAAAJBM=</Last_Modified>   
    </TVF_EMPLOYEE>  
    <TVF_EMPLOYEE xmlns="http://schemas.microsoft.com/Sql/2008/05/Types/TableFunctionReturnTables/dbo">  
      ......  
      ......  
    </TVF_EMPLOYEE>  
    ......  
    ......  
  </TVF_EMPLOYEEResult>  
</TVF_EMPLOYEEResponse>  

Bewährte Methoden

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

Siehe auch

Entwickeln von BizTalk-Anwendungen mithilfe des SQL-Adapters