Fehler bei Barcode-Rückerfassung - ID-Mta.

Lob (und Tadel), Anregungen und Probleme.

Moderator: SYNERPY

Antworten
droesner
Beiträge: 4
Registriert: Di Feb 27, 2007 11:10 am

Fehler bei Barcode-Rückerfassung - ID-Mta.

Beitrag von droesner »

Hallo,
Hab mir gerade die neue Version 3.0.0.45 mit Datenbank 2008-A.09 eingerichtet. (Mitarbeiter, Arbeitsschritte, Arbeitsstammplan, Rechte)

Bei der Barcode-Rückerfassung bekomme ich jedoch bei Schritt Mitarbeiter-Scannen folgenden Fehler:

Aktuelle Variablenwerte:
Barcode = '2'
bEinfach = False
kenner = 'P'
MySQL = 15291016
STARTSTOP = '1'

Laufzeitfehler: 10000 (Zeile: 8)
"Komponente nicht gefunden"
Laufzeitfehler: 10000 (Zeile: 11)
"Komponente nicht gefunden"

Wenn ich die Fehleranzeige schließe wird der Mitarbeiter angezeigt

Wo könnte ich was vergessen haben? Hatte mir erst einen User BARCODE eingerichtet - klappt aber selbst mit SYSDBA nicht.

Für Hilfen jederzeit offen - Danke.

Edit am
18.04.08

Hab es in der leeren Datenbank mit SYSDBA probiert.
Scannen "NEWDATA" funktioniert.
Beim Scannen des Mitarbeiters "DB-Administrator - P00000001" taucht dieser Fehler ebenfalls auf.
Ist der Fehler reproduzierbar oder nur in meinem System?
Geri12
Beiträge: 589
Registriert: Mi Apr 16, 2008 7:51 am

Beitrag von Geri12 »

Hallo droesner,
ist mir gerade beim Testen genau so passiert: Laufzeitfehler 10000 in Zeile 8 und Zeile 11.

GDB 2008-A.08, AvERP-Version 3.0.0.45

Wüßte nicht, wo ich noch notwendige Stammdaten vergessen haben könnte: Mitarbeiter mit Wochenarbeitszeiten, Zeitmodell, Lohnarten, Lohngruppen (falls die für die Projektzeitenerfassung überhaupt benötigt werden). Fertigungsauftrag mit FA-Positionen mit Status "I".

Habe leider im Moment auch keine Ahnung, woran das liegen könnte :?:

Bei neuen Erkenntnissen würde ich mich über eine kurze Rückmeldung freuen.

Gruß
Geri12
Geri12
Beiträge: 589
Registriert: Mi Apr 16, 2008 7:51 am

Beitrag von Geri12 »

Hallo,

die Fehlermeldung tritt offensichtlich in der Maske BFABARC in Prozedur PROC0001 auf, wenn die Zeile ...

Code: Alles auswählen

MySQL.ParamByName('BSM_ID', BSM_ID);
... erreicht wird.

Wenn ich den kompletten ff. Quellcode (scheinbar dort, wo der letzte gescannte Datensatz des Mitarbeiters gesucht wird) auskommentiere, tritt die Fehlermeldung nicht mehr auf.

[EDIT]
Es wäre also nach dem Abschnitt ...

Code: Alles auswählen

 if (kenner <> '*') and ((q_1.state = dssInsert) or (q_1.state = dssEdit)) then
  begin
    if (kenner = 'P') then
    begin
      SetFocus('E_BSM_ID');
      E_BSM_ID.FIELD.AsInteger := StrToInt(Barcode);
      q_1.RelationIDFeld('BSM_ID');

      STARTSTOP := '1';
das Folgende auszukommentieren ...

Code: Alles auswählen

      if ((STARTSTOP = '1') AND (BSM_ID <> '')) then
      begin
        MySQL := frmData.Universal;
        MySQL.SQL.TEXT := ' SELECT MIN(A.ID) AS "ID", A.BFAA_ID AS "BFAA_ID", A.BSMST_ID AS "BSMST_ID", A.ZEITART AS "ZEITART"  ' +
                          ' FROM BFABARC A ' + 
                          ' WHERE A.BSM_ID = :BSM_ID AND ' +
                          '       A.STARTSTOP = :STARTSTOP AND ' +
                          '       A.BFAD_ID IS NULL ' +
                          ' GROUP BY A.BFAA_ID, A.BSMST_ID, A.ZEITART' ;
        MySQL.ParamByName('BSM_ID', BSM_ID);       /* HIER HÄNGT'S */
        MySQL.ParamByName('STARTSTOP', STARTSTOP);
        MySQL.open();
        BFABARC_ID := AsInteger(MySQL.FieldByName('ID'));
        BFAA_ID := AsInteger(MySQL.FieldByName('BFAA_ID'));
        BSMST_ID := AsInteger(MySQL.FieldByName('BSMST_ID'));
        ZEITART := AsString(MySQL.FieldByName('ZEITART'));
        MySQL.close(); 

        if (BFABARC_ID > 0) then
        begin
          // ältester gestarteter Arbeitsgang aufrufen
          LB_HINWEIS.CAPTION := 'J';
          M := q_1.FieldByName('BFAA_ID');
          M.Value := BFAA_ID;
          q_1.RelationIDFeld('BFAA_ID');
          N := q_1.FieldByName('BSMST_ID');
          N.Value := BSMST_ID;
          q_1.RelationIDFeld('BSMST_ID');
          E_ZEITART.FIELD.AsString := ZEITART;

          E_MENGE.Field.AsFloat := 0.0;
          E_AUSSCHUSS.Field.AsFloat := 0.0;
          E_MENGE.Enabled := false;
          E_AUSSCHUSS.Enabled := false;
        end
        else
          LB_HINWEIS.caption := 'N';
      end;
[/EDIT]

Allerdings ist das nur ein Teil meines Problems. Trotz Fehlermeldung beim Mitarbeiter-Scan konnte man ja weitere Daten einscannen/eingeben (Start/Stop/Fertig, Arbeitsgangbarcode). Aber beim Abschließen des Datensatzes mit SAVDATA bekomme ich ff. Debuggermeldung ohne Errormeldung und stehe damit wieder da wie am Anfang ...

Code: Alles auswählen

Aktuelle Variablenwerte:
Barcode = 'SAVDATA'
bEinfach = False
kenner = '*' 
Beim Abschließen des Datensatzes mit "Einfügen bestätigen" bekomme ich ...

Code: Alles auswählen

ISC Fehlernummer 335544652
multiple rows in singleton select
In der Tabelle BFABARC sind noch keine Datensätze.

Wie weiter ???

Gruß
Geri12
Zuletzt geändert von Geri12 am Mo Jun 02, 2008 8:11 am, insgesamt 1-mal geändert.
Geri12
Beiträge: 589
Registriert: Mi Apr 16, 2008 7:51 am

Beitrag von Geri12 »

Hallo,
einen Lösungsansatz für den 2.Fehler habe ich scheinbar gefunden.
Muss aber noch genauer getestet werden.

Hier etwas mehr Infos zum Nachlesen ...
http://forum.synerpy.de/viewtopic.php?p=8691#8691

Gruß
Geri12
Antworten