Add in-app training documentation
This commit is contained in:
@@ -0,0 +1,218 @@
|
||||
@page "/finance-cockpit/schulung"
|
||||
@inject TrafagSalesExporter.Services.IUiTextService UiText
|
||||
|
||||
<PageTitle>@T("Finance Schulung", "Finance training")</PageTitle>
|
||||
|
||||
<MudText Typo="Typo.h4" Class="mb-2">@T("Finance Schulung", "Finance training")</MudText>
|
||||
<MudText Typo="Typo.body1" Class="mb-4 training-lead">
|
||||
Ausführliche Anwenderunterlage für Finance-Keyuser, CFO/Finance-Leitung und Administratoren. Die Schulung beschreibt den
|
||||
produktiven Ablauf vom manuellen Import bis zur zentralen Excel-Datei, inklusive Finance Summary, Finance Details und Soll/Ist Vergleich.
|
||||
</MudText>
|
||||
|
||||
<MudPaper Class="pa-4 mb-4" Elevation="1">
|
||||
<MudGrid>
|
||||
<MudItem xs="12" md="7">
|
||||
<img class="training-hero-image" src="training/finance_cockpit_preview.png" alt="Finance Cockpit Vorschau" />
|
||||
</MudItem>
|
||||
<MudItem xs="12" md="5">
|
||||
<MudAlert Severity="Severity.Info" Variant="Variant.Outlined" Class="mb-3">
|
||||
Verbindlich ist die Finance-Sicht: Finance Summary, Finance Details und Soll/Ist Vergleich müssen zusammen plausibel sein.
|
||||
</MudAlert>
|
||||
<MudSimpleTable Dense Hover>
|
||||
<thead>
|
||||
<tr><th>Rolle</th><th>Aufgabe</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr><td>Finance Keyuser</td><td>Importe bereitstellen, Standorte exportieren, Summen prüfen</td></tr>
|
||||
<tr><td>CFO/Finance Leitung</td><td>Soll/Ist-Abgleich freigeben und Abweichungen entscheiden</td></tr>
|
||||
<tr><td>Admin</td><td>Standorte, Mapping, Regeln, Settings und SharePoint konfigurieren</td></tr>
|
||||
</tbody>
|
||||
</MudSimpleTable>
|
||||
</MudItem>
|
||||
</MudGrid>
|
||||
</MudPaper>
|
||||
|
||||
<MudTabs Rounded Border>
|
||||
<MudTabPanel Text="Prozess">
|
||||
<TrainingSection Title="1. Ziel der Finance-Sicht">
|
||||
<p>Das Finance Cockpit bereitet Sales- und Finance-Daten so auf, dass Länder, Systeme und unterschiedliche Spaltenlogiken in
|
||||
einer zentralen Sicht vergleichbar werden. Die Rohdaten bleiben nachvollziehbar, die Finance-Spalten liefern die verbindliche
|
||||
Abgrenzung für Summen und Soll/Ist-Vergleich.</p>
|
||||
<ul>
|
||||
<li><strong>Finance Summary</strong> zeigt die aggregierten Summen nach Jahr, Land und Währung.</li>
|
||||
<li><strong>Finance Details</strong> zeigt die Detailzeilen, die zu diesen Summen führen.</li>
|
||||
<li><strong>Sales</strong> enthält die breitere Rohdatensicht inklusive Finance-Spaltenblock.</li>
|
||||
<li><strong>Soll/Ist Vergleich</strong> prüft die App-Daten gegen die gepflegten Referenzwerte.</li>
|
||||
</ul>
|
||||
</TrainingSection>
|
||||
|
||||
<TrainingSection Title="2. Bedienreihenfolge im Tagesgeschäft">
|
||||
<div class="training-flow">
|
||||
<div><span>1</span><strong>Dateien bereitstellen</strong><small>SharePoint, lokaler Pfad oder Quellsystem</small></div>
|
||||
<div><span>2</span><strong>Standort exportieren</strong><small>CentralSalesRecords je Standort ersetzen</small></div>
|
||||
<div><span>3</span><strong>Zentrale Excel erzeugen</strong><small>Sales, Summary und Details neu schreiben</small></div>
|
||||
<div><span>4</span><strong>Summen prüfen</strong><small>Summary gegen Details aggregieren</small></div>
|
||||
<div><span>5</span><strong>Soll/Ist freigeben</strong><small>Abweichungen dokumentieren</small></div>
|
||||
</div>
|
||||
<p>Nach jeder neuen Datei muss zuerst der betroffene Standort exportiert werden. Erst danach ist die zentrale Excel-Datei aktuell.</p>
|
||||
</TrainingSection>
|
||||
|
||||
<TrainingSection Title="3. Prozessgrafik und Systembild">
|
||||
<MudGrid>
|
||||
<MudItem xs="12" md="6">
|
||||
<img class="training-doc-image" src="training/keyuser-prozess.svg" alt="Keyuser Prozess" />
|
||||
</MudItem>
|
||||
<MudItem xs="12" md="6">
|
||||
<img class="training-doc-image" src="training/systemarchitektur.svg" alt="Systemarchitektur" />
|
||||
</MudItem>
|
||||
</MudGrid>
|
||||
</TrainingSection>
|
||||
</MudTabPanel>
|
||||
|
||||
<MudTabPanel Text="Importe">
|
||||
<TrainingSection Title="4. Manuelle Importe und Delta-Regeln">
|
||||
<p>Manuelle Importe ersetzen beim Standortexport den aktuellen Datenstand dieses Standorts in <code>CentralSalesRecords</code>.
|
||||
Deshalb darf eine Delta-Datei nur dann verwendet werden, wenn die App sie zusammen mit einer Basisdatei liest.</p>
|
||||
<MudSimpleTable Dense Hover>
|
||||
<thead><tr><th>Land</th><th>Quelle</th><th>Lieferlogik</th><th>Konsequenz</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>UK / England</td><td>Sage Excel/CSV im Ordner UK_B1</td><td>Jahresdatei plus Deltas</td><td>Delta-fähig, weil Basis und Deltas zusammen gelesen werden</td></tr>
|
||||
<tr><td>Spanien</td><td>Sage CSV / Manual Excel</td><td>Vollfile erforderlich</td><td>Keine Delta-Dateien verwenden</td></tr>
|
||||
<tr><td>Deutschland</td><td>Alphaplan Excel</td><td>Vollfile/Jahresfile erforderlich</td><td>Keine Delta-Dateien verwenden</td></tr>
|
||||
<tr><td>CH/AT</td><td>SAP OData</td><td>Quellsystem wird neu gelesen</td><td>Kein manueller Delta-Prozess</td></tr>
|
||||
<tr><td>FR/IT/US/IN</td><td>HANA/SAP B1/Sage</td><td>direkte Quelle</td><td>Standortdaten werden aus Quelle aufgebaut</td></tr>
|
||||
</tbody>
|
||||
</MudSimpleTable>
|
||||
<MudAlert Severity="Severity.Warning" Variant="Variant.Outlined" Class="mt-3">
|
||||
Spanien und Deutschland müssen vollständige Dateien liefern. Eine einzelne Delta-Datei würde technisch den bisherigen Stand ersetzen und damit unvollständig werden.
|
||||
</MudAlert>
|
||||
</TrainingSection>
|
||||
|
||||
<TrainingSection Title="5. Standortexport verstehen">
|
||||
<p>Der Standortexport ist der Schritt, der Rohdaten aus der jeweiligen Quelle in die zentrale Datenbank schreibt. Er liest nicht nur
|
||||
eine Datei, sondern wendet auch Mapping, Transformationen und Finance-Regeln an.</p>
|
||||
<ul>
|
||||
<li>Bei SAP/HANA wird die definierte Quelle abgefragt.</li>
|
||||
<li>Bei manuellen Excel-/CSV-Importen wird die hinterlegte Datei oder der hinterlegte Ordner verwendet.</li>
|
||||
<li>Bestehende Zeilen des Standorts werden ersetzt, damit keine veralteten Dubletten stehen bleiben.</li>
|
||||
<li>Fehler stehen in den Logs und müssen vor der zentralen Excel-Erzeugung geklärt werden.</li>
|
||||
</ul>
|
||||
</TrainingSection>
|
||||
|
||||
<TrainingSection Title="6. Zentrale Excel-Datei">
|
||||
<MudSimpleTable Dense Hover>
|
||||
<thead><tr><th>Blatt</th><th>Zweck</th><th>Prüfung</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>Sales</td><td>Rohdaten plus normalisierte Spalten</td><td>Land, TSC, Beleg, Kunde, Wert, Währung</td></tr>
|
||||
<tr><td>Finance Summary</td><td>verbindliche Aggregation</td><td>Jahr, Land, Währung, Net Sales Actual</td></tr>
|
||||
<tr><td>Finance Details</td><td>Detailzeilen zur Summary</td><td>Summe je Land muss Summary ergeben</td></tr>
|
||||
<tr><td>Finance Filter Hilfe</td><td>Hinweise zur Excel-Prüfung</td><td>Filter und Pivot-Anleitung</td></tr>
|
||||
</tbody>
|
||||
</MudSimpleTable>
|
||||
</TrainingSection>
|
||||
</MudTabPanel>
|
||||
|
||||
<MudTabPanel Text="Abgleich">
|
||||
<TrainingSection Title="7. Finance Summary lesen">
|
||||
<p>Finance Summary ist die kompakte Sicht für Finance. Sie enthält nur Zeilen, die nach Finance-Regel eingeschlossen sind.
|
||||
Entscheidend sind Finance-Jahr, Country Key, Währung und Net Sales Actual.</p>
|
||||
<ul>
|
||||
<li>Immer zuerst nach Jahr 2025 filtern, wenn der 2025-Abgleich geprüft wird.</li>
|
||||
<li>Country Key ist die Finance-Länderlogik, nicht zwingend nur der sichtbare Rohdaten-Ländername.</li>
|
||||
<li>Währung muss zum Referenzwert passen, zum Beispiel GBP für UK oder INR für Indien.</li>
|
||||
<li>Included Rows zeigt, wie viele Detailzeilen in die Summe geflossen sind.</li>
|
||||
</ul>
|
||||
</TrainingSection>
|
||||
|
||||
<TrainingSection Title="8. Finance Details gegen Summary prüfen">
|
||||
<p>Finance Details ist das Kontrollblatt für Rückfragen. Die Summe über <code>Net Sales Actual</code> in Finance Details muss
|
||||
je Jahr, Land und Währung exakt mit Finance Summary übereinstimmen.</p>
|
||||
<MudSimpleTable Dense Hover>
|
||||
<thead><tr><th>Prüfung</th><th>Vorgehen</th><th>Erwartung</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>Landessumme</td><td>Details nach Year, Country Key und Currency aggregieren</td><td>identisch zu Finance Summary</td></tr>
|
||||
<tr><td>Einzelbeleg</td><td>Invoice Number, Position und Document Entry suchen</td><td>Beleg nachvollziehbar</td></tr>
|
||||
<tr><td>Ausschluss</td><td>Sales-Blatt mit Finance Include vergleichen</td><td>Regelgrund sichtbar</td></tr>
|
||||
<tr><td>Dubletten</td><td>Belegkopfwerte und Positionen prüfen</td><td>B1-Kopflogik wird nicht doppelt gezählt</td></tr>
|
||||
</tbody>
|
||||
</MudSimpleTable>
|
||||
</TrainingSection>
|
||||
|
||||
<TrainingSection Title="9. Soll/Ist Vergleich">
|
||||
<p>Der Soll/Ist Vergleich nutzt dieselbe Finance-Reconciliation-Logik wie die zentrale Finance-Sicht. Er ist die Seite für
|
||||
Freigabe, Abweichungsanalyse und Status je Land.</p>
|
||||
<MudSimpleTable Dense Hover>
|
||||
<thead><tr><th>Status</th><th>Bedeutung</th><th>Aktion</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>OK</td><td>Istwert passt gegen Referenz innerhalb Toleranz</td><td>für Freigabe vormerken</td></tr>
|
||||
<tr><td>Prüfen</td><td>Differenz vorhanden oder Regel noch nicht final</td><td>Details und Länderregel prüfen</td></tr>
|
||||
<tr><td>Keine Daten</td><td>Kein aktueller Stand in CentralSalesRecords</td><td>Standortexport oder Import prüfen</td></tr>
|
||||
</tbody>
|
||||
</MudSimpleTable>
|
||||
</TrainingSection>
|
||||
|
||||
<TrainingSection Title="10. Länderlogik kompakt">
|
||||
<MudSimpleTable Dense Hover>
|
||||
<thead><tr><th>Land</th><th>Aktuelle Hauptlogik</th><th>Hinweis</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>DE</td><td>Alphaplan NettoPreisGesamtX, GS negativ, Finance-Ausschlüsse</td><td>Vollfile erforderlich</td></tr>
|
||||
<tr><td>ES</td><td>Sage ImporteNeto, REC/Credit negativ</td><td>Vollfile erforderlich</td></tr>
|
||||
<tr><td>IT</td><td>B1 Positions-Netto, Trafag Italia ausgeschlossen, Dublettenlogik</td><td>Detailprüfung wichtig</td></tr>
|
||||
<tr><td>UK</td><td>Sage Netto in GBP, Credit Notes negativ</td><td>Basis plus Deltas möglich</td></tr>
|
||||
<tr><td>FR/US</td><td>B1 Sales Price/Value bevorzugt</td><td>gegen CheckValue prüfen</td></tr>
|
||||
<tr><td>IN</td><td>Hauswährung INR</td><td>Referenz in Local Currency</td></tr>
|
||||
<tr><td>CH/AT</td><td>SAP OData NetwrHc</td><td>AT hat Referenz, CH aktuell ohne Sollwert</td></tr>
|
||||
</tbody>
|
||||
</MudSimpleTable>
|
||||
</TrainingSection>
|
||||
</MudTabPanel>
|
||||
|
||||
<MudTabPanel Text="Fehler & Freigabe">
|
||||
<TrainingSection Title="11. Typische Fehler und Massnahmen">
|
||||
<MudSimpleTable Dense Hover>
|
||||
<thead><tr><th>Fehler</th><th>Ursache</th><th>Massnahme</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>Zentrale Datei konnte nicht erzeugt werden</td><td>Excel/SharePoint-Datei gesperrt oder Uploadfehler</td><td>Datei schliessen, Logs prüfen, ggf. Zeitstempeldatei verwenden</td></tr>
|
||||
<tr><td>Land fehlt in Summary</td><td>Standort nicht exportiert oder keine Finance Include Zeilen</td><td>Standortexport und Finance-Regeln prüfen</td></tr>
|
||||
<tr><td>Summe passt nicht zum Soll</td><td>falsche Datei, falsches Jahr, Länderregel offen</td><td>Finance Details aggregieren und Länderlogik prüfen</td></tr>
|
||||
<tr><td>Zu wenige Zeilen nach Import</td><td>Delta statt Vollfile verwendet</td><td>bei ES/DE vollständige Datei neu liefern lassen</td></tr>
|
||||
<tr><td>Keine Verbindung zur Quelle</td><td>Credentials, Netzwerk, HANA/SAP nicht erreichbar</td><td>Settings und Logs prüfen</td></tr>
|
||||
</tbody>
|
||||
</MudSimpleTable>
|
||||
</TrainingSection>
|
||||
|
||||
<TrainingSection Title="12. Freigabe-Checkliste">
|
||||
<MudSimpleTable Dense Hover>
|
||||
<thead><tr><th>Nr.</th><th>Prüfpunkt</th><th>OK</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>1</td><td>Alle relevanten Standorte wurden nach letzter Dateiänderung exportiert</td><td></td></tr>
|
||||
<tr><td>2</td><td>Zentrale Excel wurde danach neu erzeugt</td><td></td></tr>
|
||||
<tr><td>3</td><td>Finance Summary stimmt aggregiert mit Finance Details überein</td><td></td></tr>
|
||||
<tr><td>4</td><td>Soll/Ist Vergleich enthält keine unerwarteten Abweichungen</td><td></td></tr>
|
||||
<tr><td>5</td><td>ES und DE wurden als Vollfile geliefert</td><td></td></tr>
|
||||
<tr><td>6</td><td>Offene Länder- oder Regelentscheidungen sind dokumentiert</td><td></td></tr>
|
||||
<tr><td>7</td><td>SharePoint/Excel-Datei ist nicht mehr gesperrt</td><td></td></tr>
|
||||
</tbody>
|
||||
</MudSimpleTable>
|
||||
</TrainingSection>
|
||||
</MudTabPanel>
|
||||
</MudTabs>
|
||||
|
||||
<style>
|
||||
.training-lead { max-width: 980px; color: var(--mud-palette-text-secondary); }
|
||||
.training-hero-image, .training-doc-image { width: 100%; border: 1px solid var(--mud-palette-lines-default); border-radius: 6px; background: #fff; }
|
||||
.training-doc-image { margin-bottom: 12px; }
|
||||
.training-section { margin: 18px 0 28px; max-width: 1180px; }
|
||||
.training-section p { margin-bottom: 12px; line-height: 1.55; }
|
||||
.training-section ul { margin-top: 8px; }
|
||||
.training-flow { display: grid; grid-template-columns: repeat(5, minmax(120px, 1fr)); gap: 10px; margin: 12px 0 18px; }
|
||||
.training-flow div { border: 1px solid var(--mud-palette-lines-default); border-radius: 6px; padding: 12px; background: var(--mud-palette-surface); }
|
||||
.training-flow span { display: inline-flex; width: 28px; height: 28px; align-items: center; justify-content: center; border-radius: 50%; background: var(--mud-palette-primary); color: var(--mud-palette-primary-text); font-weight: 700; margin-bottom: 8px; }
|
||||
.training-flow strong, .training-flow small { display: block; }
|
||||
.training-flow small { color: var(--mud-palette-text-secondary); margin-top: 4px; }
|
||||
@@media (max-width: 900px) { .training-flow { grid-template-columns: 1fr; } }
|
||||
</style>
|
||||
|
||||
@code {
|
||||
private string T(string german, string english) => UiText.Text(german, english);
|
||||
}
|
||||
Reference in New Issue
Block a user