Wo liegen denn die Sourcen ?

Allgemeine Diskussionen um die ERP Software AvERP

Moderator: SYNERPY

Antworten
PaulL
Beiträge: 13
Registriert: Mi Nov 07, 2012 2:04 pm

Wo liegen denn die Sourcen ?

Beitrag von PaulL »

Hallo allesamt,
ich bin neu in AvERP und stelle mich irgendwie trottelig an.
Ich habe das Gesamtpaket heruntergeladen und installiert, hat alles prima geklappt. Mittlerweile habe ich mal kräfitig mit der Demodatenbank herumgearbeitet und mich jetzt an das Thema Kasse herangetastet. Wenn ich die Kasse - Schnellerfassung öffne und mich anmelde und danach in den 3. Reiter "3. offene Posten" wechsle, bekomme ich eine Fehlermeldung" ISC ERROR CODE:335544321...." und einen Verweis auf die Prozedur 'P_DISPLAYFIELDLIST' line:202, col: 1.
Jetzt wollte ich mir das mal im Sourcecode abschauen, um zu verstehen wie denn das System abläuft, aber ich finde die Sourcen nirgens, obwohl ich ja das Gesamtpaket heruntergeladen habe.
Kann mir mal bitte jemand über meine Blindheit hinweghelfen, und mir sagen, wo ich das Zeugs finde. An sonsten finde ich das ganze System prima.

Viele Grüße
Paul
PaulL
Beiträge: 13
Registriert: Mi Nov 07, 2012 2:04 pm

Wo liegen denn die Sourcen ?

Beitrag von PaulL »

Hallo,
ist die Frage für gestandene Insider zu trivial ?
Ich habe in der Zwischenzeit mit der Demodatenbank weitergearbeitet, bin aber bei dem Thema Sourcen, und wie funktioniert was, irgendwie nicht vom Fleck gekommen.

Würde mich über eine kurze Hilfestellung hier sehr freuen. :)


Viele Grüße
Paul
miboe
Beiträge: 1295
Registriert: Fr Jul 28, 2006 9:13 am

Beitrag von miboe »

Hallo,

die Sourcen bestehen aus zwei großen Teilen. Der Delphi-Kern, der die eigentlichen exe-Dateien produziert und den ein normaler AvERP Anwender nie brauchen wird. Der zweite und aus Sicht des Programms "größere" Teil ist in der Datenbank in Form von Triggern und Stored Procedures enthalten. Um da dran zu kommen braucht man ein entsprechendes Firebird Entwicklungstools wie IBexpert, Maestro oder Flamerobin ... wobei meine eigene Präferenz deutlich bei ersterem liegt.

Der IBexpert ist also prinzipiell vergleichbar mit dem SQL-Management Studio von M$ was den Umgang mit den Datenbanken angeht.

Gruß
Michael
Nur wer das Unmögliche versucht, wird das Machbare erreichen!
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
PaulL
Beiträge: 13
Registriert: Mi Nov 07, 2012 2:04 pm

Wo liegen denn die Sourcen ?

Beitrag von PaulL »

Hallo Michael,

vielen Dank für die Hilfe, die Erklärung hat mich gut weitergebracht.
Ich habe mir IBExpert besorgt und sehe mich jetzt 3745 Prozeduren gegenüber. :D
Allerdings habe ich jetzt ein anderes Problem:
(aber warscheinlich sitzt das Problem ja wie in den meinten Fällen vor dem Bildschirm :lol: )
Wenn ich die oben beschriebene Fehlermeldung" ISC ERROR CODE:335544321...." mit dem Verweis auf die Prozedur 'P_DISPLAYFIELDLIST' line:202, col: 1. nehme und in der Prozedur 'P_DISPLAYFIELDLIST' nachschauen will, was da passiert, stelle ich fest das sie nur 188 Zeilen hat. :oops:
Was mache ich hier falsch ?

Viele Grüße
Paul
cpr
Beiträge: 137
Registriert: Mi Sep 01, 2010 9:31 pm

Re: Wo liegen denn die Sourcen ?

Beitrag von cpr »

PaulL hat geschrieben:das sie nur 188 Zeilen hat. :oops:
Was mache ich
IBExpert öffnet die Prozedur freundlicherweise in der Editier-Ansicht.

"Definiert" angezeigt wird die im Reiter "DDL"… ;)
Vor nicht allzu langer Zeit hat mich das auch stark verwundert! *g* Viel Spass!


Ach ja, manchmal findet man rein gar nix an der angegebeneen Stelle. Ich hatte immer die Vermutung, dass dies an "Kettenaufrufen" liegen könnte. Wenn also die Datenbank meldet "Fehler in Zeile 238", dort aber nur eine Variable deklariert ist -- dann hab ich mir immer zusammengereimt, dass weiter oben eine andere Prozedur aufgerufen sein könnte, deren DDL-Zeilen in den 'count' mitt reinlaufen…
--
Client: 4.2.5.42
Datenbank AVERP2011-A.02
miboe
Beiträge: 1295
Registriert: Fr Jul 28, 2006 9:13 am

