Datenbank bereinigen / neu anlegen oder sonstige Vorgehensweise

Von Klaus Vietzke vor etwa 1 Jahr hinzugefügt

Hallo,

wir nutzen Kivitendo schon eine Weile (ca. 8 Jahre) und seit unserem Wechsel auf 3.4 haben wir vermehrt Probleme mit der Datenbank.
Aktuell können wir bei einem Angebot, das wir normal und ohne Fehlermeldung angelegt haben, nicht den Kunden wechseln. Wenn wir das machen und auf Erneuern drücken, kommt eine Meldung
Fehler!

Can't locate object method "full_description" via package "SL::DB::Customer" at /usr/share/perl5/Rose/DB/Object.pm line 1646
Rose::DB::Object::AUTOLOAD') called at /var/www/kivitendo-erp/SL/PriceSource/Customer.pm line 56
SL::PriceSource::Customer::discount_from_source('SL::PriceSource::Customer=HASH', 'customer_discount/1386', 1386) called at /var/www/kivitendo-erp/SL/PriceSource.pm line 40
SL::PriceSource::discount_from_source('SL::PriceSource=HASH', 'customer_discount/1386') called at /var/www/kivitendo-erp/bin/mozilla/io.pl line 348
main::display_row(3) called at /var/www/kivitendo-erp/bin/mozilla/oe.pl line 2016
main::display_form called at /var/www/kivitendo-erp/bin/mozilla/io.pl line 768
main::check_form called at /var/www/kivitendo-erp/bin/mozilla/oe.pl line 622
main::update(1) called at /var/www/kivitendo-erp/bin/mozilla/arap.pl line 288
main::name_selected() called at /var/www/kivitendo-erp/bin/mozilla/common.pl line 433
main::call_sub(0) called at /var/www/kivitendo-erp/bin/mozilla/arap.pl line 362
main::continue() called at /var/www/kivitendo-erp/bin/mozilla/common.pl line 433
main::call_sub('::continue') called at SL/Dispatcher.pm line 295
eval {...} called at SL/Dispatcher.pm line 304
SL::Dispatcher::handle_request('SL::Dispatcher=HASH', 'FCGI=SCALAR') called at /var/www/kivitendo-erp/dispatcher.fpl line 66

Ich habe dasselbe Vorgehen bei der Online-Datenbank versucht, dort klappt es.
Daher vermute ich, dass bei unserer Umstellung auf 3.4.0 etwas schief gegangen ist. Das obige Angebot wurde nach der Umstellung auf 3.4 angelegt. Bei Angeboten, die vor der Umstellung auf 3.4 angelegt wurde, können wir den Kunden wechseln.
Ich würde jetzt gerne einmal die Datenbank bereinigen / aufräumen oder neu anlegen.
Wie kann ich das machen? Oder gibt es Tools, die ich über die Datenbank laufen lassen kann, die falsche Verknüpfungen erkennen können?

Eventuell sagt die obige Fehlermeldung ja auch etwas anderes als einen Fehler in der Datenbank. Was bedeutet die Fehlermeldung?
Ich kann beim unveränderten Angebot auf die Langtextanzeige gehen und dort erscheint dann auch der Langtext.

Ich freue mich über jeden Tipp oder Anregung, da ich keine Idee dazu habe.

Viele Grüße,
Klaus


Antworten (5)

RE: Datenbank bereinigen / neu anlegen oder sonstige Vorgehensweise - Von Jan Büren vor etwa 1 Jahr hinzugefügt

Hallo Klaus,
die Fehlermeldung ist mir leider komplett schleierhaft.

Du kannst die SelfTests ausführen, damit erhältst Du aber nur eine Menge Hinweise auf Inkonsistenzen bzgl. Buchungsgenauigkeit, gleiches gilt für Korrekturen im Hauptbuch (unter System).

Der Klassiker wäre, dass es irgendwelche Sonderzeichen in den Stammdaten beim Kunden gibt oder auch doppelte Leerzeichen, dass waren so die nervigen Showstopper in der Vergangenheit.

Es sieht jetzt eher danach aus, dass eine Preisquelle hier nicht richtig taktet, es also bei der Übernahme von Preisregeln zu diesem Problem kommt.
Sind bei Euch welche hinterlegt?

RE: Datenbank bereinigen / neu anlegen oder sonstige Vorgehensweise - Von Bernd Bleßmann vor etwa 1 Jahr hinzugefügt

Hi,

das ist wohl ein echter Bug, der Auftritt, wenn man in der Maske von einem Kunden mit Rabatt zu einem Kunden ohne Rabatt wechselt.
Das ist mit den commits 5f6e919f09cdbeeac184a138d62586d055e9ee0f und 18a9328cd24bc8e809454bb08d6c575deee1e213 behoben.

Grüße
Bernd

RE: Datenbank bereinigen / neu anlegen oder sonstige Vorgehensweise - Von Klaus Vietzke vor etwa 1 Jahr hinzugefügt

Hallo Bernd,

wir haben zwar den Fall gehabt, dass der eine Kunde einen Rabatt hatte (mit dem das Angebot angelegt wurde) und der neue Kunde keine Rabatt hatte. Ich habe das jetzt testweise geändert, es hat aber nicht geholfen.
Trotzdem Danke für den Tipp bzw. den Hinweis.

Viele Grüße,
Klaus

RE: Datenbank bereinigen / neu anlegen oder sonstige Vorgehensweise - Von Klaus Vietzke vor etwa 1 Jahr hinzugefügt

Hallo Jan,

ich habe mal bei uns nachgeschaut (bin wegen Arbeitsüberlastung leider nicht direkt zu allen Tests gekommen):
- wir haben keine Korrekturen / Hinweise im Hauptbuch
- beide Kunden haben keine Sonderzeichen, keine doppelten Leerzeichen.
- wir haben überhaupt keine Preisregeln eingerichtet.

Viele Grüße,
Klaus

RE: Datenbank bereinigen / neu anlegen oder sonstige Vorgehensweise - Von Klaus Vietzke vor etwa 1 Jahr hinzugefügt

Ich habe die die Ursache für das Verhalten gefunden:
Wir hatten dem ersten Kunden einen Rabatt in den Kundenstammdaten eingeräumt.
Wenn ich jetzt den Rabatt entferne (auf freien Rabatt umstellen und dann dort 0 eintrage) tritt das Verhalten beim Wechseln zum 2. Kunden nicht mehr auf.

Ich kann das Verhalten auch bei der Demodatenbank nachvollziehen:
Bei Bootsbau Schumann GmbH in den Kundenstammdaten einen Rabatt von 5% eintragen.
Beim Artikel 026 (Anker) einen Listenpreis und einen Verkaufspreis von 80 EUR eintragen.
Beim Artikel 027 (Rettungsboot) einen Listenpreis und einen Verkaufspreis von 200 EUR eintragen.

Jetzt ein Angebot schreiben an Bootsbau Schumann mit
einem Anker und einem Rettungsboot.
Dann bei den Preisen durch Klicken auf "Stammdaten" als Rabatt den Kundenrabatt von 5% auswählen für einen Artikel.
Wenn jetzt der Kunde auf Oida .. gewechselt wird, kommt meine Fehlermeldung.

Ich weiß jetzt aber nicht, ob es mit den commits von Bernd identisch ist bzw. dadurch erledigt ist.
Dazu fehlt mir aktuell die "Wachheit".

Erst einmal das Problem etwas eingegrenzt, aber noch nicht ganz gelöst.

Viele Grüße,
Klaus

(1-5/5)