10 KiB
BEW BizTalk SAP Environment Inventory
BEW BizTalk SAP Environment Inventory erzeugt lokal auf einem BizTalk Server 2020 eine Microsoft-Word-Dokumentation (.docx) der SAP-Adapterverbindungen und eine vollständige Liste aller BizTalk-Anwendungen.
Das Tool wird einmal auf dem BizTalk Server in ACC und einmal auf dem BizTalk Server in PROD ausgeführt. Beide Umgebungen bestehen jeweils aus:
- einem BizTalk Server 2020
- einem separaten SQL Server für die BizTalk-Datenbanken
Microsoft Office, Word, PowerShell, ein .NET SDK, Internetzugriff und separat
mitgelieferte BizTalk-DLLs werden auf dem Zielserver nicht benötigt. Die mit den
lokalen BizTalk-Verwaltungskomponenten installierte
Microsoft.BizTalk.ExplorerOM.dll wird zur Laufzeit aus GAC beziehungsweise
BizTalk-Installationspfad geladen.
Erfasster Umfang
Vollständige BizTalk-Anwendungsliste
- alle Anwendungen read-only aus dem BizTalk Explorer Object Model
- Anwendungsstatus und Beschreibung, soweit ExplorerOM sie bereitstellt
- Anzahl und Zuordnung von Orchestrierungen
- Send Ports und Send Port Groups
- Receive Ports und Receive Locations
- Assemblies, Schemas, Maps und Pipelines aus ExplorerOM
- SAP-/IDoc-Indikatoren aus bereitgestellten Schemas, Actions und Artefaktnamen
Die Liste ist nicht auf eine bisher bekannte 15-App-Liste begrenzt. Damit werden auch weitere Anwendungen wie beispielsweise MasterData_SAP_WebGIS, MasterDataHeat, WoWHeatInvoice oder MeterChangeInfo/Order sichtbar, sofern sie tatsächlich in der jeweiligen BizTalk-Gruppe installiert sind.
SAP-Adapterverbindungen
Aus dem BizTalk-Gruppenbinding und WMI werden unter anderem dokumentiert:
- BizTalk-Anwendung und Portzuordnung
- Sende- oder Empfangsrichtung
- WCF-SAP bzw. WCF-Custom mit
sapBinding - Port-, Receive-Location- und Handlername
- RFC-/Listener-Destination
- SAP-System-ID beziehungsweise R/3-Systemname
- Application Server oder Message Server
- Systemnummer
- Gateway Host und Gateway Service
- SAP Client und Sprache
- Listener Program ID
- SAP Router
- Actions beziehungsweise erkannte RFC-/IDoc-Operationen
- SSO-/Benutzerreferenz, jedoch niemals das Kennwort
SAP NCo, Hosts und SNC
- konfigurierte SAP-Adapterdefinitionen
- Receive-/Send-Handler und BizTalk Hosts
- bekannte ERP-/ISU-Hostfamilien werden nicht fest verdrahtet, sondern aus der realen Umgebung gelesen
- SAP .NET Connector und Adapter-Pack-Installationen
sapnco.dll,sapnco_utils.dllund Dateiversion/ArchitekturUseSnc,SncLibrary,SncPartnerName,SncMyNameundSncQopSNC_LIB,SECUDIRundSAPNWRFC_HOME- PSE-/Zertifikatspfad, Gültigkeit und Fingerprint, soweit lokal lesbar
Was nicht automatisch aus BizTalk ausgelesen werden kann
Folgende Informationen liegen im SAP-System oder in Betriebsprozessen und werden im Bericht als offene Nachweise ausgewiesen:
- Partnerprofile aus Transaktion
WE20 - Portdefinitionen aus Transaktion
WE21 - vollständige SAP-seitige RFC-Destination einschließlich Verbindungstest
- verbindliche Liste der IDoc-Basistypen und Erweiterungen
- tatsächliche SAP-Kennwörter
- Owner und Rotationsprozess für SAP-Credentials bzw. SNC-PSE/Zertifikate
- DR-Verfahren für die SAP-seitige Umschaltung der RFC-Destination nach Frankfurt
Das Tool erfindet hierfür keine Werte. Es dokumentiert nur lokal belegbare Indikatoren und nennt die erforderliche Ergänzung sowie die zuständige Rolle.
Sicherheitsprinzip
- ausschließlich read-only ExplorerOM-, WMI- und Registry-Zugriffe
BTSTask ExportBindings /GroupLevelwird nur zum Lesen verwendet- temporärer Binding-Export wird nach dem Parsen gelöscht
- BizTalk entfernt Kennwörter bereits beim Binding-Export
- zusätzliche Redigierung von Passwort-, Secret-, Token-, Private-Key- und Connection-String-Feldern
- keine privaten Schlüssel oder PSE-Inhalte im DOCX
- kein SAP-Login und kein aktiver RFC-Verbindungstest
DOCX und Log enthalten trotzdem interne Host-, Anwendungs-, Zertifikats- und Pfadinformationen und müssen geschützt abgelegt werden.
Voraussetzungen auf ACC und PROD
- lokale Ausführung auf dem jeweiligen BizTalk Server
- administrative
cmd.exe - Konto ist Mitglied von
BizTalk Server Administratorsoder besitzt vergleichbare Leserechte - .NET Framework 4.7.2 oder höher
- Zugriff auf die konfigurierte BizTalk Management Database
- lokale BizTalk-Verwaltungskomponenten einschließlich
Microsoft.BizTalk.ExplorerOM.dll BTSTask.exeaus der lokalen BizTalk-Installation
Schnellstart
- Deployment-Ordner auf den BizTalk Server kopieren.
- Administrative
cmd.exeöffnen. - In den Deployment-Ordner wechseln.
- Self-Test starten.
- Inventarisierung für die richtige Umgebung ausführen.
Self-Test:
BizTalkSapEnvironmentInventory.exe --self-test
ACC:
run-inventory.cmd ACC C:\BizTalk-Doku\ACC
PROD:
run-inventory.cmd PROD C:\BizTalk-Doku\PROD
Direkter Aufruf:
BizTalkSapEnvironmentInventory.exe ^
--environment ACC ^
--output C:\BizTalk-Doku\ACC
Konsolenausgabe
Das Tool zeigt jeden Abschnitt und die erzeugten Dateien direkt auf der Konsole an:
[INFO] Ermittle die BizTalk-Gruppe über MSBTS_GroupSetting.
[DETAIL] WQL: SELECT Name,MgmtDbServerName,MgmtDbName FROM MSBTS_GroupSetting
[INFO] MSBTS_GroupSetting abgeschlossen: Datensätze=1; Dauer=84 ms.
[INFO] Suche die lokale Assembly Microsoft.BizTalk.ExplorerOM.dll.
[INFO] ExplorerOM-Assembly geladen: Microsoft.BizTalk.ExplorerOM, Version=...
[INFO] 34 BizTalk-Anwendung(en) geladen (412 ms).
[INFO] ExplorerOM Schema: 87 Artefakt(e).
[INFO] Verbinde lokal mit dem BizTalk-WMI-Namespace für optionale Zusatzdaten.
[INFO] WMI-Abfrage abgeschlossen: SendPort; Datensätze=91; Dauer=173 ms.
[INFO] Exportiere BizTalk-Gruppenbindings read-only mit BTSTask.
[INFO] BTSTask ExportBindings erfolgreich abgeschlossen (1865 ms).
[INFO] 12 SAP-Endpunkt(e) aus dem Binding-Export ausgewertet.
[INFO] Ergebnisübersicht: Anwendungen=34; SAP-Endpunkte=12; Findings=4.
Konsole und Log erhalten dieselben Fortschritts- und Diagnosemeldungen.
Pflichtfehler erscheinen als [FEHLER], durch einen Fallback abgedeckte oder
optionale Zugriffsfehler als [WARNUNG]. Ausnahmedetails enthalten Typ, HRESULT,
WMI-Status, innere Ausnahmen und Stacktrace. Fehler eines Collectors stoppen die
übrigen Abschnitte nicht; Fehler optionaler Zusatzdaten verwerfen insbesondere
nicht die über ExplorerOM geladene Anwendungsliste.
Ausgabedateien
BizTalk-SAP-Dokumentation-ACC-BIZTALKSERVER-20260727-150000.docx
BizTalk-SAP-Dokumentation-ACC-BIZTALKSERVER-20260727-150000.log
Das DOCX wird direkt als Office Open XML erzeugt. Auf dem BizTalk Server wird keine Office-Anwendung benötigt.
Kommandozeilenoptionen
| Option | Bedeutung |
|---|---|
--environment NAME |
Umgebung, regulär ACC oder PROD. |
--output PFAD |
Zielordner für DOCX und Log. |
--management-server NAME |
SQL-Server der BizTalk Management Database; normalerweise aus Registry. |
--management-database NAME |
Name der Management Database; Standard/Fallback BizTalkMgmtDb. |
--btstask DATEI |
Expliziter Pfad zu BTSTask.exe. |
--binding-file DATEI |
Vorhandenen Binding-Export offline auswerten, ohne BTSTask aufzurufen. |
--self-test |
Prüft Secret-Redaktion, SAP-Parser und DOCX-Struktur. |
--help |
Hilfe anzeigen. |
Exitcodes
| Code | Bedeutung |
|---|---|
0 |
Pflichtabschnitte vollständig und DOCX erzeugt. |
1 |
DOCX erzeugt, aber mindestens ein Pflichtabschnitt war unvollständig. |
2 |
Fataler Aufruf-, Ausgabe- oder Berichtserzeugungsfehler. |
Build für BizTalk Server 2020
Die Solution verwendet bewusst das klassische Visual-Studio-2019-Projektformat:
| Komponente | Vorgabe |
|---|---|
| Ziel | .NET Framework 4.7.2 |
| Sprache | C# 7.3 |
| Projektformat | klassisches MSBuild, kein Microsoft.NET.Sdk |
| Buildumgebung | Visual Studio 2019/Build Tools, MSBuild 16.x oder neuer |
| Pakete | keine NuGet-Abhängigkeiten |
Build und Tests:
scripts\build-release.cmd
scripts\package-release.cmd
Deployment:
artifacts\BizTalkSapEnvironmentInventory-deploy\
Die Gitea-Workflowdatei .gitea/workflows/build.yml baut, testet und veröffentlicht den Deployment-Ordner auf einem Windows-Runner.
Troubleshooting
Keine Anwendungen
- lokal auf dem BizTalk Server ausführen
- Konto und Mitgliedschaft in den BizTalk-Administrator-/Operator-Gruppen prüfen
- im Log das ermittelte Management-Datenbankziel prüfen
- geladene ExplorerOM-Assembly einschließlich Version und Pfad prüfen
- Zugriff auf die BizTalk Management Database mit integrierter Windows-Authentifizierung prüfen
- bei fehlender Erkennung
--management-serverund--management-databaseexplizit angeben
WMI meldet Invalid class
Die Anwendungsliste verwendet nicht mehr die nicht verlässlich vorhandene Klasse
MSBTS_Application, sondern ExplorerOM. Auch Assemblies, Schemas, Maps und
Pipelines werden über ExplorerOM gelesen, weil MSBTS_Assembly, MSBTS_Schema,
MSBTS_Map und MSBTS_Pipeline nicht zu den verlässlich registrierten
BizTalk-WMI-Kernklassen gehören. Verbleibende optionale WMI-Fehler erscheinen mit
WQL, HRESULT und WMI-Status als [WARNUNG]; der Lauf wird fortgesetzt. Schlägt
bereits MSBTS_GroupSetting fehl, kann die Management-Datenbank über die beiden
--management-*-Optionen vorgegeben werden.
ExplorerOM-Assembly fehlt
- prüfen, ob die BizTalk-Verwaltungskomponenten lokal installiert sind
- im Log die geprüften GAC-/Installationspfade kontrollieren
- keine DLL von einem anderen BizTalk-Server oder einer anderen CU-Version in den Deployment-Ordner kopieren
BTSTask findet die Management Database nicht
Management SQL Server und Datenbank explizit angeben:
BizTalkSapEnvironmentInventory.exe ^
--environment ACC ^
--management-server SQL-ACC ^
--management-database BizTalkMgmtDb
Alternativ einen autorisierten Binding-Export bereitstellen:
BizTalkSapEnvironmentInventory.exe ^
--environment ACC ^
--binding-file C:\Temp\ACC-GroupBindings.xml
Keine SAP-Endpunkte
- prüfen, ob der Adapter als
WCF-SAPoder alsWCF-CustommitsapBindingverwendet wird - vollständigen Gruppenbindingexport statt nur einer Anwendung verwenden
- DOCX-Findings und Log prüfen
Weitere Architektur- und Sicherheitsdetails stehen in Dokumentation.md.