> ## Documentation Index
> Fetch the complete documentation index at: https://help.mathership.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Export-Historie

> Zeige, filtere, aktualisiere und lade Berichtsexport-Jobs herunter, die aus Mathership-Berichten erstellt wurden

# Export-Historie

Die Export-Historie zeigt Berichtsexporte, die als Hintergrund-Jobs erstellt wurden.

Verwende sie, um zu prüfen, ob ein Export ausstehend ist, verarbeitet wird, abgeschlossen ist oder fehlgeschlagen ist, und um abgeschlossene Exportdateien herunterzuladen.

<CardGroup cols={3}>
  <Card title="Export-Jobs verfolgen" icon="activity">
    Sieh alle Berichtsexport-Jobs mit Status, Format, Datumsbereich, Berichtstyp und Erstellungsdatum.
  </Card>

  <Card title="Abgeschlossene Dateien herunterladen" icon="download">
    Lade abgeschlossene Exporte herunter, sobald die Datei bereit ist.
  </Card>

  <Card title="Filtern und aktualisieren" icon="refresh-cw">
    Filtere nach Status, Dateiformat und Erstellungsdatum oder aktualisiere die Tabelle manuell.
  </Card>
</CardGroup>

## Export-Historie öffnen

Die Export-Historie wird aus dem Berichtsbereich geöffnet.

Verwende sie, nachdem du einen Hintergrundexport von einer Berichtsseite erstellt hast, zum Beispiel aus dem Purchase Orders Report.

<Steps>
  <Step title="Reports öffnen">
    Gehe in Mathership in den Berichtsbereich.
  </Step>

  <Step title="Export History öffnen">
    Wähle **Export History**.
  </Step>

  <Step title="Exporte prüfen">
    Prüfe den Status früherer Exporte und lade abgeschlossene Dateien herunter.
  </Step>
</Steps>

## Was die Export-Historie zeigt

Die Tabelle der Export-Historie zeigt Berichtsexport-Jobs für den ausgewählten Unternehmenskontext.

Jede Zeile kann Folgendes anzeigen:

| Spalte        | Beschreibung                                                                                  |
| ------------- | --------------------------------------------------------------------------------------------- |
| Format        | Export-Dateiformat, zum Beispiel CSV oder PDF                                                 |
| Datumsbereich | Der Berichtszeitraum, den der Export abdeckt                                                  |
| Berichtstyp   | Der Typ des Berichts, der exportiert wurde                                                    |
| Status        | Aktueller Status des Export-Jobs                                                              |
| Erstellt      | Wann der Export-Job erstellt wurde                                                            |
| Download      | Download-Button, der nur angezeigt wird, wenn der Export abgeschlossen und herunterladbar ist |

## Dateiformat-Badges

Exportdateien werden mit visuellen Badges angezeigt.

| Format | Badge                 |
| ------ | --------------------- |
| CSV    | Grünes Tabellen-Badge |
| PDF    | Blaues Dokument-Badge |

## Status

Export-Jobs können unterschiedliche Status haben.

| Status       | Bedeutung                                                                                                 |
| ------------ | --------------------------------------------------------------------------------------------------------- |
| `pending`    | Der Export-Job wurde erstellt und wartet auf Verarbeitung                                                 |
| `processing` | Der Export-Job wird aktuell erzeugt                                                                       |
| `completed`  | Der Export wurde erfolgreich abgeschlossen und kann heruntergeladen werden, wenn eine Datei verfügbar ist |
| `failed`     | Der Export ist fehlgeschlagen. Die Fehlermeldung kann unter dem Failed-Badge angezeigt werden             |

Wenn ein Job verarbeitet wird und Fortschrittsinformationen verfügbar sind, kann das Frontend den Fortschritt in Prozent neben dem Status-Badge anzeigen.

## Automatische Aktualisierung

Die Export-Historie aktualisiert sich automatisch, solange es noch nicht abgeschlossene Jobs gibt.

Nicht abgeschlossene Jobs sind Jobs, die noch nicht:

* `completed`
* `failed`

sind.

Das Frontend prüft auf nicht abgeschlossene Jobs und aktualisiert die Tabelle alle 5 Sekunden, solange ein nicht abgeschlossener Job sichtbar ist.

Du kannst auch auf **Refresh** klicken, um die Tabelle manuell neu zu laden.

## Export herunterladen

Abgeschlossene Exporte zeigen einen **Download**-Button, wenn der Job herunterladbar ist.

