Willkommen im kivitendo Forum! Hier erweitern und teilen AnwenderInnen und EntwicklerInnen ihr Wissen.

Teste kivitendo!

kivitendo Demo

kivitendo Demo mit Schweizer Kontenplan und neuem Layout

Unterstützt kivitendo mit der Basis-Subskription!

0 Punkte

Moin,

ich habe meine Testinstallation heute von 3.8.0 auf 3.9.1 geupgraded, das funktioniert auch bis auf einen Punkt: anzeigen und anlegen von Lieferscheinen (Einkauf und Verkauf) führt zu einem Server-Fehler.

Im Log steht Folgendes:

[Thu Oct 31 00:42:25.123534 2024] [fcgid:warn] [pid 10791] [client 192.168.200.100:41528] mod_fcgid: stderr: delete argument is key/value hash slice, use hash slice at /srv/www/vhosts/de.chdintern.lx-office-svn/htdocs/lx-office-erp/SL/Controller/DeliveryOrder.pm line 1271., referer: http://lx-office-svn/lx-office-erp/is.pl
[Thu Oct 31 00:42:25.123608 2024] [fcgid:warn] [pid 10791] [client 192.168.200.100:41528] mod_fcgid: stderr: Compilation failed in require at /srv/www/vhosts/de.chdintern.lx-office-svn/htdocs/lx-office-erp/SL/Dispatcher.pm line 217., referer: http://lx-office-svn/lx-office-erp/is.pl
[Thu Oct 31 00:42:25.123643 2024] [core:error] [pid 10791] [client 192.168.200.100:41528] End of script output before headers: dispatcher.fpl, referer: http://lx-office-svn/lx-office-erp/is.pl

scripts/installationcheck.pl läuft ohne Fehler durch, nur Entwicklermodule sind nicht alle verfügbar.

Wo kann ich suchen?

Grüße,

Hannes

von (1.5k Punkte)
Bearbeitet von

3 Antworten

0 Punkte
 
Beste Antwort

So,

nochmal für die Nachwelt:

Es wird Perl ≥ 5.28 benötigt, weil erst ab dort das Verwenden von Hash-Slices als Argument für delete möglich ist. Vorher fällt das mit genau dieser Fehlermeldung auf die Nase.

Das sollte vlt im Script scripts/installation_check.pl mit abgefragt werden.

VG

/Hannes

von (1.5k Punkte)
0 Punkte

Hallo Hannes,
das Problem kann ich nicht nachstellen. Vielleicht kannst du schreiben wie und wo der Fehler bei Dir auftritt.
Cache gelöscht ?
Apache neu gestartet ?

Beste Grüße
Werner kivitendodienstleister

Am 27.11.24 haben wir ein kivitendotreffen in Bonn Agenda siehe https://blog.kivitendo.de/?p=1353 und am 28.11.24 bieten wir in Bonn Schulungen um kivitendo(Anwendung, Administration, Programmierung) an.

Unterstütze kivitendo mit einer Basis-Subcription
kivitendo im fedivers

von (18.9k Punkte)

Hallo Werner,

vielen Dank für Deine Antwort.

  • Installation mit git (Upgrade von 3.8.0)
  • Apache neu gestartet
  • Cache geleert, anderen Browser verwendet, Inkognito-Tab verwendet

Im Code an der betreffenden Stelle (DeliveryOrder.pm, Zeile 1271) steht eine Zeile, die nach meinem Verständnis mit dem Ausgleichen falscher oder unpassender Lagerbestände zu tun hat. Das würde erklären, warum das nicht bei jedem auftritt.

Die Zeile lautet

delete %parts_errors{$part_id};

und perldiag sagt zu der Fehlermeldung Folgendes:

delete argument is index/value array slice, use array slice (F)
You used index/value array slice syntax (%array[...] ) as the argument to delete.
You probably meant @array[...] with an @ symbol instead.

Ist das möglicherweise die falsche Syntax und es stolpert nur keiner außer mir drüber, weil keiner einen solchen auf das Standardlager ins Negative weggebuchten Lagerbestand hat?

Hintergrund zu dem Lagerbestand: Ich habe viele Erzeugnisse, deren Stückliste nicht passend gepflegt ist, da schlägt dann entweder das Produzieren fehl oder ich unterlasse es, weil ich dabei nur die Hälfte der Einzelteile aus dem Lager ausbuchen würde. Ergo lagere ich das Erzeugnis dann mittels Standardauslagern ins Negative aus. Wollte ich schon lange mal beheben, ist allerdings seit Jahren so geblieben. ;)

VG,

Hannes

Hallo Werner,

ich hab mir das eben noch einmal angesehen. Meine Perl-Zeit liegt leider 20 Jahre zurück, ergo geht mir das nicht mehr so einfach von der Hand, aber ich bin der Meinung, dass das ein Syntax-Fehler ist.

Die Zeile sollte statt dessen

delete $parts_errors{$part_id};

lauten. Habe das einfach geändert und schon wirft es jedenfalls keinen Syntaxfehler mehr.
Ob das auch semantisch das tut, was es soll, weiß ich allerdings nicht, weil ich mich noch nicht richtig reingedacht und vor allem noch kein Debugging betrieben habe.

Vlt könnte das ja mal einer von euch kurz anschauen und bestätigen?

Vielen Dank,

Hannes

Hallo Hannes
vielen Dank erst mal und weiter so. Ich werde mir das auf jeden Fall zeitnah anschauen
Beste Grüße
Werner kivitendodienstleister

Am 27.11.24 haben wir ein kivitendotreffen in Bonn Agenda siehe https://blog.kivitendo.de/?p=1353 und am 28.11.24 bieten wir in Bonn Schulungen um kivitendo(Anwendung, Administration, Programmierung) an.

Unterstütze kivitendo mit einer Basis-Subcription
kivitendo im fedivers

Hallo Werner,

hattest Du zufällig schon kurz Zeit, das mal nachzuvollziehen?
Ich brauch hier vielleicht nur kurz einen Anstoß in die richtige Richtung, um weiter suchen zu können.

Vermutlich könnte man diese beiden Threads auch irgendwie zusammenlegen.

VG,

Hannes

0 Punkte

Moin,

da das wie an anderer Stelle angemerkt auch in der Steigmann-Werft-Demo auf 3.9.1 reproduzierbar ist, gehe ich erst einmal davon aus, dass der Fehler nicht in meiner Installation liegt.

Damit hier vorerst "gelöst".
Wenn ich mit dem Topic weiter komme, führe ich das in dem anderen Thread fort.

VG,

Hannes

von (1.5k Punkte)

Ähnliche Fragen

...