ExpenseReportSubmission
Das ExpenseReportSubmission-Beispiel veranschaulicht, wie ein Dokument von einem umfangreichen Client wie Microsoft Excel an eine BizTalk Server Orchestrierung übermittelt wird.
Rich Clients ermöglichen das Ausführen zahlreicher Aktionen auf dem Client, z. B. Datenüberprüfung Vorberechnungen. Auf diese Weise wird die Anzahl der Interaktionen mit dem Back-End-Server verringert. Dies kann sinnvoll sein, wenn nur Verbindungen mit geringer Bandbreite zur Verfügung stehen.
Voraussetzungen
Sie müssen sicherstellen, dass Ihre Entwicklungsumgebung für die Arbeit mit BizTalk Server Webdiensten konfiguriert und aktiviert ist. Weitere Informationen finden Sie unter Aktivieren von Webdiensten.
Ziel des Beispiels
In diesem Beispiel wird gezeigt, wie Sie mithilfe der folgenden Schritte eine Spesenabrechnung direkt aus Excel an BizTalk Server übermitteln können:
Der Benutzer führt die manuellen Beispielschritte aus, die in der Excel-Kalkulationstabelle bereitgestellt werden.
Makrocode in der Kalkulationstabelle konvertiert die Tabellenkalkulationsdaten in das XML-Format (Extensible Markup Language) und sendet die XML-Nachricht über eine HTTP-Verbindung an BizTalk Server.
Der Computer, auf dem BizTalk Server ausgeführt wird, ruft die XML-Spesenabrechnungsmeldung ab, überprüft ihr Format mithilfe des bereitgestellten Schemas und legt sie dann in einen anderen Ordner ab.
In der Praxis kann eine andere Anwendung wie z. B. ein ERP-System (Enterprise Resource Planning) die Tabellenkalkulationsdatei für die weitere Verarbeitung abrufen. Dieser Vorgang ist jedoch nicht Bestandteil dieses Themas.
Speicherort dieses Beispiels
<Beispielpfad>\AdaptersUsage\ExpenseReportSubmission\
In der folgenden Tabelle werden die Dateien in diesem Beispiel samt Zweck beschrieben.
Datei(en) | BESCHREIBUNG |
---|---|
Cleanup.bat | Nimmt die Bereitstellung der Assemblys zurück und entfernt sie aus dem globalen Assemblycache (GAC), entfernt Sende- und Empfangsport und entfernt die virtuellen IIS-Verzeichnisse (Microsoft Internet Information Services, Internetinformationsdienste) nach Bedarf. |
ExpenseReport.15.3.xls | Excel-Kalkulationstabelle mit dem Layout des Aufgabenberichts, den zugehörigen Makros sowie Schaltflächen zum Aufrufen der Makros. |
MessageExample.xml | Ein Beispiel für das XML-Format des Ausgabenberichts. |
Setup.bat | Erstellt und initialisiert dieses Beispiel. |
Im Ordner \BTSExpenseDemo: AssemblyInfo.cs, BTSExpenseDemo.btproj, BTSExpenseDemo.sln |
Diese Dateien stellen Projekt- und -Projektmappendateien sowie zugehörige Dateien für dieses Beispiel zur Verfügung. |
Im Ordner \BTSExpenseDemo: BTSExpenseDemoBinding.xml |
Wird für das automatisierte Setup verwendet, z. B. die Portbindung. |
Im Ordner \BTSExpenseDemo: BTSExpenseOrchestration.odx |
Stellt eine BizTalk Server Orchestrierung für dieses Beispiel bereit. |
Im Ordner \BTSExpenseDemo: SchemaExpenseReport.xsd |
Stellt ein Schema für das XML-Format des Ausgabenberichts zur Verfügung. |
So erstellen und initialisieren Sie dieses Beispiel
Navigieren Sie in einem Befehlsfenster zum folgenden Ordner:
<Beispielpfad>\AdaptersUsage\ExpenseReportSubmission
Führen Sie die Datei "Setup.bat" aus, von der folgende Aktionen ausgeführt werden:
Kompiliert das Microsoft Visual Studio-Projekt für dieses Beispiel und stellt die resultierende Assembly bereit.
Erstellt und bindet die BizTalk Server Sende- und Empfangsports.
Hinweis
In diesem Beispiel werden beim Erstellen und Binden der Ports die folgenden Warnungen angezeigt:
Warning: Receive handler not specified for receive location "BTSExpenseReceiveLocation"; updating with first receive handler with matching transport type.
Warning: Host not specified for orchestration "Microsoft.Samples.BizTalk.BTSExpenseDemo.BTSOrchestration"; updating with first available host
.Sie können diese Warnungen gefahrlos ignorieren. (Um möglichen Namensunterschieden in den Benutzerinstallationen Rechnung zu tragen, wurden der Hostname und der Empfangshandler in der Bindungsdatei ausgelassen.)
Aktiviert den Empfangsspeicherort und startet den Sendeport.
Konfigurieren von IIS.
Bindet und startet die BizTalk Server-Orchestrierung.
Festlegen der HTTP-Adresse auf den Speicherort, der von der Excel-Kalkulationstabelle erwartet wird.
Hinweis
Weitere Informationen zum BizTalk ISAPI-Filter finden Sie unter Konfigurieren von IIS für einen HTTP-Empfangsspeicherort.
Hinweis
Sie sollten sicherstellen, dass von BizTalk Server während des Erstellungs- und Initialisierungsprozesses keine Fehler gemeldet wurden, bevor Sie dieses Beispiel ausführen.
Hinweis
Wenn Sie das Projekt in diesem Beispiel öffnen und erstellen möchten, ohne die Datei Setup.bat auszuführen, müssen Sie zunächst ein Schlüsselpaar für starke Namen mit dem entsprechenden .NET Framework-Hilfsprogramm (sn.exe) erstellen. Verwenden Sie dieses Schlüsselpaar zum Signieren der sich ergebenden Assembly.
Hinweis
Wenn Sie von "Setup.bat" vorgenommene Änderungen rückgängig machen möchten, führen Sie "Cleanup.bat" aus. "Cleanup.bat" müssen Sie ausführen, bevor "Setup.bat" ein zweites Mal ausgeführt wird.
Das virtuelle Verzeichnis für dieses Beispiel wird mithilfe der Datei setup.bat für die Ausführung in dem IIS-Anwendungspool konfiguriert, der der Standardwebsite zugeordnet ist. Um das virtuelle Verzeichnis für dieses Beispiel so zu konfigurieren, dass es unter dem Kontext eines Benutzers in den BizTalk-Isolierten Hostbenutzern und IIS_WPG Benutzergruppen ausgeführt wird, sollten Sie das virtuelle Verzeichnis so konfigurieren, dass es in einem neuen IIS-Anwendungspool ausgeführt wird. Führen Sie die folgenden Schritte aus, um das virtuelle Verzeichnis für die Ausführung in einem neuen IIS-Anwendungspool zu konfigurieren:
Hinweis
Wenn Sie bereits einen neuen Anwendungspool für ein anderes SDK-Beispiel erstellt haben, können Sie mit dem letzten Aufzählungszeichen weiter unten fortfahren.
Klicken Sie auf Start, zeigen Sie auf Programme, zeigen Sie auf Verwaltung, und klicken Sie dann auf Internetinformationsdienste-Manager (IIS).
Navigieren Sie im Internetinformationsdienste-Manager (IIS) zum Ordner Anwendungspools .
Klicken Sie mit der rechten Maustaste auf den Ordner Anwendungspools , und klicken Sie auf Neu, Anwendungspool...
Geben Sie einen Namen für die Anwendungspool-ID ein: z. B. BizTalkSDKSamples, überprüfen Sie, ob die Option Standardeinstellungen für neuen Anwendungspool verwenden ausgewählt ist, und klicken Sie auf OK , um den neuen Anwendungspool zu erstellen.
Klicken Sie mit der rechten Maustaste auf den neuen Anwendungspool, und klicken Sie dann auf Eigenschaften.
Klicken Sie im Dialogfeld Eigenschaften auf die Registerkarte Identität , und ändern Sie die Identität, unter der dieser Anwendungspool ausgeführt wird, in einen Benutzer, der Mitglied der Benutzergruppe BizTalk Isolated Host Users ist. Dieser Benutzer sollte auch Mitglied der lokalen IIS_WPG Benutzergruppe sein.
Konfigurieren Sie das virtuelle Verzeichnis für dieses SDK-Beispiel zur Ausführung unter dem neuen Anwendungspool. Die Einstellung Anwendungspool: ist auf der Registerkarte Virtuelles Verzeichnis des Dialogfelds Eigenschaften des virtuellen Verzeichnisses verfügbar. Das für dieses Beispiel erstellte virtuelle Verzeichnis ist ExpenseReportSubmission.
Hinzufügen einer Webdiensterweiterung für „HTTPReceive.dll“ zu IIS
Navigieren Sie im Internetinformationsdienste-Manager (IIS) zum Ordner Webdiensterweiterungen .
Klicken Sie mit der rechten Maustaste auf den Ordner Webdiensterweiterungen , und wählen Sie Neue Webdiensterweiterung hinzufügen aus, um das Dialogfeld Neue Webdiensterweiterung anzuzeigen.
Geben Sie ExpenseReportSubmission als Erweiterungsname ein:
Klicken Sie auf Hinzufügen , um das Dialogfeld Datei hinzufügen anzuzeigen.
Klicken Sie auf Durchsuchen, um das Dialogfeld Öffnen anzuzeigen, navigieren Sie zu <BizTalk Server Installationsordner>\HttpReceive\BTSHTTPReceive.dll, klicken Sie auf Öffnen, und klicken Sie dann auf OK.
Aktivieren Sie die Option Erweiterung status auf Zulässig festlegen, und klicken Sie auf OK.
Ausführen dieses Beispiels
Gehen Sie zum Ausführen des Beispiels „ExpenseReportSubmission“ wie folgt vor:
Hinweis
Wenn Sie die erweiterten Sicherheitsfeatures von Microsoft Excel verwenden, sind die Makros in der Kalkulationstabelle ggf. deaktiviert. Befolgen Sie die von Excel bereitgestellten Anweisungen, um unsignierte Makros von einer vertrauenswürdigen Quelle auszuführen.
So führen Sie dieses Beispiel aus
Öffnen Sie die Excel-Datei ExpenseReport.15.3.xls, die in diesem Beispiel enthalten ist.
Ändern Sie optional die Beispieldaten in der Kalkulationstabelle, ohne ihr Format zu ändern.
Klicken Sie in der Tabelle auf Start , um lokale Berechnungen durchzuführen.
Der Text der Schaltfläche ändert sich von Start zu Übermitteln.
Klicken Sie in der Tabelle auf Übermitteln.
Beobachten Sie den Text der übermittelten Nachricht, das Ergebnis über der Tabelle mit dem gelben Hintergrund (Zelle C7) und den tatsächlichen Rückgabecode und die Textbeschreibung darunter und rechts (Zelle G23).
Bei einem Übermittlungsfehler wiederholen Sie den Vorgang. Verwenden Sie außerdem die Problembehandlungstabelle im Abschnitt „Anmerkungen“.
Kommentare
Szenarien wie dieses können z. B. auftreten, wenn Außendienstmitarbeiter ältere Versionen von Microsoft Windows verwenden, die .NET Framework nicht unterstützen, und ein Upgrade auf eine aktuellere Version von Windows für diese Mitarbeiter keine sinnvolle Option ist.
Die folgenden wichtigen Funktionen werden in diesem Thema beschrieben:
Übermittlung von einem Rich Client (nicht .NET-basiert)
Microsoft Office-Integration
HTTP-Empfangsverbindungen
Einfache Orchestrierung
Dateiadapter
In der folgenden Tabelle sind mögliche Übermittlungsprobleme mit entsprechenden Lösungen aufgelistet.
HTTP-Fehlercode | Mögliche Aktion |
---|---|
401 – Nicht autorisiert | Aktivieren Sie anonymen Zugriff für das virtuelle Verzeichnis. |
503 Dienst nicht verfügbar und die meisten anderen HTTP-Codes im 400er- und 500er-Bereich | Stellen Sie sicher, dass der Host ausgeführt wird und der Dienst bereitgestellt, an den richtigen Port gebunden und gestartet wurde. |