Files
biztalk-sap-environment-inv…/Readme.md
T
admin b9d01339b0
Build und Test / build (push) Has been cancelled
Handle BizTalk artifact collection via ExplorerOM
2026-07-28 11:35:10 +02:00

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.dll und Dateiversion/Architektur
  • UseSnc, SncLibrary, SncPartnerName, SncMyName und SncQop
  • SNC_LIB, SECUDIR und SAPNWRFC_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 /GroupLevel wird 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 Administrators oder 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.exe aus der lokalen BizTalk-Installation

Schnellstart

  1. Deployment-Ordner auf den BizTalk Server kopieren.
  2. Administrative cmd.exe öffnen.
  3. In den Deployment-Ordner wechseln.
  4. Self-Test starten.
  5. 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-server und --management-database explizit 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-SAP oder als WCF-Custom mit sapBinding verwendet wird
  • vollständigen Gruppenbindingexport statt nur einer Anwendung verwenden
  • DOCX-Findings und Log prüfen

Weitere Architektur- und Sicherheitsdetails stehen in Dokumentation.md.