openlibraryenvironment/gokb

Paketeinspielung darf nicht mehr komplett abbrechen bei TIPP-Fehlern

Closed this issue · 6 comments

Momentan bricht der Paketimport noch ab, wenn bei einzelnen TIPPs Validierungsfehler auftreten. Dieses Problem ist insbesondere bei großen Datenmengen mit fünfstelliger Titelzahl dem Nutzer nicht zu vermitteln. Stattdessen sollte:

  • Der Datenimport wie gehabt stattfinden
  • Das nichtvalidierte Feld einfach nicht übernommen werden
  • Im Falle eines essentiellen Feldes das Tipp nicht übernommen werden
  • Eine Mitteilung (sowohl in Response wie in Review Request) erstellt werden.

Aktuelles Beispiel:

  • Der Titel "Die Berufsverbände der Sozialarbeit und ihre Geschichte" aus http://kbart.content-select.com/gokb/preselect_Global_AllTitles.txt wird mit dem DEBUG-Logeintrag baddata:[type:pisbn, value:3170065688] abgelehnt.
  • Der Titel "Der große Zauberlehrling" aus demselben Paket wird mit dem DEBUG-Logeintrag baddata:[type:pisbn, value:978387387615-] ebenfalls abgelehnt.
  • Im Zuge einer automatisierten Paketeinspielung über Trigger Update --> Go erfolgt keine Befüllung des Pakets.

Das Paket wird nicht eingespielt.
Der User erhält keine Information über die nicht erfolgte Einspielung.
Bei einem Server-üblichen Log-Level sind im Log keine Fehler erkennbar.

Anmerkung VP: Die ISBNs werden wahrscheinlich abgelehnt, weil sie dem hinterlegten RegExp-Pattern nicht entsprechen, was vorsieht, dass eine ISBN ohne Bindestriche genau 13 Ziffern haben muß oder mit Bindestrichen auf eine Zahl enden muß.

Das baue ich erstmal so ein. Allerdings sollten Nutzern die Konsequenzen unvollständiger Importe klar sein: es wird beispielsweise dazu kommen, dass Pakete TIPPS wegen fehlerhafter Importe retiren und nicht, weil der Titel tatsächlich aus dem Angebot genommen wurde. Bis zur Korrektur ist die Datenbank dann inkorrekt und der Fehler verbreitet sich automatisch in nachgelagerte Systeme.

es wird beispielsweise dazu kommen, dass Pakete TIPPS wegen fehlerhafter Importe retiren und nicht, weil der Titel tatsächlich aus dem Angebot genommen wurde.

Dafür waren glaube ich Review Requests vorgesehen?!

Ja, genau dafür sind die Review Requests vorgesehen. Prinzipiell wird es so sein, dass bei den meisten Titeln keine essentiellen Felder fehlen, sodass der Titel auf jeden Fall aufgenommen und nicht abgelehnt wird.

@VolkerHBZ, @hornmo: In der Konsortialstelle ist dieses Thema wegen des von Philipp verlinkten Pakets zeitlich kritisch. Wenn Volker fertig ist, könnt Ihr dann bitte relativ schnell einen Deploy auf gokb.org organisieren?

Erster Schritt ist erledigt: Korrupte TIPPs werden entfernt, ohne das Paket abzulehnen.
Im zweiten Schritt sollen jetzt einzelne nichtvalidierte Felder entfernt werden, ohne das TIPP abzulehnen.

Überprüft wird zur Zeit in validateDTO():

  • Name != null
  • publishedFrom < publishedTo
  • startDate < endDate
  • Identifier semantisch und syntaktisch nach Format des Identifiers