TCMS - Report für externe Anwendungen bereitstellen

Version 2.1 by Tobias Wintrich on 2025/05/22 10:14

Über "Datei" -> "Report Exportieren" lässt sich bereits heute ein Maschinenlesbarer Report in Form einer CSV Datei exportieren. Will man aber Regelmäßig die Daten aus dem TCMS in einem externen Programm nutzen, lässt sich der Export auch in wenigen Schritten automatisieren. Der Export kann hierdurch voll automatisiert über HTTP(s)/FTP oder SMB bereitgestellt, oder auf einem Netzlaufwerk abgelegt werden.

Information

Zuletzt erfolgreich getestet mit:

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

Konfiguration eines Export Ordners

Entschieden Sie sich 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". Als Laufwerk können hier Zeile per "SAMAB", "NFS", "SSH" oder "WebDAV" eingebunden werden.

Anhand des hier vergebenen "Laufwerksnamen" muss im folgenden Schritt der Export Pfad entsprechend gesetzt angepasst werden.

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

report01.png

Report zum Download freigeben

Legen Sie das Laufwerk, welches Sie zur Freigabe Ihres Reports nutzen wollen wie unter RangeeOS - Austauschlaufwerk auf dem Thin Client beschrieben an.

Anhand des für das Verzeichnis vergebenen "Laufwerksnamen" muss im folgenden Schritt der Export Pfad entsprechend gesetzt angepasst werden.

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

Konfigurationsexport automatisieren

Zu Automatisierung des Exports können Sie in der Kommbox des TCMS dieses Skript hinterlegen:

FOLDER="report"

# Dieser Befehl exportiert den TCMS Report in das lokale Verzeichnis
COMMAND="/opt/rangee/tcms/symfony tcms:export-report /mnt/shares/local_dir/$FOLDER/report.csv"

# 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