<Steps>
  <Step title="Abgeschlossenen Export finden">
    Suche nach einer Zeile mit dem Status **Completed**.
  </Step>

  <Step title="Auf Download klicken">
    Klicke im Aktionsbereich der Zeile auf **Download**.
  </Step>

  <Step title="Datei öffnen">
    Mathership öffnet eine sichere Download-URL in einem neuen Browser-Tab.
  </Step>
</Steps>

<Note>
  Download wird nur angezeigt, wenn der Exportstatus `completed` ist und der Job heruntergeladen werden kann.
</Note>

## Filter

Die Export-Historie unterstützt Filter in der Toolbar.

| Filter   | Beschreibung                                      |
| -------- | ------------------------------------------------- |
| Status   | Nach einem oder mehreren Exportstatus filtern     |
| Format   | Nach CSV oder PDF filtern                         |
| Erstellt | Nach Erstellungsdatumsbereich des Exports filtern |

Klicke auf **Add filter**, um optionale Filter anzuzeigen.

Verwende **Clear all**, um aktive Filter zurückzusetzen.

## URL-Suchparameter

Das Frontend speichert Filter-, Sortier- und Paginierungsstatus in der URL.

| Parameter      | Beschreibung                                   |
| -------------- | ---------------------------------------------- |
| `page`         | Aktuelle Seite, beginnend bei `0`              |
| `page_size`    | Anzahl der Zeilen pro Seite, von `1` bis `200` |
| `ordering`     | Sortierreihenfolge, zum Beispiel `-created_at` |
| `status`       | Kommagetrennte Statuswerte                     |
| `file_format`  | Kommagetrennte Dateiformate                    |
| `created_from` | Start des Erstellungsdatumsfilters             |
| `created_to`   | Ende des Erstellungsdatumsfilters              |

Die Standardsortierung zeigt die neuesten Einträge zuerst:

| Einstellung | Standard      |
| ----------- | ------------- |
| `ordering`  | `-created_at` |
| `page_size` | `20`          |

## Sortierung

Die Tabelle unterstützt Sortierung für ausgewählte Spalten.

Sortierbare Spalten sind:

* Format
* Datumsbereich
* Berichtstyp
* Status
* Erstellt

Die Sortierung aktualisiert den URL-Parameter `ordering` und setzt die Tabelle auf die erste Seite zurück.

## Paginierung

Die Export-Historie ist paginiert.

Das Backend gibt Folgendes zurück:

| Feld          | Bedeutung                            |
| ------------- | ------------------------------------ |
| `results`     | Export-Jobs für die aktuelle Seite   |
| `page`        | Aktuelle Seite                       |
| `page_size`   | Anzahl der Zeilen pro Seite          |
| `total`       | Gesamtzahl der passenden Export-Jobs |
| `total_pages` | Gesamtzahl der Seiten                |

## Export-Job erstellen

Export-Jobs werden von Berichtsseiten erstellt, zum Beispiel vom Einkaufsbericht.

Eine Berichtsseite kann zum Beispiel einen Hintergrundexport-Job mit folgenden Feldern erstellen:

| Feld          | Bedeutung                                                                                      |
| ------------- | ---------------------------------------------------------------------------------------------- |
| `company_id`  | Unternehmen, dem der Export-Job gehört                                                         |
| `date_from`   | Startdatum des Exportzeitraums                                                                 |
| `date_to`     | Enddatum des Exportzeitraums                                                                   |
| `file_format` | Exportformat, zum Beispiel CSV oder PDF                                                        |
| `report_type` | Berichtstyp. Wenn er weggelassen wird, verwendet das Backend standardmäßig `delivery_location` |

Nachdem der Job erstellt wurde, startet er mit dem Status `pending`.

Das Backend stellt den Berichtsexport-Task anschließend zur Verarbeitung in die Warteschlange.

## Direkter Download vs. Hintergrundexport

Einige Berichtsseiten können sowohl direkte Downloads als auch Hintergrundexporte unterstützen.

| Aktion                          | Verhalten                                                                       |
| ------------------------------- | ------------------------------------------------------------------------------- |
| Direkter CSV- oder PDF-Download | Die Berichtsdatei wird sofort vom Berichts-Endpunkt erzeugt und heruntergeladen |
| Hintergrundexport-Job           | Ein Job wird erstellt und erscheint später in der Export-Historie               |

Hintergrundexporte sind nützlich für größere Berichte oder länger laufende Berichtserstellung.

## Verhalten der Backend-Liste

Das Backend listet Export-Jobs über den Export-Job-Endpunkt auf.

Es unterstützt:

