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

Teste kivitendo!

kivitendo Demo

kivitendo Demo mit Schweizer Kontenplan

Geld allein macht nicht glücklich - benutzt kivitendo!

0 Punkte

Hallo zusammen,

seit dem update auf 3.5.2 kann ich keine neuen Belege mehr anzeigen oder speichern:

Fehlermeldung:

get_objects() - DBD::Pg::st execute failed: FEHLER:  Wert »94481488021632« ist außerhalb des gültigen Bereichs für Typ integer at /usr/share/perl5/vendor_perl/Rose/DB/Object/Manager.pm line 2016.
 at /disk/web/html/riwollis-kivi/SL/DO.pm line 803.

Das betrifft Lieferantenaufträge, Lieferscheine, Lieferantenrechnungen. (Kundenrechnungen erstelle ich nur mit dem Kassenmodul). Das trifft sowohl zu, wenn ich die Auftragsnummer manuell vergebe, als auch wenn eine automatische Nummer vergeben wird.

Vor dem Update erstellte Belege können angezeigt werden. Ich kann Lieferantenrechnungen buchen aber dann nicht mehr anzeigen um Zahlungen zu buchen. Aufträge lassen sich mit "Bearbeiten (experimentell)" zwar anzeigen, beim Erstellen des Lieferscheins gibt es dann eine andere Fehlermeldung:

Exception! 'load() - DBD::Pg::st execute failed: FEHLER:  Wert »93925614272200« ist außerhalb des gültigen Bereichs für Typ integer at /usr/share/perl5/vendor_perl/Rose/DB/Object.pm line 422.
' in object of type 'SL::DB::Part' occured

   thrown  at  file /disk/web/html/riwollis-kivi/SL/DB/Helper/Metadata.pm, line 41
      in SL::DB::Helper::Metadata::handle_error, pid=31610
   reached via file /usr/share/perl5/vendor_perl/Rose/DB/Object.pm, line 476 in Rose::DB::Object::load
   reached via file /disk/web/html/riwollis-kivi/SL/DB/Object.pm, line 140 in SL::DB::Object::load
   reached via file /disk/web/html/riwollis-kivi/SL/DB/CustomVariable.pm, line 90 in SL::DB::CustomVariable::value
   reached via file /disk/web/html/riwollis-kivi/SL/DB/Helper/FlattenToForm.pm, line 144
      in SL::DB::Helper::FlattenToForm::_copy_custom_variables
   reached via file /disk/web/html/riwollis-kivi/SL/DB/Helper/FlattenToForm.pm, line 100
      in SL::DB::Helper::FlattenToForm::flatten_to_form
   reached via file /disk/web/html/riwollis-kivi/bin/mozilla/oe.pl, line 2043 in main::oe_delivery_order_from_order
   reached via file /disk/web/html/riwollis-kivi/bin/mozilla/common.pl, line 281 in main::call_sub
   reached via file /disk/web/html/riwollis-kivi/SL/Dispatcher.pm, line 306 in SL::Dispatcher::handle_request
   reached via file /disk/web/html/riwollis-kivi/SL/Dispatcher.pm, line 226 in SL::Dispatcher::handle_all_requests
   reached via file /disk/web/html/riwollis-kivi/dispatcher.fcgi, line 21 in 

kivitendo 3.5.2
Apache/2.4.33 (Unix) OpenSSL/1.1.0h mod_fcgid/2.3.9 PHP/7.2.5 mod_perl/2.0.10 Perl/v5.26.2

Die erforderlichen perl-module sind alle auf dem neusten Stand via cpan. LWP::Authen::Digest und LWP::UserAgent sind installiert und postgres pg_trgm ist vorhanden.

Ich bräuchte einen Hinweis wo ich nach dem Fehler suchen soll. Offensichtlich stimmt bei meinem System etwas mit den Datentypen nicht.

Viele Grüße und einen schönen Abend

Iris

Gefragt von (440 Punkte)

Guten Morgen,

ich habe das Problem jetzt etwas eingegrenzt. Die Stelle, die den Fehler auslöst steht in der SL/OE.pm:

my $cvars = CVar->get_custom_variables(dbh        => $dbh,
                                             module     => 'IC',
                                             sub_module => 'orderitems',
                                             trans_id   => $ref->{orderitems_id},
                                            );

Das Hängt also offensichtlich mit den CVars zusammen. In meiner Tabelle mit den CVar-Werten sind tatsächlich utopische Zahlen eingetragen:

id		config_id	trans_id	number_value			itime							sub_modul
393223	14			9623		"94481488020168.00000"	"2018-07-17 16:31:42.313823"	"delivery_order_items"
393224	15			9623		"94481498067552.00000"	"2018-07-17 16:31:42.313823"	"delivery_order_items"