Beitrag von miboe »

Hallo zusammen,

bitte mal mehr Inhalt zu der Fehlermeldung schreiben. In der Nähe des Prozedurnamens steht überlicherweise ziemlich genau, was Firebird für einen Fehler hält. Da stehen dann so Dinge wie COLUMN B.ID NOT IN TABLE.

Der reine ISC-Fehlercode ist (leider) ziemlich wenig aussagekräftig.

Gruß
Michael
Nur wer das Unmögliche versucht, wird das Machbare erreichen!
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
PaulL
Beiträge: 13
Registriert: Mi Nov 07, 2012 2:04 pm

Fehleranalyse

Beitrag von PaulL »

Hallo,

vielen Dank für die schnellen Rückmeldungen.
Mit dem Hinweis "DDL" stehe ich jetzt immerhin innerhalb der Prozedure,
allerdings auf einer Leerzeile zwischen enem END und einem SUSPEND,
was bis jetzt auch nicht so viel Sinn macht.

Die komplette Fehlermeldung im AvERP ist:

Meldung von der AVERP-Datenbank
Errcode: 335544321
ErrorMessage: ISC ERROR CODE:335544321

ISC ERROR MESSAGE:
arithmetic exception, numeric overflow, or string truncation
string right truncation
At procedure 'P_DISPLAYFIELDLIST' line:202, col: 1

STATEMENT:
TIB_StoredProc: "<TApplication>.frmData.StP_Universal."

SQLMessage:
SQLCODE: -802

Wo sucht man da jetzt am besten weiter, wenn man wissen will wo und warum es kracht ?

Viele Grüße
Paul
miboe
Beiträge: 1295
Registriert: Fr Jul 28, 2006 9:13 am

Beitrag von miboe »

Also ich habe mir das mal angeschaut:

Die Fehlermeldung bedeutet, dass ein String ohne saubere Typumwandlung, sprich ohne ein CAST ... AS VARCHAR(xx) und/oder ohne entsprechende Verwendung einer String-Funktion wie F_LEFT oder F_RIGHT in seiner Länge beschnitten wird. Ursache ist also ein zu langer Wert für eine Variable.

Die Prozedur hat exakt 202 Zeilen, das letzte SUSPEND, das die Ausgabe der Rückgabewerte macht steht in Zeile 201. Zu beachten ist, dass der Fehler in SPALTE 1 von Zeile 202 passiert, will sagen, der Fehler liegt entweder in der Zeile direkt davor oder im Rückgabewert, was hier das gleiche ist.

Ausgangspunkt für die Suche des Fehlers muss in diesem konkreten Fall die betroffene Maske sein, da hier offensichtlich in einem Event des 3. Reiters diese Prozedur mit Werten aufgerufen wird, die zum Fehler führen. Im neuen Design sieht man ja auch bei Masken mit ausgeblendeter Menüleiste den Maskennamen, in dem Fall ist das die FRMV_BKASSPOBARC. Hier dann den 3. Reiter anwählen und sich die Scripte anschauen. Im OnTabSheetShow wird die betroffene Prozedur aufgerufen. Gibt man die Parameter aus diesem Aufruf manuell im Ibexpert ein, kommt genau die gleiche Meldung: die zurückzugebende Feldliste ist zu lange für 8000 Stellen. Nimmt man nur 1 der beiden mittleren Felder raus, funktioniert es.

Das ganze ist also ein Bug ... und gehört demnach in die Fehlerberichte.

Gruß
Michael
Nur wer das Unmögliche versucht, wird das Machbare erreichen!
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
PaulL
Beiträge: 13
Registriert: Mi Nov 07, 2012 2:04 pm

Beitrag von PaulL »

Hallo Michael,
Danke für die brilliante Analyse und die tolle Beschreibung. :D
Ich werde das ganze jetzt mal versuchen nachzuvollziehen.

Gruß
Paul
PaulL
Beiträge: 13
Registriert: Mi Nov 07, 2012 2:04 pm

Beitrag von PaulL »

Hallo Michael,

Ich habe jetzt das ganze nachvollziehen können, einschließlich der Stelle, wo mehr als 8000 Zeichen zurückgegeben werden sollen, aber nur 8000 reinpassen. Nochmals Danke für die tolle Beschreibung.

Was macht man jetzt mit so einem Fehler ?
Wem und wohin meldet man den ?
Gibt es da irgenein Trackingsystem oder schickt man da einfach eine Email?

Gruß
Paul
miboe
Beiträge: 1295
Registriert: Fr Jul 28, 2006 9:13 am

Beitrag von miboe »

Hallo Paul,

dafür gibt es hier mi Forum die Rubrik FEHLERBERICHTE. Dort eine kurze Beschreibung mit Verweis auf diesen Thread hier posten und fertig.

Tracking-System warten wir alle schon länger drauf :)

Gruß
Michael
Nur wer das Unmögliche versucht, wird das Machbare erreichen!
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
Antworten