SAP-Dateien hochladen
Lade die SAP-Export-Dateien hoch — als einzelne CSV/TXT oder als ein 7z-Archiv. Speedtest
Hochgeladene Eingabedateien herunterladen
Aktuelle E070, E071, Import-Histories, VRSDs und Konfiguration als einzelne Dateien oder als Archiv (tar.gz schnell, 7z deutlich kleiner).
| Datei | Beschreibung | Größe | Geändert | Download |
|---|---|---|---|---|
| Klick „Liste aktualisieren" | ||||
Excel anreichern (fehlende Y10-Objekte)
Excel/CSV mit Objekten hochladen, die auf Y10 fehlen. Datei wird unter uploads/_enrich_<name> abgelegt — danach ergänzt der Agent den Typ (PGMID / OBJECT) für SE01-fähigen Import.
Übersicht
Noch keine Analyse verfügbar.
Lade Dateien hoch und starte die Analyse.
Resolver-Logik
Regelwerk zur Bestimmung der Import-Queue von T10 nach Y10.
Ziel
Das Zielsystem Y10 erhält eine Systemkopie von P10. Alle Änderungen die nach dem Stichtag in T10 passiert sind, müssen nach Y10 transportiert werden — in der richtigen Reihenfolge und ohne Downgrades.
Systemlandschaft
So funktioniert es
- Stichtag setzen: Datum der letzten Systemkopie P10 → Y10. Alles davor ist schon im Zielsystem.
- Coding prüfen: Welche Programmier-Objekte haben sich in T10 geändert und sind noch nicht in P10?
- Customizing prüfen: Welche Konfigurations-Transporte fehlen in P10?
- Abhängigkeiten auflösen: Wenn ein Transport ältere Versionen enthält, werden automatisch die neueren mitgenommen.
- Sortieren: Alle Transporte in der gleichen Reihenfolge wie sie in T10 importiert wurden.
Coding: Brauche ich diesen Transport?
Customizing: Brauche ich diesen Transport?
Grundregeln
- Stichtag: Nur TRs die nach dem Stichtag (Sys-Copy) in T10 importiert wurden sind relevant. Alles davor ist durch die Systemkopie abgedeckt.
- Import-History: Quelle der Wahrheit für Import-Zeitpunkte. Kein TR ohne T10-History-Eintrag ist relevant.
- E071: Quelle der Wahrheit für Objektzuordnung pro TR. VRSD-Nebenprodukte (DOCU, CUAD, etc.) werden ignoriert.
- Sortierung: Alle TRs chronologisch nach T10-Import-Zeitstempel (Datum + Uhrzeit), gemischt Coding + Customizing.
TR-Typen
- WORKBENCH Entwicklungsobjekte (TRFUNCTION K/S/R/O/E)
- CUSTOMIZING Tabelleneinträge (TRFUNCTION W/Q/C)
- ToC Transport of Copies (TRFUNCTION T) — wird anhand der enthaltenen Objekte Coding und/oder Customizing zugeordnet
- AUTH Reine Berechtigungstransporte (nur ACGR + zugehörige Customizing-Daten)
- LANG Sprachtransporte (TRFUNCTION L) — wie ToC dual-getrackt
- PIECE Piece-Listen (TRFUNCTION G) — wie ToC dual-getrackt
Coding-Resolver (Workbench)
Customizing-Resolver
Vollständige Pipeline von Datei-Parsing bis Repair-Liste — 17 Blöcke in 4 Phasen. Implementiert in server.js /api/analyze.
Parsing & Klassifikation
WORKBENCH (K/S/R/O/E), CUSTOMIZING (W/Q/C), T (ToC), LANG (L), PIECE (G), FACILITY (F). ToCs/LANG/PIECE werden wie Workbench+Customizing dual-getrackt — E071 entscheidet später anhand des Inhalts. Beschreibung und Owner extrahieren.lib/csv-parser.js · parseE070 + normaliseTypeparseE071Maps · parseImportHistory · parseVRSDt10ValidTRs entfernen, in y10ImportedQueue aufnehmen.server.js · sapDateToSortable + Auto-CutoffResolver & Queue-Aufbau
resolveCodingTRs + findNonVrsdTRsR3TR CLAS→METH, CINC, CLSD, CPRI, CPRO, CPUBR3TR INTF→METH, CINC, INTDR3TR MSAG→MESSR3TR DOMA→DOMDR3TR DTEL→DTEDR3TR TABL→TABD, CHDOR3TR PROG→REPS, REPT, DYNP, CUAD, VARX, AVASR3TR FUGR→FUNC, REPS, DYNP, CUAD, DTEL(FUNC via E071-Co-Occurrence, da Names nicht namens-konventionell)
=) plus E071-Co-Occurrence-Fallback für FUGR→FUNC. Voraussetzung für korrekte Plausi-Check-Erkennung.buildMasterToSubKeys + buildFugrFuncCoOccurrencelib/coding-resolver.js · resolveCodingTRslib/customizing-resolver.js · resolveCustomizingTRstrNumber als Tie-Breaker für vollständigen Determinismus.lib/import-queue.js · resolveHybridY10-Korrektur (Repair-Liste)
aktiv bei Y10-Uploadvrsd_y10.csv bzw. import_history_y10.csv hochgeladen sind. Sie vergleicht VRSD T10 ↔ Y10 und erzeugt eine Repair-Liste für DGPs (Downgrade-Korrekturen). Ohne Y10-Files wird die Phase übersprungen.
server.js · Step D.1server.js · Step D.1b · isSubObjectDeletedserver.js · Step D.2R3TR CLAS trägt, würde sie ALLE Sub-Objekte überschreiben. Für jedes Sub-Objekt mit neuerer T10-Version: diese TR auch in Repair-Liste, sonst entsteht durch das Repair selbst ein neuer Downgrade. Fixpunkt-Iteration.server.js · Step D.2bvrsd_y10.csv vorhanden: für ALLE Objekttypen vergleichen T10 vs. Y10 VRSD. Wo Y10 eine ältere TR trägt → DGP-Korrektur. Convergence-Loop: neue DGP-TRs → CLAS-Cascade + Coding-Transitive → weitere DGPs erkennen, bis stabil.server.js · Step D.4server.js · Step D.4bchecked / alreadyCorrect / inRepairList / overwrittenByLater / missing. Ziel: missing = 0.server.js · Step D.5Output
trNumber für Determinismus), dedupliziert. Mixed-TRs erhalten listType=MIXED, AUTH-only trType=AUTH. CSV-Spalten: Position, TR-ID, Type, List, Import Date, Import Time, T10-Importreihenfolge, T10-Anomalie, Plausi-Downgrade, Plausi-Downgrade-Objekte, Plausi-Downgrade-Objektliste.lib/import-queue.js · buildImportQueuet10Position) → Plausi-Downgrade. Skip-Regeln: gelöschte Master (OBJFUNC=D), spätere Master-Rebuilds, Sub-Object's Master nicht in Queue. Annotiert jeden TR mit plausiDowngrade=ja, Anzahl + Liste der betroffenen Objekte. Aktuell: 725 Downgrades / 114 TRs (vor Master-Bridges: 1.970/186).server.js · Plausi-Check (post-Queue)allRepairTRs mit Begründung (Downgrade / Löschtransport / DGP-Korrektur / clas-cascade), isReImport-Flag wenn schon in Y10, isDgpCorrection-Flag bei VRSD-Lücke. Export via /api/export/repair-csv.lib/import-queue.js · buildRepairList · exportRepairAsCSVAudit & Reproduzierbarkeit
/api/analyze-Lauf wird ein eindeutiger runId erzeugt und ein Manifest mit SHA-256 aller Eingabe-Dateien (inkl. 3.7 GB E071, streaming-gehasht) plus toolVersion (git commit oder package version) und Start/Finish-Zeitstempeln gespeichert. So ist 12 Monate später nachvollziehbar, welche Inputs welche Queue erzeugt haben.server.js · sha256OfFile (streaming) + crypto.randomBytesanalyze_start, analyze_finish, analyze_error wird in uploads/_audit.jsonl (JSONL, append-only) protokolliert — mit Timestamp, runId, toolVersion und Stats. Plus: atomic-write für _last_results.json (temp+rename) und Race-Lock (runExclusive) für serielle Analyse-Läufe.server.js · auditLog + runExclusive + atomic saveuploads/blacklist.json werden niemals importiert. Vor Resolvers: Histories filtern, E071-Maps prunen, VRSD-T10 fix-upen (next-newest non-blacklisted TR pro Objekt aus objectToTRs). Schema unterstützt jetzt Pflichtfelder pro Eintrag: trNumber, addedBy, addedAt, reason, ticketRef.server.js · Blacklist-Block (vor Cutoff-Filter)Coding-TRs
Objekte mit neuerer Version in T10 als P10. Pro Objekt wird der TR mit neuester Version gewählt, inklusive transitiver Abhängigkeiten.
Keine Coding-TRs vorhanden.
Customizing-TRs
Delta T10 → P10: Alle fehlenden Customizing-Transporte in Import-Reihenfolge.
Keine Customizing-TRs vorhanden.
Plausi-Check (Final-State-Analyse)
Simulation: vrsdP10 + Queue-Import versus vrsdT10. Drei Delta-Kategorien werden geprüft, um zu zeigen ob nach dem Import noch ein Stand ungleich dem T10-Soll wäre.
Was sind Datenbank-Lücken (P10-pre-existing & Missing)?
- P10-pre-existing: Das Objekt steht in
vrsdP10mit einem anderen TR alsvrsdT10— obwohl der T10-newest-TR lautimport_history_p10in P10 angekommen ist. Ursache: die VRSD-Tabelle in P10 wurde nicht korrekt aktualisiert (z.B. nach Re-Import oder Mandanten-Migration). Wirkung: nach Queue-Import bleibt das Objekt im falschen Stand. Fix: SAP-Basis-Team viaSE03 → Tools → KonsistenzcheckoderRSWBOIDX-Rebuild. - Missing: Das Objekt existiert in
vrsdT10, der zugehörige TR ist inimport_history_p10— aber das Objekt fehlt komplett invrsdP10. Ursache: der TR-Import in P10 ist abgebrochen oder die VRSD-Indexierung hat das Objekt nicht aufgezeichnet. Wirkung: Objekt wird nie auf P10 gepflegt. Fix: Re-Import des TRs auf P10 oder gezielter Repair-Transport, danachRSWBOIDX-Rebuild. - Wichtig: Beide Kategorien sind P10-Datenbank-Inkonsistenzen, NICHT durch Queue-Import behebbar. Das Tool macht sie sichtbar, das SAP-Basis-Team muss sie beheben.
Pattern: Last-Touch-TR in der Queue überschreibt das Objekt mit einer älteren Version als die im VRSD T10 als neueste markiert ist. Diese sind im Hauptqueue-CSV in Spalte „Plausi-Downgrade=ja" markiert.
| Objekt | Last-TR (Queue) | T10-Pos last | Newest-TR | T10-Pos newest |
|---|
Pattern: P10 trägt schon einen anderen TR für das Objekt als T10. Das ist eine VRSD-Inkonsistenz auf P10-Seite — durch die Queue nicht behebbar (kein TR in der Queue berührt das Objekt).
| Objekt | P10-TR | T10-Pos P10 | Newest-TR (T10) | T10-Pos newest |
|---|
Pattern: Newest-TR existiert (in Queue oder P10), aber das Objekt taucht weder in vrsdP10 auf, noch wird es von einem Queue-TR berührt. Echte Daten-Lücke.
| Objekt | Newest-TR | T10-Pos | In Queue? | In P10-History? |
|---|
Export
Exportiere die finale Import-Liste.
Cross-Check / Agent-Inspektion
Lade eine Datei (z.B. eine Liste von einem Kollegen) hoch — sie wird auf dem Server gespeichert, sodass der Agent sie inspizieren kann. Sag dem Agenten danach im Chat, was er prüfen soll.