powered by CADENAS

Manual

Manual

1.3.9.8.3.9. Updates ERP-Suchindex

Dem AppServer sind alle Datenbankänderungen bekannt, sodass er bei Projektänderungen und/oder Rollenänderungen mit Updates des LinkDB-Suchindex oder Client-Benachrichtigungen automatisch reagieren kann.

Falls die Option Kataloge und Suche über AppServer gewählt ist (also nicht Kataloge, Suche und Datenbank über AppServer), funktionieren automatische Updates des LinkDB-Suchindex dennoch. Das ist möglich, da man auf dem AppServer einen "Task" konfigurieren kann, der regelmäßig den LinkDB-Suchindex aktualisiert (mit den Infos aus der LOGTABLE).

Ein älteres Konzept (bis V9.08) verwendet für Index-Updates das Skript nightupdate_erp.vbb. Dieses sorgt dafür, dass die ERPTABLE in den Volltextsuchindex (=Lucene-Index) aufgenommen wird. (Kann optional auch in V10/11 verwendet werden.) (Details finden Sie im Skript selbst.) Der Vorteil der AppServer-Lösung ist, dass nur die Teile des ERP-Suchindex aktualisiert werden, in denen sich Daten geändert haben. Sofern nicht in speziellen Fällen etwas entgegensteht, wird der Prozess nightupdate_erp.vbb in V10/11 nicht mehr benötigt.

Task-Aufrufe

  • DBSearchIndexTask:

    • Intervall, in welchem der Task zum Aktualisieren des ERP-Suchindex gestartet wird. Er prüft dann in der LOGTABLE, ob neue Einträge vorhanden sind. Wenn ja, dann wird der ERP-Index aktualisiert.

    • Ist der Wert gesetzt, wird außerdem nach einem Katalogupdate der Suchindex automatisch aktualisiert.

      Wenn Sie die Aktualisierung des Suchindex nicht automatisch ablaufen lassen möchten, sondern nach einem Update manuell anstoßen möchten, verfahren Sie folgendermaßen:

      1. Entfernen Sie den Wert "DBSearchIndexTask" aus dem Schlüssel "Tasks".

      2. plinkcommon.cfg -> Schlüssel UPDATESEARCHINDEX

        Setzen Sie den Wert auf 1.

        -> Es erscheint nun beim Anstoßen des Katalogupdates eine Meldung, ob Sie den ERP-Suchindex nach der Installation automatisch aktualisieren möchten.

        Möchten Sie die ERP-Suchindexe nach der Installation automatisch aktualisieren?

        Möchten Sie die ERP-Suchindexe nach der Installation automatisch aktualisieren?

      Siehe hierzu auch Abschnitt 4.17.9, „Volltextsuchindex aktualisieren bei LinkDB-Änderung / plinkcommon.cfg -> Block [Common] -> Key "UPDATESEARCHINDEX"“.

  • DBClearLogTask: Intervall in welchem der Task zum Aufräumen der LOGTABLE gestartet wird. Dieser Task löscht alte Einträge aus der LOGTABLE.

Detaillierte Informationen hierzu finden Sie im folgenden Abschnitt.

1.3.9.8.3.9.1. Loggen von LinkDB-Änderungen

INSERTS, DELETES und manuelle UPDATES (durch PARTlinkManager oder PARTdataManager) können automatisch in der Tabelle LOGTABLE geloggt werden.

Struktur der Tabelle LOGTABLE

LOGID VARCHAR(40) NOT NULL,
TABNAME VARCHAR(15) NOT NULL,
KEYFLD VARCHAR(15) NOT NULL,
LOGKEY VARCHAR(500) NOT NULL,
LOGEXT VARCHAR(64),
LOGTIME VARCHAR(20) NOT NULL,
USERNAME NVARCHAR(20),
HOSTNAME NVARCHAR(20),
PROGNAME VARCHAR(15),
MODTYPE SMALLINT DEFAULT 0 NOT NULL,
UPDSEARCH SMALLINT DEFAULT 0 NOT NULL,

Die Tabelle kann via PARTlinkManager -> Extras Menü -> Datenbank -> Zusätzliche Tabellen editieren eingesehen werden.