* Paginierung
* Unternehmensfilterung
* Statusfilterung
* Berichtstypfilterung
* Dateiformatfilterung
* Filterung nach Erstellungsdatumsbereich
* Sortierung

Das Backend beschränkt die Liste auf Unternehmen, für die der Benutzer die Berechtigung hat, Finanzdaten einzusehen.

## Backend-Filter

Das Backend akzeptiert diese Filter für Export-Jobs:

| Query-Parameter   | Beschreibung                                                |
| ----------------- | ----------------------------------------------------------- |
| `company_id`      | Ergebnisse auf ein Unternehmen beschränken                  |
| `status`          | Nach einem oder mehreren Status filtern                     |
| `report_type`     | Nach einem oder mehreren Berichtstypen filtern              |
| `file_format`     | Nach einem oder mehreren Dateiformaten filtern              |
| `created_at_from` | Jobs filtern, die an oder nach diesem Datum erstellt wurden |
| `created_at_to`   | Jobs filtern, die an oder vor diesem Datum erstellt wurden  |
| `ordering`        | Sortierreihenfolge                                          |
| `page`            | Seitennummer                                                |
| `page_size`       | Seitengröße                                                 |

<Note>
  Das Frontend verwendet `created_from` und `created_to`; der Backend-Export-Job-Endpunkt verwendet `created_at_from` und `created_at_to`. Der API-Hook sollte diese Werte übersetzen, bevor er das Backend aufruft.
</Note>

## Backend-Sortierung

Das Backend unterstützt Sortierung nach:

| Feld          |
| ------------- |
| `created_at`  |
| `updated_at`  |
| `status`      |
| `date_from`   |
| `date_to`     |
| `id`          |
| `report_type` |
| `file_format` |

Wenn ein nicht unterstütztes Sortierfeld gesendet wird, fällt das Backend auf „neueste zuerst“ zurück.

## Zugriffskontrolle

Export-Jobs sind durch Finanzberichtszugriff eingeschränkt.

Ein Benutzer kann Export-Jobs nur für Unternehmen auflisten, erstellen oder herunterladen, bei denen er die erforderliche Berechtigung zum Anzeigen von Finanzdaten hat.

Wenn der Benutzer keinen Zugriff hat, gibt Mathership einen Zugriffsfehler zurück.

## Backend-Verhalten beim Download

Wenn ein Benutzer einen abgeschlossenen Export herunterlädt, führt das Backend Folgendes aus:

1. Prüfen, ob der Job zu einem Unternehmen gehört, auf das der Benutzer Zugriff hat
2. Bestätigen, dass der Benutzer die Berechtigung hat, Finanzdaten einzusehen
3. Prüfen, ob der Jobstatus `completed` ist
4. Prüfen, ob ein Dateischlüssel existiert
5. Eine sichere, vorsignierte S3-Download-URL erzeugen
6. Download-URL, Ablaufzeit und Dateiname zurückgeben

Die zurückgegebene Download-URL läuft nach 1 Stunde ab.

| Antwortfeld          | Bedeutung                                                    |
| -------------------- | ------------------------------------------------------------ |
| `download_url`       | Temporäre sichere URL für die exportierte Datei              |
| `expires_in_seconds` | Lebensdauer der Download-URL, aktuell `3600` Sekunden        |
| `filename`           | Vorgeschlagener Dateiname für die heruntergeladene ZIP-Datei |

## Download-Fehler

| Situation                        | Ergebnis                                                        |
| -------------------------------- | --------------------------------------------------------------- |
| Job ist nicht abgeschlossen      | Download wird abgelehnt, weil der Bericht noch nicht bereit ist |
| Es existiert kein Dateischlüssel | Download wird abgelehnt, weil keine Datei verfügbar ist         |
| S3-URL-Erzeugung schlägt fehl    | Backend gibt einen Serverfehler zurück                          |
| Benutzer hat keinen Zugriff      | Backend gibt einen Autorisierungsfehler zurück                  |

## Leere und ladende Zustände

Das Frontend kann Folgendes anzeigen:

| Zustand        | Verhalten                                                         |
| -------------- | ----------------------------------------------------------------- |
| Loading        | Tabelle zeigt Ladezustand, während Export-Jobs abgerufen werden   |
| No rows        | Tabelle ist leer, wenn keine Jobs zu den aktuellen Filtern passen |
| Failed job     | Failed-Badge wird angezeigt, mit Fehlermeldung, falls verfügbar   |
| Processing job | Processing-Badge wird angezeigt, mit Fortschritt, falls verfügbar |

