TCMS - Report für externe Anwendungen bereitstellen

Last modified by Tobias Wintrich on 2025/05/22 12:20

Über "Datei" → "Report exportieren" lässt sich ein maschinenlesbarer Report im CSV-Format exportieren. Möchte man die Daten regelmäßig in einem externen Programm nutzen, kann der Export mit wenigen Schritten automatisiert werden. Der Report lässt sich dadurch vollständig automatisiert über HTTP(S), FTP oder SMB bereitstellen oder auf einem Netzlaufwerk ablegen.

Information

Zuletzt erfolgreich getestet mit:

Firmware: x64 -13.00 Build: 052
TCMS 1.9 - 13.00 Build 007

Konfiguration eines Export-Ordners

Entscheiden Sie zunächst, ob Sie Ihren Report auf einem Netzlaufwerk ablegen (PUT) oder zum Download für andere Anwendungen (PULL) bereitstellen möchten.

Report auf ein Netzlaufwerk

Wenn Sie Ihren Report auf einem Netzlaufwerk ablegen möchten, konfigurieren Sie das Laufwerk in der Kommbox des TCMS unter „Peripherie“ → „Laufwerke“ → „Neues Netzlaufwerk“. Laufwerke können hier über SMB, NFS, SSH oder WebDAV eingebunden werden.

Anhand des hier vergebenen Laufwerksnamens muss im folgenden Schritt der Exportpfad entsprechend angepasst werden:

EXPORT_PATH="/mnt/shares/net/#Laufwerksname#"

report01.png

Report zum Download freigeben

Legen Sie das Laufwerk, das Sie zur Freigabe Ihres Reports verwenden möchten, wie in der Anleitung RangeeOS - Austauschlaufwerk auf dem Thin Client beschrieben an.

Anhand des für das Verzeichnis vergebenen Laufwerksnamens muss im folgenden Schritt der Exportpfad entsprechend angepasst werden:

EXPORT_PATH="/mnt/shares/local_dir/#Laufwerksname#" 

Konfigurationsexport automatisieren

Zur Automatisierung des Exports können Sie in der Kommbox des TCMS ein Skript hinterlegen. Im folgenden Beispiel wird ein Report einmalig beim Start des TCMS und anschließend zu jeder vollen Stunde erstellt. Bitte passen Sie EXPORT_PATH und REPORT_FILENAME entsprechend an:

#-------------------------------------Bitte anpassen-------------------------------------#
#Lokales Verzeichnis für den Export. Übernehmen Sie bitte Ihren zuvor definierten EXPORT_PATH
EXPORT_PATH="/mnt/shares/local_dir/#Laufwerksname#"

#Definiert den Dateinamen des Report-Exports - frei wählbar
REPORT_FILENAME="report.csv"
#----------------------------------------------------------------------------------------#

# Dieser Befehl exportiert den TCMS Report in das lokale Verzeichnis
COMMAND="/opt/rangee/tcms/symfony tcms:export-report $EXPORT_PATH/$REPORT_FILENAME"

# Temporäre Datei für den aktuellen Crontab
TEMP_CRON=$(mktemp)

# Aktuellen Crontab in die temporäre Datei schreiben
crontab -l > "$TEMP_CRON" 2>/dev/null

# Prüfen, ob der Befehl bereits im Crontab existiert
grep -F "$COMMAND" "$TEMP_CRON" > /dev/null
if [ $? -eq 0 ]; then
    echo "Der Cronjob existiert bereits."
else
    # Den neuen Cronjob hinzufügen (jede Stunde)
    echo "0 * * * * $COMMAND" >> "$TEMP_CRON"
    # Den aktualisierten Crontab laden
    crontab "$TEMP_CRON"
fi

# Temporäre Datei löschen
rm "$TEMP_CRON"

# Command einmalig ausführen:
$COMMAND

Das Skript können Sie in der Kommbox unter „Werkzeuge“ → „Skripte“ → „Neue Verbindung“ hinterlegen. Verwenden Sie dabei die folgenden Einstellungen:

  • Verbindungsname: frei wählbar
  • Als root ausführen: ja
  • Skript: das erstellte Skript einfügen
  • Automatischer Start: ja

Starten Sie den TCMS anschließend einmal neu.

Abruf des Reports

Ein auf einem Netzlaufwerk abgelegter Report ist nach Ausführung des Skripts direkt von dort abrufbar.

Die Abrufoptionen für das lokale Laufwerk sind ebenfalls im Artikel RangeeOS - Austauschlaufwerk auf dem Thin Client beschrieben. Per HTTPS können Sie einen über das obige Skript erstellten Report (bei Laufwerksname="report") unter folgender Adresse herunterladen:

https://#Client#/shares/report/report.csv

share03.png