Freigeben über


Aufrufen skalarer Funktionen in SQL Server mithilfe von BizTalk Server

Sie können den SQL-Adapter mit BizTalk Server verwenden, um skalare Funktionen in SQL Server aufzurufen. Der Adapter macht die skalaren Funktionen als Vorgänge verfügbar, die direkt auf SQL Server aufgerufen werden können. Weitere Informationen dazu, wie der Adapter skalare Funktionen unterstützt, finden Sie unter Execute Scalar Functions in SQL Server using the SQL adapter. Informationen zur Struktur der SOAP-Nachricht zum Aufrufen skalarer Funktionen finden Sie unter Message Schemas for Procedures and Functions.

Voraussetzungen

Aufrufen skalarer Funktionen in der SQL Server-Datenbank

Das Ausführen eines Vorgangs in der 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. Zum Aufrufen skalarer Funktionen in SQL Server sind die folgenden Schritte:

  1. Erstellen Sie ein BizTalk-Projekt, und generieren Sie ein Schema für die skalare Funktion, 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 Skalarfunktionen in SQL Server mithilfe des SQL-Adapters mit BizTalk Server aufgerufen werden. Um diesen Vorgang zu veranschaulichen, führen Sie in diesem Thema die GET_EMP_ID-Funktion aus. Diese Funktion verwendet die Bezeichnung eines Mitarbeiters als Parameter und gibt die ID für diesen Mitarbeiter aus der Tabelle EMPLOYEE zurück. Die Tabelle 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 Skalarfunktionen aufgerufen werden, wird das Schema für die GET_EMP_ID Skalarfunktion 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 .

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 wird. Erstellen Sie nun Nachrichten für die Orchestrierung, und verknüpfen Sie sie mit den 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 ScalarFunction.ScalarFunction_dbo.GET_EMP_ID aus, wobei ScalarFunction der Name Ihres BizTalk-Projekts ist. ScalarFunction_dbo ist das Schema, das für die GET_EMP_ID-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 Dropdown-Liste Schemas, und wählen Sie dann ScalarFunction.ScalarFunction_dbo.GET_EMP_IDResponse 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 für das Aufrufen einer skalaren Funktion sieht wie folgt aus:

Orchestrierung zum Aufrufen skalarer Funktionen

Hinzufügen von Nachrichten-Formen

Stellen Sie sicher, dass Sie die folgenden Eigenschaften für die einzelnen Nachrichten-Shapes angeben. 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

Nachrichten für Aktions-Shapes spezifizieren und mit Ports verbinden

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.ScalarFunction.Request festlegen
NachrichtSenden - Nachricht auf Anforderung festlegen
- Vorgang auf LOBPort.ScalarFunction.Request festlegen
AntwortEmpfangen - Nachricht auf Antwort festlegen
- Vorgang auf LOBPort.ScalarFunction.Response festlegen
SendResponse - Nachricht auf Antwort festlegen
- Operation auf ResponseOut.ScalarFunction.Request festlegen

Nachdem Sie diese Eigenschaften eingegeben haben, sind die Nachrichten-Formen und Ports verbunden, und Ihre Orchestrierung ist vollständig.

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 "Orchestrierung" 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 mit der Antwort aus der SQL Server-Datenbank absendet.

    • Definieren Sie einen physischen WCF-Custom- oder WCF-SQL-Sendport zum Senden von Nachrichten an die SQL Server-Datenbank. 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 skalarer Funktionen 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 WCF-Custom oder WCF-SQL Port zum Senden von Nachrichten an die SQL Server-Datenbank wird ausgeführt.

  • 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 GET_EMP_ID Funktion entsprechen. Die Anforderungsmeldung zum Aufrufen der GET_EMP_ID-Funktion lautet beispielsweise:

<GET_EMP_ID xmlns="http://schemas.microsoft.com/Sql/2008/05/ScalarFunctions/dbo">  
  <emp_desig>Manager</emp_desig>  
</GET_EMP_ID>  

Diese Anforderungsnachricht ruft die GET_EMP_ID-Funktion auf, um die ID für Mitarbeiter mit der Bezeichnung "Manager" abzurufen. Weitere Informationen zum Anforderungsmeldungsschema zum Aufrufen skalarer Funktionen in SQL Server mithilfe des SQL-Adapters finden Sie unter Nachrichtenschemas für Prozeduren und Funktionen .

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 aus der SQL Server-Datenbank für die vorherige Anforderungsnachricht lautet beispielsweise:

<?xml version="1.0" encoding="utf-8"?>  
<GET_EMP_IDResponse xmlns="http://schemas.microsoft.com/Sql/2008/05/ScalarFunctions/dbo">  
  <GET_EMP_IDResult>10072</GET_EMP_IDResult>  
</GET_EMP_IDResponse>  

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