Files
biztalk-application-catalog/Readme.md
T

168 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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).