## Häufige Arbeitsabläufe

### Berichtsexport erstellen und herunterladen

1. Berichtsseite öffnen
2. Benötigte Filter auswählen, zum Beispiel Datumsbereich und Lieferort
3. Export-Job erstellen
4. **Export History** öffnen
5. Warten, bis der Jobstatus **Completed** ist
6. Auf **Download** klicken

### Prüfen, warum ein Export fehlgeschlagen ist

1. **Export History** öffnen
2. Nach Status **Failed** filtern
3. Fehlgeschlagenen Job finden
4. Fehlermeldung prüfen, die unter dem Failed-Badge angezeigt wird
5. Export erneut erstellen, nachdem Berichtsfilter oder Datenproblem korrigiert wurden

### Bestimmten Export finden

1. **Export History** öffnen
2. Nach Dateiformat filtern, wenn du weißt, ob es CSV oder PDF war
3. Nach Erstellungsdatumsbereich filtern
4. Nach **Created** oder **Date range** sortieren
5. Abgeschlossene Datei herunterladen

## Best Practices

<CardGroup cols={2}>
  <Card title="Hintergrundexporte für größere Berichte verwenden" icon="file-archive">
    Erstelle Export-Jobs für Berichte, deren Erzeugung länger dauern kann.
  </Card>

  <Card title="Status vor dem Download prüfen" icon="activity">
    Download ist erst verfügbar, nachdem der Export den Status Completed erreicht hat.
  </Card>

  <Card title="Bei Bedarf aktualisieren" icon="refresh-cw">
    Verwende den Refresh-Button, wenn du den neuesten Jobstatus sofort prüfen möchtest.
  </Card>

  <Card title="Filter verwenden" icon="filter">
    Filtere nach Status, Format und Erstellungsdatum, um ältere Exporte schnell zu finden.
  </Card>

  <Card title="Zeitnah herunterladen" icon="clock">
    Sichere Download-URLs laufen nach 1 Stunde ab.
  </Card>

  <Card title="Berechtigungen prüfen" icon="shield">
    Benutzer benötigen Finanzberichtszugriff für das Unternehmen, um Exporte aufzulisten, zu erstellen oder herunterzuladen.
  </Card>
</CardGroup>

## Häufige Probleme

<AccordionGroup>
  <Accordion title="Download-Button ist nicht sichtbar">
    Der Job muss den Status `completed` haben und als herunterladbar markiert sein.

    Wenn der Job noch pending oder processing ist, warte, bis er abgeschlossen ist.
  </Accordion>

  <Accordion title="Export hängt in pending oder processing fest">
    Klicke auf **Refresh**, um den neuesten Status neu zu laden.

    Wenn sich der Status lange nicht ändert, muss der Export-Task möglicherweise im Backend geprüft werden.
  </Accordion>

  <Accordion title="Export fehlgeschlagen">
    Prüfe die Fehlermeldung, die unter dem Failed-Badge angezeigt wird.

    Erstelle den Export erneut, nachdem Berichtsfilter oder zugrunde liegendes Datenproblem korrigiert wurden.
  </Accordion>

  <Accordion title="Download-Link abgelaufen">
    Klicke in der Export-Historie erneut auf **Download**, um eine neue sichere Download-URL anzufordern.
  </Accordion>

  <Accordion title="Ich kann Exporte für ein Unternehmen nicht sehen">
    Prüfe, ob du das richtige Unternehmen ausgewählt hast und ob dein Benutzer die Berechtigung hat, Finanzberichte für dieses Unternehmen anzuzeigen.
  </Accordion>
</AccordionGroup>

## Verwandte Seiten

<CardGroup cols={2}>
  <Card title="Bestandsbericht" icon="chart-line" href="/en/restaurants/reports/inventory-report">
    Prüfe Lagerbestände, Bewegungshistorie, Kosten und Zutatenaktivität.
  </Card>

  <Card title="Einkaufsbestellungsbericht" icon="file-spreadsheet" href="/en/restaurants/reports/purchase-orders">
    Analysiere erhaltene Lieferantenbestelldaten nach Lieferort und Datumsbereich.
  </Card>

  <Card title="Lieferorte" icon="location-dot" href="/en/restaurants/settings/delivery-locations">
    Verwalte Lieferorte, die von Einkaufsberichten verwendet werden.
  </Card>

  <Card title="Organisationseinstellungen" icon="building" href="/en/restaurants/settings/organization">
    Verwalte Organisationen, Unternehmen, Mitglieder und Zugriffsberechtigungen.
  </Card>
</CardGroup>