Diese CVars sind meine eigenen Variablen. config_id 14 ist vom Typ "Ware" und config_id 15 ist vom Typ "Lieferant". Mit diesen beiden Variablen bilde ich externe Auswahlkriterien. D. h. die brauche ich.

Offensichtlich wird jetzt beim Erstellen eines Lieferantenauftrags nicht die CVar des Artikels übernommen sondern iregend eine Zahl eingetragen, die natürlich nicht vorhanden ist (Ware oder Lieferant).

So jetzt. Problem eingegrenzt und ich bitte um Lösungsvorschläge. Ich brauche die CVars und kann im Augenblick nichts bestellen und nichts ins Lager buchen.

Ich werde übergangsweise die falschen Zahlen in der Datenbank löschen. Das behebt aber nicht die Ursache.

Viele Grüße

Iris

PS: Beim Workflow Auftrag->Lieferschein->Rechnung tritt das Problem nicht mehr auf. Ich habe aber die falschen Werte manuell gelöscht.

So. nächster Versuch:

neuer Lieferschein, Artikel eingetragen.
Lieferschein lässt sich nicht speichern.

In der Datenbank: bei 4 der 19 Positionen sind wieder falsche Werte eingetragen. Der Fehler tritt wohl nur auf, wenn der Artikel Werte in dieser CVar hat.

Der Lieferschein mit diesen Artikeln lässt sich nicht speichern und nicht einlagern.

Stand der Dinge jetzt kann ich keine neue Ware einlagern für die die CVar 14 und 15 vergeben ist.

Nächste Hiobsbotschaft: Die Ware wurde trotzdem eingelagert. Auch die Artikel, die sich nicht speichern ließen. Und der Lieferschein ist jetzt 4x vorhanden.

Hallo, ich kann das zumindest teilweise bestätigen. Allerdings etwas anders
Beim Anlegen einer Rechnung mit einer BDV vom Typ Ware bearbeitbar. Und diese BDV belegt. Rechnung gebucht Alles OK.
Wenn ich diese Rechnung jetzt storniere bekomm ich den obigen Fehler. Mit IS.pl anstatt DO.pl. bei mir ist das bei Commit 370f135. Wobei ich das nicht auf einer anderen Umgebung mit dem gleichen Stand commit 370f135 nicht reproduzieren kann. Ohne ausgefüllte Variable kann ich die Rechnung stonieren.

1 Antwort

0 Punkte

Ein Screenshot der Konfiguration der benutzerdefinierten Variable wäre eventuell hilfreich. Und wie das in der Detailszeile in einem Auftrag aussieht.
Wurde die Konfiguration der BDV vielleicht nachträglich geändert?

Beantwortet von (16.3k Punkte)

Danke für die Anteilnahme.

Screenshot:

![CVars][1]

Die Variablen sind als nicht bearbeitbar gekennzeichnet. Daher werden sie natürlich auch nicht im Lieferschein in den Details angezeigt.

Die Konfiguration wurde auf jeden Fall nicht geändert. Das Verhalten tritt ja bei jedem neuen Lieferschein auf. D. h. neu erstellte Lieferscheine/Aufträge können nicht gespeichert/bearbeitet werden.

Ich werde jetzt testweise die Variablen mal als bearbeitbar markieren und schauen was passiert.

Nachtrag: Test durchgeführt.

Wenn die CVars als bearbeitbar gekennzeichnet sind, werden die Positionen richtig mit Werten gefüllt und der Lieferschein lässt sich speichern.

Als Übergangslösung kann ich so dann wenigsten arbeiten. Aber das scheint wohl ein Bug zu sein. | Oder ein Feature ;-)
[1]: http://2016.riwollis.de/assets/images/riwollis/Screenshot_20180718_141302.png

Ähnliche Fragen

0 Punkte
1 Antwort
0 Punkte
1 Antwort
Gefragt 1, Sep 2014 von manufly (40 Punkte)
0 Punkte
1 Antwort
0 Punkte
1 Antwort
0 Punkte
1 Antwort
...
Total PHP MySQL Other RAM
Time (ms) % Time (ms) % File count Time (ms) % Query count Time (ms) % Amount %
Setup 20.5 30% 20.0 29% 27 1.7 2% 2 0.0 0% 1391k 40%
Control 15.7 23% 8.0 11% 10 8.7 12% 11 0.0 0% 625k 18%
View 18.5 27% 16.0 23% 24 0.6 0% 1 1.9 2% 891k 25%
Theme 12.5 18% 8.0 11% 2 4.4 6% 2 0.2 0% 557k 16%
Total 67.2 100% 52.0 77% 63 15.3 22% 16 0.0 0% 3466k 100%