Automatisierte Berichte

Diese Seite beschreibt wie man einen automatisiertes Bericht mithilfe Cronjobs und CSV-Export.

Befehl

55 19 * * 5 /opt/mercaware/mx023/src/mod_csvexport/bin/psql2xls -c "SELECT journal.zuordopnr, rek.rdat, ROUND(CAST(SUM(journal.saldowertmw) AS numeric), 2) AS wert FROM journal INNER JOIN rek ON journal.zuordopnr = rek.renr WHERE journal.kontokorrent = '100003' AND rek.lfd IN (SELECT rek.lfd FROM rek WHERE to_date(rek.rdat, 'YYYY-MM-DD') <= (current_date - 40)) GROUP BY journal.zuordopnr,rek.rdat HAVING (ROUND(CAST(SUM(journal.saldowertmw) AS numeric),2) <> 0) ORDER BY rek.rdat;" --from 'berichte@mercaware.de' --to 'stojicevic@mercaware.de' --subject 'Automasierter Bericht - Offene Posten' --output '/tmp/Offene Posten.xls' --host 'localhost' --user 'pg_mx007' --port '51007' --database 'MXDBS'

Die Hauptbefehl um eine XLS-Datei zu erstellen befindet sich im mod_csvexport:

/opt/mercaware/mx023/src/mod_csvexport/bin/psql2xls

Dieses Befehl ermöglicht die Erstellung eine XLS-Datei aus eine SQL-Abfrage, und als E-Mail schicken.

Parameter

  • -c : Bezeichnet die SQL-Abfrage die für den Bericht benutzt wird.
  • –from: Die Absenderadresse (E-Mail)
  • –to: Die Empfangeradresse (E-Mail)
  • –subject: Betreff des E-Mails
  • –output: Der Pfad, wo den Bericht gespeichert wird (auf dem Server)
  • –host: Datenbank-Parameter bezeichnet wo der Datenbank erstellt ist.
  • –user: Datenbank-Parameter bezeichnet der Datenbank Benutzer.
  • –port: Datenbank-Parameter bezeichnet der Datenbank Port.
  • –database: Datenbank-Paramter bezeichnet die Datenbankname.

Erstellen ein Cronjob

Um einen Bericht automatisch zu erstellen, benötigt man eine Cronjob. Die wurden normalerweise in der /etc/crontab Datei gespeichert. Allerdings, weil dieses Befehl als der Mandant-Benutzer ausgeführt werden soll, können wir nicht einfach uns als „root“ anmelden, und die Datei im „vi“ öffnen, um die Job einzurichten. Es muss so gemacht werden:

  1. SSH Verbindung mit dem Server erstellen.
  2. Sich als Mandant-Benutzer anmelden. Beispiel:
    su - mx001
  3. Folgende Kommando ausführen:
     crontab -e

    Da landet man im „vi“ für die „crontab“ Datei dieses Benutzer.

  4. Befehl wie unten (oder oben im Beispiel) schreiben.
  5. Speichern und schließen mit
    :wq
 # ┌───────────── min (0 - 59)
 # │ ┌────────────── hour (0 - 23)
 # │ │ ┌─────────────── day of month (1 - 31)
 # │ │ │ ┌──────────────── month (1 - 12)
 # │ │ │ │ ┌───────────────── day of week (0 - 6) (0 to 6 are Sunday to Saturday, or use names; 7 is Sunday, the same as 0)
 # │ │ │ │ │
 # │ │ │ │ │
 # * * * * *  command to execute

Wie oben angezeigt, um einen Befehl im crontab anzulegen, benutzt man die vorgegebene Format.

  • Platz 1: Minuten (Welche Minute in der Stunde sollte die Job ausgeführt werden).
  • Platz 2: Stunden (Welche Stunde im Tag sollte die Job ausgeführt werden).
  • Platz 3: Monatstag (Welcher Tag im Monat sollte die Job ausgeführt werden).
  • Platz 4: Monat (Welcher Monat im Jahr sollte die Job ausgeführt werden).
  • Platz 5: Wochentag (Welcher Tag der Woche sollte die Job ausgeführt werden).
systemadministration/autombericht.txt · Zuletzt geändert: 01.03.2020 08:25 (Externe Bearbeitung)
 

mercaware ist eine ERP-Software der All for Accounting GmbH

ERP für Ihr einzigartiges Unternehmen

Auberlenstr. 13
70736 Fellbach
Tel.: +49 711 90 65 79 71
E-Mail: