Dokumentation

Hansalog
zuletzt geändert am 30.10.2026
Überblick

Der Provider Hansalog holt Stellenanzeigen aus den Hansalog-Bewerbermanagement-Systemen zweier Mercedes-Benz-Händlergruppen und stellt sie im Projekt Zukunft mit Stern bereit.

Crawler Kürzel Händlergruppe Quelle (API)
Hansalog Lueg HAL Autohaus Lueg GmbH https://hansalog.lueg.de/api/index.php
Hansalog Senger HAS Egon Senger GmbH https://ausbildung.senger-mobility.de/api/index.php
Was ein Crawler tut

Ein Crawler liest alle aktuellen Stellenanzeigen einer Händlergruppe, ordnet jede Anzeige den passenden Mercedes-Benz-Standorten zu, ergänzt sie um Kategorie, Berufsprofil, Kontakt und Bilder und schreibt das Ergebnis in den Solr-Suchindex der Zielseite oder in eine Datei.

Jeder Lauf ist ein vollständiger Abgleich: Nach dem Schreiben nach Solr werden alle Anzeigen dieses Crawlers für diese Seite gelöscht, die im aktuellen Lauf nicht mehr vorkamen.

Begriffe
Begriff Bedeutung
Provider Anbieter einer Datenquelle, hier Hansalog. Wird über die Adresse dieser Oberfläche erkannt.
Crawler Abruf für genau eine Händlergruppe (HAL oder HAS). Kann ein- und ausgeschaltet werden.
Runner Eine konkrete Konfiguration eines Crawlers: Modus, Quelle, Ziel und Zielseite. Ein Crawler kann beliebig viele Runner haben.
Modus Dev (Entwicklung), Stage (Vorschau) oder Live (öffentliche Seite).
Protokoll Ergebnis eines Laufs, wird nach dem Start unter den Runnern angezeigt.
Zielseiten
Modus Site Site-Hash
Live zukunftmitstern.de 7900d4ed7d9e4dc7ccd3670cef49576c9b2e203f
Stage stage.zms.annakannte.tech e3466741640b4a7596542375fef789fddbc357b0
Dev dev-zms.local f568f399f0d16401967f80ea8107914024f93de6

Der Site-Hash kennzeichnet in Solr, zu welcher Seite eine Anzeige gehört. Er ist der SHA1-Wert des Site-Namens (z. B. sha1("dev-zms.local")) und muss im Runner exakt zur Zielseite passen. Die Suche der Zielseite filtert nach genau diesem Wert.

Ablauf eines Laufs

Jeder Lauf durchläuft dieselben vier Schritte. Was in einem Schritt passiert, steht im Protokoll.

1. Einlesen (collect)

Je nach Runner-Einstellung Input:

  • API: Anmeldung an der Hansalog-API mit dem Token, Abruf aller Stellen über /applicantManagement/jobs, danach Abmeldung. Die Sitzung wird in data/<source>/cookie.txt gehalten.
  • Datei: Die Anzeigen werden aus der JSON-Datei gelesen, die im Runner unter from_file steht. Gut für Tests ohne API-Zugriff.
2. Zuordnen (transform)

Jede Anzeige wird geprüft und den Standorten zugeordnet:

  • Fehlen Pflichtangaben (z. B. ID oder Titel), wird die Anzeige verworfen. Im Protokoll erscheint eine Warnung.
  • Der Hansalog-Standort der Anzeige muss in der Standortliste des Crawlers bekannt sein. Ein Standort kann mehreren Händlern zugeordnet sein. Dann entsteht pro Händler ein eigener Eintrag.
  • Die Händlerdaten (Name, Adresse, Geo-Koordinaten, Website, Logo, Bewerbungslink) kommen aus der lokalen Händlerliste, nicht aus der API.

Die Besonderheiten je Crawler stehen in den Kapiteln zu HAL und HAS.

3. Anreichern (enrich)

Für jeden Eintrag werden ergänzt:

Feld Herkunft
Eindeutige ID <Site-Hash>-<Kürzel>-<Stellen-ID>-<Händler-Referenz>
Kategorie aus dem Titel: enthält „Praktikum“ → INTERNSHIP, „Ausbildung“ → EDUCATION, „Initiativ“ → PROACTIVE, sonst EXPERT
Berufsprofil aus Stichworten im Titel, z. B. „Mechatronik“ + „Pkw“. Ohne Treffer: OTHERS
Hintergrundbild Bild zum Berufsprofil, sonst das allgemeine Bild OTHERS
Ansprechpartner Name des Sachbearbeiters aus der Anzeige, sonst der Standard-Kontakt des Händlers
Erstellt / Geändert Startdatum der Anzeige
Beschreibung Stellenbeschreibung, Unternehmensbeschreibung und Aufgaben, bereinigt

Pro aufgenommener Anzeige erscheint eine INFO-Zeile „Die Anzeige ist valide und wurde aufgenommen“. Im Protokoll der Oberfläche sind diese Zeilen eingeklappt.

4. Ausgeben (transmit)

Je nach Runner-Einstellung Output:

  • Solr: Zuerst wird gezählt, wie viele Anzeigen dieses Crawlers für die Site schon im Index sind. Dann werden alle neuen Einträge in den Core core_de geschrieben und erneut gezählt. Zum Schluss werden alle älteren Einträge dieses Crawlers für diese Site gelöscht (Bereinigung). Die Bereinigung läuft nur, wenn das Schreiben erfolgreich war.
  • Datei: Alle Einträge werden als JSON in die Datei unter to_file geschrieben. Eine vorhandene Datei wird überschrieben.

Schutz bei Solr: Liefert die Quelle keine gültigen Anzeigen, wird weder geschrieben noch bereinigt. Die bisherigen Anzeigen bleiben auf der Seite, im Protokoll steht eine Warnung „Es gibt keine gültigen Anzeigen …“. Lehnt Solr das Schreiben ab oder ist nicht erreichbar, bricht der Lauf mit einem Fehler ab, und die bisherigen Anzeigen bleiben ebenfalls erhalten.

Hansalog Lueg (HAL)
HAL

Der Crawler Hansalog Lueg (HAL) liest die Stellen der Autohaus Lueg GmbH.

Controller Controller\HansalogLueg
Source hansalog-lueg
API https://hansalog.lueg.de/api/index.php
Daten-Ordner data/hansalog-lueg/
Welche Anzeigen aufgenommen werden

Eine Anzeige wird nur übernommen, wenn alle Bedingungen erfüllt sind:

  1. Stellen-ID, Titel, Standort-ID und Standort-Name sind gefüllt. Sonst: Warnung „Die Mindestanforderung an die Daten ist nicht erfüllt“.
  2. Die Standort-ID ist in der Standortliste von HAL bekannt.
  3. Das Unternehmen der Anzeige ist „Mercedes-Benz“.

Ist Punkt 2 oder 3 nicht erfüllt, erscheint die Warnung „Die Location (…) ist nicht bekannt, oder gehört nicht zu Mercedes (…)“. Das ist bei Lueg normal, weil die API auch Stellen anderer Marken und Gesellschaften liefert (z. B. Volvo, Ferrari, Mobexo, LUEG Holding).

Standorte

HAL kennt 12 Hansalog-Standorte, die auf 14 Händler verweisen. Einige Standorte sind Sammelstandorte und mehreren Händlern zugeordnet:

Standort Händler
C101, C201, NRW je 8
C401, C701 je 4
C140 2
C100, C110, C120, C130, C150, C170 je 1

Eine Anzeige an einem Sammelstandort erscheint deshalb mehrfach, einmal pro Händler.

Sonstiges
  • Für die API-Anmeldung wird nur der Token gebraucht. user und pass im Runner bleiben leer.
  • Neue Standorte oder Händler können nicht in Directus gepflegt werden. Sie stehen im Code (app/model/location.php, app/model/retailer.php). Nach einer Änderung lädt Neu aufbauen im Bereich „Händlerspeicher“ der Übersicht sie in den lokalen Speicher. Für die Änderung selbst ist eine Entwicklerin oder ein Entwickler nötig.
Hansalog Senger (HAS)
HAS

Der Crawler Hansalog Senger (HAS) liest die Stellen der Egon Senger GmbH.

Controller Controller\HansalogSenger
Source hansalog-senger
API https://ausbildung.senger-mobility.de/api/index.php
Daten-Ordner data/hansalog-senger/
Welche Anzeigen aufgenommen werden
  1. Stellen-ID und Titel müssen gefüllt sein. Sonst: Warnung „Die Mindestanforderung an die Daten ist nicht erfüllt“.
  2. Eine Senger-Anzeige kann mehreren Standorten zugeordnet sein. Für jeden Standort, der in der Standortliste von HAS bekannt ist, entsteht ein Eintrag.

Anders als bei HAL gibt es keinen Filter auf „Mercedes-Benz“. Für jeden unbekannten Standort einer Anzeige erscheint die Warnung „Die Location (…) ist nicht bekannt, oder gehört nicht zu Mercedes (…)“. In der Klammer am Ende steht hier der Standortname. Viele solcher Warnungen sind normal, weil Senger-Anzeigen oft auch an Standorten anderer Marken (z. B. Audi, VW, Skoda) veröffentlicht sind. Fehlt eine Mercedes-Anzeige auf der Seite, liegt es meist an einem Standort, der in der Liste fehlt.

Standorte

HAS kennt 29 Hansalog-Standorte (Kennungen beginnen mit A, z. B. A1005, A2100, A4000). Jeder Standort ist genau einem Händler zugeordnet.

Sonstiges
  • Für die API-Anmeldung wird nur der Token gebraucht. user und pass im Runner bleiben leer.
  • Neue Standorte oder Händler können nicht in Directus gepflegt werden. Sie stehen im Code (app/model/location.php, app/model/retailer.php). Nach einer Änderung lädt Neu aufbauen im Bereich „Händlerspeicher“ der Übersicht sie in den lokalen Speicher. Für die Änderung selbst ist eine Entwicklerin oder ein Entwickler nötig.
Einrichtung in Directus

Alles, was diese Oberfläche anzeigt und ausführt, kommt aus Directus. Die Einrichtung erfolgt von oben nach unten.

1. Projekt und Provider
Collection Feld Wert für Hansalog
project name / short Zukunft mit Stern / ZMS
data_provider name Hansalog
provider_ident hansalog
project Zukunft mit Stern
url https://zms-hansalog.home.pandaworkx.de

Die url muss die Adresse sein, unter der diese Oberfläche aufgerufen wird. Daran erkennt die Oberfläche, welcher Provider gemeint ist.

2. Crawler (data_crawler)
Feld HAL HAS Hinweis
name Hansalog Lueg Hansalog Senger Anzeige in der Oberfläche
short HAL HAS Kürzel, Teil jeder Solr-ID. Nach dem ersten Lauf nicht mehr ändern
source hansalog-lueg hansalog-senger Kennung in Solr und im Händlerspeicher. Nach dem ersten Lauf nicht mehr ändern
controller Controller\HansalogLueg Controller\HansalogSenger exakt so, inkl. Groß-/Kleinschreibung
status on / off on / off Bei off kann kein Runner gestartet werden
data_provider Hansalog Hansalog

source und short bestimmen, welche Anzeigen in Solr zu einem Crawler gehören. Werden sie geändert, gelten alle bisherigen Anzeigen als fremd: Der nächste Lauf legt alle Anzeigen neu an, die alten bleiben zusätzlich stehen. Am besten beide Felder in Directus auf „nur lesen“ stellen.

3. Runner (crawler_config)

Pro Crawler und Modus beliebig viele Runner, z. B. einen für den API-Abruf nach Solr und einen zum Testen mit Dateien.

Feld Werte Bedeutung
crawler HAL / HAS Zu welchem Crawler der Runner gehört
mode 3 Dev, 2 Stage, 1 Live Bestimmt den Tab in der Oberfläche
collect_from api oder file Quelle
send_to solr oder file Ziel
data.site z. B. dev-zms.local Zielseite, siehe Tabelle im Überblick
data.site_hash 40-stelliger Hash Muss zur Zielseite passen
data.from_api.url API-Adresse bei api
data.from_api.token API-Token bei api
data.from_api.user / pass leer lassen wird bei Hansalog nicht genutzt
data.from_file z. B. data/hansalog-lueg/in_data.json bei Input file
data.to_solr.url / port http://192.168.188.220 / 8983 (Dev, Stage und Live) bei Output solr
data.to_file z. B. data/hansalog-lueg/out_data.json bei Output file
schedule_enabled an / aus Runner automatisch nach Zeitplan starten. Lässt sich auch über den Zeitplan-Button der Oberfläche schalten
schedule_pattern Cron-Ausdruck, z. B. 0 21 * * * Wann der Runner automatisch startet, siehe unten
Zeitplan

Ein Runner startet automatisch, wenn schedule_enabled an ist, schedule_pattern gefüllt ist und der Crawler auf status: on steht. Das Muster hat fünf Stellen: Minute, Stunde, Tag, Monat, Wochentag.

Muster Bedeutung
0 21 * * * täglich um 21:00
15 21 * * * täglich um 21:15
0 * * * * jede volle Stunde
0 6 * * 1-5 montags bis freitags um 6:00

Ein leeres Muster bedeutet „nur manuell“. Steht dort der Vorgabewert * * * * *, läuft der Runner nach dem Einschalten jede Minute. Ein ungültiges Muster wird nicht ausgeführt und im Cron-Log auf dem Server vermerkt. Mehrere Runner zur selben Zeit laufen getrennt voneinander. Bricht einer ab, laufen die anderen weiter.

Pflichtfelder

Vor jedem Lauf wird geprüft, ob alles Nötige gefüllt ist. Fehlt etwas, startet der Lauf nicht, und das Protokoll zeigt den Fehler „Der Runner (…) ist unvollständig, es fehlt: …“.

Immer bei Input api bei Input file bei Output solr bei Output file
site, site_hash from_api.url, from_api.token from_file to_solr.url, to_solr.port to_file
Beispiel: Dev-Runner HAL, API → Solr
Feld Wert
mode 3
collect_from / send_to api / solr
data.site / data.site_hash dev-zms.local / f568f399f0d16401967f80ea8107914024f93de6
data.from_api.url https://hansalog.lueg.de/api/index.php
data.from_api.token Token von Lueg
data.to_solr.url / port http://192.168.188.220 / 8983

Dateipfade sind relativ zum Projektordner auf dem Server. Wer Pfade aus einem anderen Projekt kopiert, schreibt in den falschen Ordner. Pfade immer auf data/hansalog-lueg/… bzw. data/hansalog-senger/… prüfen.

4. Dokumentation (docs)

Diese Seite. Ein Eintrag pro Kapitel mit title, content (Markdown), sort für die Reihenfolge, provider und optional crawler. Sichtbar sind nur Kapitel mit Status published.

Bedienung und Protokoll
Übersicht

Die Startseite zeigt alle Crawler des Providers mit Status, Runnern je Modus und dem Datum der letzten Änderung in Directus. Ein Klick auf eine Karte öffnet den Crawler. Zurück zur Übersicht geht es auf der Crawler-Seite über den Link mit dem Provider-Namen (z. B. „← Hansalog“) über dem Crawler-Namen oder über das Logo oben links.

Im Kopf der Übersicht steht der Händlerspeicher: die lokale Liste aller Händler und Standorte, denen die Anzeigen zugeordnet werden. Angezeigt werden Anzahl und Datum des letzten Aufbaus, auf jeder Crawler-Karte zusätzlich die Zahlen dieses Crawlers.

Neu aufbauen lädt die Listen aus dem Code neu, nach einer Rückfrage. Der bisherige Stand wird ersetzt, danach erscheint eine Bestätigung mit den neuen Zahlen. Nötig ist das nur, nachdem eine Entwicklerin oder ein Entwickler die Listen geändert hat.

Einen Lauf starten
  1. Crawler öffnen.
  2. Den Tab des Modus wählen (Dev, Stage, Live). Die Zahl am Tab zeigt, wie viele Runner es gibt.
  3. Beim gewünschten Runner auf Starten klicken.

Während des Laufs zeigt der Button „Läuft …“, und alle anderen Start-Buttons sind gesperrt. Ein Lauf mit API und Solr kann je nach Datenmenge einige Sekunden bis Minuten dauern. Die Seite nicht neu laden, solange er läuft.

Bei Runnern mit Input API gibt es links neben „Starten“ einen zweiten Button (Pfeil nach unten). Er speichert die aktuelle API-Antwort unverändert in die Datei unter from_file, ohne etwas zu verarbeiten. Diese Datei kann danach ein Runner mit Input Datei zum Testen verwenden. Ist im Runner kein from_file angegeben, ist der Button ausgegraut.

Zeitplan ein- und ausschalten

Der Button mit dem Wecker links neben „Starten“ schaltet den Zeitplan des Runners ein oder aus. Die Änderung wird sofort in Directus gespeichert (schedule_enabled), die Seite muss nicht neu geladen werden.

  • Grün: Der Zeitplan ist aktiv, der Runner startet automatisch nach seinem Muster.
  • Hell: Der Zeitplan ist aus, der Runner startet nur über „Starten“.
  • Ausgegraut: Im Runner ist kein schedule_pattern hinterlegt.

Bei Live-Runnern und bei Mustern, die mehrmals pro Stunde laufen (z. B. * * * * *), fragt die Oberfläche vor dem Einschalten nach. Unter den Details zeigt Zeitplan das Muster mit „aktiv“ oder „aus“, ohne Muster steht dort „nur manuell“.

Ist der Crawler deaktiviert, zeigt der Runner Deaktiviert statt „Starten“. Eingeschaltet wird er in Directus über status.

Das Protokoll lesen

Nach dem Lauf erscheint die Crawler-Seite wieder, unter den Runnern das Protokoll:

  • Grüner Hinweis „Lauf beendet“: Der Lauf ist durchgelaufen. Warnungen sind möglich und meist normal.
  • Roter Hinweis „Lauf fehlgeschlagen“: Der Lauf wurde nicht ausgeführt, siehe Fehlerzeilen.
Level Farbe Bedeutung
ERROR rot Lauf nicht möglich, z. B. Runner unvollständig
WARN gelb Einzelne Anzeige verworfen, Lauf geht weiter
CORE blau Hauptschritte: Start, Quelle, Anzahl in Solr, Ende
INFO hellblau Eine Zeile pro aufgenommener Anzeige, standardmäßig eingeklappt („INFO ein-/ausblenden“)

Die wichtigsten CORE-Zeilen:

Meldung Bedeutung
„Datenabgleich (…) beginnt / beendet“ Start und Ende des Laufs
„Die Daten werden aus der Datei (…) eingelesen“ Input file
„Erfolgreich an der API von … angemeldet“ / „Daten … abgerufen“ Input api
„In Solr sind X Datensätze für …“ Anzahl vor und nach dem Schreiben
„An Solr werden X Datensätze für … übergeben“ So viele Einträge wurden geschrieben

Das Protokoll wird einmal angezeigt. Nach dem Neuladen der Seite ist es weg. Auf dem Server steht es zusätzlich im Log unter logs/<source>/<Jahr>/<Monat>/<Tag>_out.log.

Fehlerbilder und Lösungen
Was man sieht Ursache Lösung
Runner zeigt Deaktiviert oder Fehlerseite 403 Crawler hat in Directus status: off status auf on setzen
Fehlerseite 404 beim Start Runner gehört nicht zu diesem Crawler oder existiert nicht mehr Seite neu laden. In Directus crawler des Runners prüfen
Fehlerseite 500 „… ist kein Crawler“ controller des Crawlers ist falsch geschrieben Exakt Controller\HansalogLueg bzw. Controller\HansalogSenger eintragen
Protokoll: „Der Runner (…) ist unvollständig, es fehlt: …“ Pflichtfeld im Runner leer Genannte Felder in Directus füllen, siehe Kapitel Einrichtung
Protokoll: „API-Fehler, abgebrochen … Die API von … konnte nicht erreicht werden (…)“ API nicht erreichbar, falsche Adresse (z. B. „HTTP 404“) oder Token ungültig („keine gültige Sitzung, Token prüfen“) API-Adresse und Token im Runner prüfen. Ggf. Token bei der Händlergruppe neu anfordern. Es wurde nichts geschrieben, die Seite zeigt den alten Stand
Protokoll: „API-Fehler, abgebrochen … Das JSON von … konnte nicht korrekt übersetzt werden“ API liefert keine gültigen Daten, z. B. eine Wartungsseite Später erneut versuchen. Bleibt es, API-Antwort von einer Entwicklerin oder einem Entwickler prüfen lassen
Protokoll: „Solr-Fehler, der Lauf wurde abgebrochen … Das dev/stage/live SOLR konnte nicht erreicht werden“ Solr-Server nicht erreichbar to_solr.url und port prüfen, Solr-Server prüfen. Die bisherigen Anzeigen bleiben erhalten
Protokoll: „Solr-Fehler, der Lauf wurde abgebrochen … Solr antwortet mit HTTP …“ Solr hat das Schreiben oder Löschen abgelehnt, z. B. wegen eines ungültigen Feldes Meldung an eine Entwicklerin oder einen Entwickler geben. Die bisherigen Anzeigen bleiben erhalten
Protokoll: „Es gibt keine gültigen Anzeigen für …, die Datensätze in Solr bleiben unverändert.“ Die Quelle lieferte keine Anzeige, die einem bekannten Standort zugeordnet werden konnte Warnungen im Protokoll prüfen. Auf der Seite bleibt der alte Stand stehen
Viele Warnungen „Die Location (…) ist nicht bekannt, oder gehört nicht zu Mercedes“ Stellen oder Standorte anderer Marken bzw. Gesellschaften Normal. Fehlt eine echte Mercedes-Stelle, ist ihr Standort nicht in der Standortliste, siehe Kapitel HAL bzw. HAS
Anzeige fehlt auf der Seite (HAS) Standort der Anzeige nicht in der Standortliste Standort-Kennung in Hansalog nachsehen und von einer Entwicklerin oder einem Entwickler ergänzen lassen
Anzeigen erscheinen auf der falschen Seite site_hash passt nicht zur site Hash aus der Tabelle im Überblick übernehmen
Tab zeigt „Kein Runner für diesen Modus“ Für diesen Modus ist kein Runner angelegt Runner in crawler_config mit passendem mode anlegen
Zeitplan-Button ist ausgegraut Im Runner ist kein schedule_pattern hinterlegt Muster in Directus eintragen, z. B. 0 21 * * *, dann Seite neu laden
Fehlerseite 403 oder Hinweis „Die Seite ist veraltet, bitte neu laden.“ (Starten, Speichern, Zeitplan) Die Seite wurde inzwischen in einem anderen Tab neu geladen. Aus Sicherheitsgründen gilt nur die zuletzt geladene Seite Seite neu laden und erneut klicken
Hinweis „Im Runner ist kein gültiges schedule_pattern hinterlegt.“ Muster fehlt oder ist kein gültiger Cron-Ausdruck Muster in Directus korrigieren
Hinweis „Directus: …“ beim Zeitplan Directus nicht erreichbar oder der API-Rolle fehlt das Recht, crawler_config zu ändern Directus und Rechte der API-Rolle prüfen
Runner startet nicht automatisch Zeitplan aus, Crawler status: off, Muster ungültig oder System-Crontab nicht aktiv Zeitplan-Button prüfen, Hinweise in logs/cron.log lesen
Protokoll: „Der Runner (…) ist unvollständig, es fehlt: source (Crawler)“ Beim Crawler ist in Directus kein source eingetragen source am Crawler eintragen (hansalog-lueg bzw. hansalog-senger)
Crawler-Karte zeigt „0 Händler · 0 Standorte“ source des Crawlers passt nicht zum Händlerspeicher, oder der Speicher ist leer source prüfen; sonst in der Übersicht Neu aufbauen
Diese Dokumentation ist leer Kein Kapitel mit Status published oder fehlende Leserechte Status prüfen. Leserechte der API-Rolle auf docs prüfen
Betrieb und Technik