Falls in der Konfigurationsdatei plinkcommon.cfg unter ADDITIONALTABLES der Eintrag LOGTABLE gesetzt wurde, wird die Tabelle hier angezeigt.

Falls in der Konfigurationsdatei plinkcommon.cfg unter ADDITIONALTABLES der Eintrag LOGTABLE gesetzt wurde, wird die Tabelle hier angezeigt.

Bedeutung der einzelnen Spalten von LOGTABLE

  • LOGID: LOGID ist eine eindeutige Nummer (GUID)

  • TABNAME: Tabelle, wo die Änderungen gespeichert werden (ERPTABLE oder LINKTABLE).

  • KEYFLD:

    • Für ERPTABLE ist dies immer ERP_PDM_NUMMER und LOGKEY enthält die ERP-Nummer.

    • Für LINKTABLE ist das immer PRJ_PATH und LOGKEY enthält den Pfad.

  • LOGEXT: Zusätzliche Information. Bei LinkDB-Änderungen ist das Version und Zeilen-ID.

  • LOGTIME: Zeitpunkt der Änderung (in UTC)

  • USERNAME: Login-Name des Benutzers, der die Änderung ausgeführt hat.

  • HOSTNAME: Rechnername des Clients

  • PROGNAME: Programm, wo die Änderungen ausgeführt wurden.

  • MODTYPE: Modifikationstyp

    Wertebereich:

    • 1: Insert (Datensatz wurde hinzugefügt)

    • 2: Update (Datensatz wurde geändert)

    • 3: Delete (Datensatz wurde gelöscht)

    • 4: Installation (Aktualisierungen während der CIP-Installation)

  • UPDSEARCH: Wenn UPDSEARCH den Wert 1 hat, dann soll der ERP-Suchindex aktualisiert werden. Wird vom AppServer zurück auf 0 gestellt, nachdem er aktualisiert wurde.

Damit der Task auch wirklich ausgeführt wird, müssen noch folgende Einstellungen in der Konfigurationsdatei pappserver.cfg vorhanden sein.

Beispiel:

[TaskManagerModule]
TimerInterval=60 
tasks=loadAll 
DBSearchIndexTask=1h
DBClearLogTask=24h

[DBClearLogTask] 
DaysToKeep=365
  • TimerInterval: Gibt an, in welchem Intervall (Sekunden) geprüft werden soll, ob ein neuer Task zur Ausführung ansteht. (Normalerweise nicht zu ändern)

  • tasks:

    Wertebereich:

    • loadAll: Alle TaskModule sollen beim Start des AppServers geladen werden. Zur Zeit gibt es nur zwei (DBSearchIndexTask und DBClearLogTask)

  • DBSearchIndexTask: Intervall, in welchem der Task zum Aktualisieren des ERP-Suchindex gestartet wird. Er prüft dann in der LOGTABLE, ob neue Einträge vorhanden sind. Wenn ja, dann wird der ERP-Index aktualisiert.

  • DBClearLogTask: Intervall in welchem der Task zum Aufräumen der LOGTABLE gestartet wird. Dieser Task löscht alte Einträge aus der LOGTABLE.

    Beispiele für mögliche Datumsformate:

    1m Task wird jede Minute ausgeführt
    1h Task wird jede Stunde ausgeführt
    13:21z Task wird jeden Tag um 13:21 GMT ausgeführt
    mon 14:30 Task wird jeden Montag um 14:30 (lokale Zeit) ausgeführt
  • DaysToKeep: Anzahl der Tage, in denen die Einträge in der LOGTABLE gespeichert werden.

[Hinweis] Hinweis

Das zeitliche Zusammenspiel mit nightupdate.vbb (Aktualisierung der ERPTABLE) ist zu beachten.

1.3.9.8.3.9.2. Manuelles Update und initiales Erstellen des LinkDB-Suchindex


[20] Genaue Zeiten sind abhängig von den genauen Umständen wie Netzwerkgeschwindigkeiten, Prozessorgeschwindigkeit, Plattengeschwindigkeit, etc.