# BEW BizTalk Application Catalog – Phase 1 Das Tool erzeugt nur die für die Phase-1-Excel-Sicht benötigten Daten: | Spalte | Inhalt | | --- | --- | | `BizTalk-Anwendung` | Name der BizTalk-Anwendung | | `Umgebung` | `ACC + PRD`, `nur ACC` oder `nur PRD` | | `Adapter-Typ` | Adapter mit Anzahl, zum Beispiel `FILE (2x) / SFTP (1x)` | | `Anzahl Endpunkte` | Summe der Endpunkte in den berücksichtigten Umgebungen | | `BizTalk-Anwendung in ACC` | `✓` oder `–` | | `BizTalk-Anwendung in PRD` | `✓` oder `–` | | `Hinweis` | Kennzeichnung einer nur einseitig vorhandenen Anwendung | Die Arbeitsmappe enthält exakt ein Blatt namens `Phase 1`. Es werden keine weiteren Übersichts-, Artefakt-, Port-, Host-, Abdeckungs- oder Findings-Blätter erzeugt. ## Ablauf ACC und PROD sind getrennte BizTalk-Umgebungen. Deshalb arbeitet das Tool in zwei Schritten: 1. Auf dem lokalen ACC-BizTalk-Server wird ein ACC-JSON-Snapshot erzeugt. 2. Auf dem lokalen PROD-BizTalk-Server wird ein PROD-JSON-Snapshot erzeugt. 3. Beide JSON-Dateien werden mit demselben Tool zur gemeinsamen Excel-Sicht zusammengeführt. Jeder lokale Lauf erzeugt zusätzlich eine einblättrige Excel-Sicht für die jeweilige Umgebung. Erst der Merge liefert den belastbaren ACC/PRD-Vergleich wie in der Zielansicht. ## Erfasste Daten Das Tool liest ausschließlich: - `MSBTS_Application` für die vollständige Anwendungsliste - `MSBTS_SendPort` für primäre und gegebenenfalls sekundäre Send-Endpunkte - `MSBTS_ReceivePort` nur zur Zuordnung einer Receive Location zur Anwendung - `MSBTS_ReceiveLocation` für Receive-Endpunkte Ein Endpunkt ist: - die primäre Transportkonfiguration eines Send Ports, - eine konfigurierte sekundäre Transportkonfiguration eines Send Ports oder - eine Receive Location. Receive Ports selbst sind Container und werden nicht als Endpunkt gezählt. Anwendungen ohne Endpunkt bleiben mit `0` und Adapter-Typ `–` in der Sicht enthalten. Nicht erfasst werden insbesondere Adressen, Credentials, Beschreibungen, Status, Hosts, Handler, Orchestrierungen, Schemas, Maps, Pipelines, Assemblies, Betriebssystem- oder SQL-Daten. ## Voraussetzungen - BizTalk Server 2020 auf Windows Server 2019 - lokale Ausführung auf dem jeweiligen BizTalk-Server - .NET Framework 4.7.2 oder höher - Leserechte auf `root\MicrosoftBizTalkServer` - administrative `cmd.exe` empfohlen Microsoft Excel, Microsoft Office, PowerShell, Internetzugriff, NuGet und ein .NET SDK werden auf dem Zielserver nicht benötigt. ## Lokalen Snapshot erzeugen Zuerst den Self-Test ausführen: ```cmd BizTalkApplicationCatalog.exe --self-test ``` ACC: ```cmd run-inventory.cmd ACC C:\BizTalk-Doku\ACC ``` PROD: ```cmd run-inventory.cmd PROD C:\BizTalk-Doku\PROD ``` Ergebnis eines erfolgreichen lokalen Laufs: ```text Phase1-BizTalk-Anwendungskatalog-ACC-SERVER-20260727-150000.json Phase1-BizTalk-Anwendungskatalog-ACC-SERVER-20260727-150000.xlsx Phase1-BizTalk-Anwendungskatalog-ACC-SERVER-20260727-150000.log ``` Nur JSON-Dateien eines Laufs mit Exitcode `0` dürfen zusammengeführt werden. Ein unvollständiger Snapshot trägt `IsComplete: false` und wird vom Merge abgelehnt. ## ACC und PROD zusammenführen Beide JSON-Dateien in einen gemeinsamen, geschützten Ordner kopieren und ausführen: ```cmd run-merge.cmd ^ C:\BizTalk-Doku\ACC\Phase1-BizTalk-Anwendungskatalog-ACC-SERVER-20260727-150000.json ^ C:\BizTalk-Doku\PROD\Phase1-BizTalk-Anwendungskatalog-PROD-SERVER-20260727-151500.json ^ C:\BizTalk-Doku\ACC-PROD ``` Direkter Aufruf: ```cmd BizTalkApplicationCatalog.exe ^ --merge ^ --acc-json C:\BizTalk-Doku\ACC\ACC.json ^ --prod-json C:\BizTalk-Doku\PROD\PROD.json ^ --output C:\BizTalk-Doku\ACC-PROD ``` Die gemeinsame Datei heißt beispielsweise: ```text Phase1-BizTalk-Anwendungskatalog-ACC-PROD-20260727-153000.xlsx ``` Bei identischer Adapterverteilung in ACC und PROD wird sie einmal angezeigt. Bei Abweichungen kennzeichnet die Zelle beide Werte, zum Beispiel: ```text ACC: FILE (2x) | PRD: FILE (1x) / SFTP (1x) ``` `Anzahl Endpunkte` ist im Merge die Summe aus ACC und PROD. ## Optionen und Exitcodes | Option | Bedeutung | | --- | --- | | `--environment ACC\|PROD` | lokaler Inventarlauf | | `--output PFAD` | Zielordner | | `--merge` | ACC- und PROD-Snapshot zusammenführen | | `--acc-json PFAD` | vollständiger ACC-Snapshot | | `--prod-json PFAD` | vollständiger PROD-Snapshot | | `--self-test` | JSON-, Merge- und XLSX-Test ohne BizTalk | | `--help` | Hilfe | | Exitcode | Bedeutung | | ---: | --- | | `0` | Snapshot beziehungsweise Merge vollständig erzeugt | | `1` | lokaler Pflichtabschnitt unvollständig; JSON nicht mergen | | `2` | Aufruf-, Datei-, JSON- oder XLSX-Fehler | ## Build Die Solution verwendet das klassische MSBuild-Projektformat für Visual Studio 2019 / MSBuild 16.x, .NET Framework 4.7.2 und C# 7.3. Es gibt keine NuGet-Abhängigkeiten. ```cmd scripts\build-release.cmd scripts\package-release.cmd ``` ## Quellpaket als certutil-Text ```cmd scripts\package-source.cmd ``` Erzeugt: ```text artifacts\BizTalkApplicationCatalog-source.zip artifacts\BizTalkApplicationCatalog-source.zip.txt ``` Dekodieren: ```cmd certutil -decode BizTalkApplicationCatalog-source.zip.txt BizTalkApplicationCatalog-source.zip ``` Technische Details stehen in [Dokumentation.md](Dokumentation.md).