Dieses Kapitel richtet sich an Entwicklerinnen, Entwickler und den Betrieb.

Konfiguration

Alles Fachliche steht in Directus: Quelle, Ziel, Zielseite, Zugangsdaten und Zeitplan jedes Runners. Auf dem Server liegen nur noch:

Datei Inhalt
cfg/config.ini Grundeinstellungen und Provider-Kennung ([dataprovider] name = hansalog)
cfg/<umgebung>/directus.ini Adresse und Token von Directus
cfg/<umgebung>/cron.ini nur Grundeinstellungen, die Jobs kommen aus Directus
cfg/mailer.ini Mailserver und Empfänger der Fehlermails (notify_to, mehrere durch Komma getrennt)
cfg/database.ini lokaler Speicher
Automatische Läufe (Cron)

Die System-Crontab ruft jede Minute php index.php /cron im Projektordner auf. Dabei werden alle Runner des Providers mit schedule_enabled und schedule_pattern aus Directus gelesen. Jeder fällige Runner startet in einem eigenen Prozess. Bei automatischen Läufen wird der Provider über die Kennung hansalog erkannt, nicht über die Adresse der Oberfläche.

Ausgeführte und ungültige Jobs stehen in logs/cron.log.

Fehler und Fehlermails

Schwere Fehler (ab 500, z. B. PHP-Fehler oder Directus nicht erreichbar) und jeder Fehler eines automatischen Laufs (z. B. API oder Solr nicht erreichbar) werden

  1. mit dem bisherigen Protokoll des Laufs an protocol/fatal/<Jahr>/<Monat>/<Tag>_out_protocol.txt angehängt,
  2. per Mail an die Empfänger aus notify_to geschickt, Betreff „Fehler (<Code>) Hansalog“.

Derselbe Fehler (gleicher Code, gleiche Adresse) erzeugt höchstens eine Mail pro Stunde, im Protokoll steht er jedes Mal. Fehler wie 404 (falsche Adresse) oder 403 (Seite veraltet) in der Oberfläche lösen keine Mail aus. Die Fehlerseite zeigt den Grund (DEBUG=1).

Standorte und Händler

Die Standort- und Händlerlisten stehen im Code (app/model/location.php, app/model/retailer.php). Nach einer Änderung lädt Neu aufbauen im Bereich „Händlerspeicher“ der Übersicht sie in den lokalen Speicher (data/fv_retailer.json, data/fv_location.json). Der bisherige Stand wird dabei ersetzt. Zugeordnet werden sie über das Feld source des Crawlers in Directus.

Dateien auf dem Server
Pfad Inhalt
from_file des Runners Gespeicherte API-Antwort, Quelle für Input file
to_file des Runners Ergebnis bei Output file. Bei Dev-Runnern sind die Rohdaten (rawData_binS) lesbar statt base64-kodiert
data/<source>/cookie.txt API-Sitzung
logs/<source>/<Jahr>/<Monat>/<Tag>_out.log Protokoll aller Läufe
logs/cron.log Automatische Läufe
protocol/fatal/<Jahr>/<Monat>/<Tag>_out_protocol.txt Schwere Fehler mit Protokoll des Laufs
logs/mail.log Fehlgeschlagene Mails
data/pictures/converted/ Vorhandene Hintergrundbilder je Berufsprofil

<source> ist hansalog-lueg bzw. hansalog-senger.