Projekt Rückerfassungsverteilung (FRMV_BPROJPODVERT)

Allgemeine Diskussionen um die ERP Software AvERP

Moderator: SYNERPY

Antworten
root68
Beiträge: 22
Registriert: Di Jul 22, 2008 7:48 am

Projekt Rückerfassungsverteilung (FRMV_BPROJPODVERT)

Beitrag von root68 »

Hallo

Es war uns seit der A2009er Version nicht mehr möglich, ohne eine DB-Fehlermeldung Zeiten rück zu erfassen über die Rückerfassungsverteilung.

Fehlermeldung bei Insert in die BPROJPOD: Conversion Error "00:00:00"

Im Insert Trigger der BPROJPOD ist folgende Zuweisung an zwei Stellen nicht korrekt:
-->CAST('00:00:00' AS INTEGER);

Ich habe die Zeilen so korrigiert:
IF (NEW.ZEIT_VON IS NULL) THEN NEW.ZEIT_VON = '00:00:00';--CAST('00:00:00' AS INTEGER);
IF (NEW.ZEIT_BIS IS NULL) THEN NEW.ZEIT_BIS = '00:00:00';--CAST('00:00:00' AS INTEGER);
Ich gehe davon aus, Time Domains können keine Integer verarbeiten. Jetzt funktioniert die Rückerfassung wieder. "Insert Trigger der BPROJPOD"

Gruß
MfG
Markus
Thomas Rogge
Beiträge: 159
Registriert: Mi Mär 04, 2009 10:45 am

Beitrag von Thomas Rogge »

Moinsen,

nach unserem Update habe ich jetzt selbiges Problem und bekomme folgende Fehlermeldung nach Versuch der Verteilung:
Bild

Wenn ich im Designer das Formular BPROJPOD aufrufe und dort den Objektinspektor und mit rechter Maustaste auf Form after insert klicke, sieht der Code wie folgt aus:

Code: Alles auswählen

Begin
  BPROJPO_ID := 0;
  BPROJPO_ID := AsInteger(q_1.FieldByName('BPROJPO_ID_LINKKEY'));
  if (BPROJPO_ID > 0) then
  begin
    MyProc := frmData.StP_Universal;
    MyProc.StoredProcName := 'P_MASKENKEY_LFDNR';
    MyProc.ParamByName('MyTabelle','BPROJPOD');
    MyProc.ParamByName('LINKKEY',BPROJPO_ID);
    MyProc.ParamByName('MyStep',10);
    MyProc.Execute;
    D := AsString(MyProc.FieldByName('MyDefault'));
    M := Q_1.FieldByName('Maskenkey');
    SetString(M,D);
    SetFocus('E_BSM_MASKENKEY');
  end;

  BSM_ID := frmData.nMTAID;
    
  if (BSM_ID > 0) then
  begin
    M := q_1.FieldByName('BSM_ID');
    M.Value := BSM_ID;
    q_1.RelationIDFeld('BSM_ID');
  end;

  M := q_1.FieldByName('DATUM');
  M.Value := Date();
  
  E_ABRECHNUNG_IC.FIELD.AsString := copy(frmData.sJaNein,2,1);

  SetFocus('E_ZEIT_VON');
End;
Bin ich da auf dem richtigen Weg und wenn ja, welche Zeile soll dort korrigiert werden?

Gruß
Thomas
Software-Version: 6.6.10.0
DB-Version: AVERP2018.03
Server: Windows 10 Pro Intel Xeon E3-1230v6 - 16GB RAM
50 User
root68
Beiträge: 22
Registriert: Di Jul 22, 2008 7:48 am

Beitrag von root68 »

Hallo,

nein, Sie sind nicht auf dem richtigen Weg. Die beiden Zeilen findet man im INSERT-Trigger der BPROJPOD innerhalb IB Expert (direkt in der Datenbank). Also nicht den Designer benutzen. Hier editieren Sie die Maske selbst und nicht die Datenbank.

Zusammenfassend:
In IBExpert die richtige Datenbank öffnen. Dann die Tabelle BPROJPOD aufsuchen und per Doppelklick öffnen. Innerhalb der geöffneten Tabelle den Reiter Trigger klicken. Jetzt werden in der Übersicht darunter alle Trigger angezeigt. Dort den Before Insert doppelklicken. Nun geht eine weitere Instanz auf. Sie befinden sich nun im Triggercode. Einfach nach der Stelle suchen.

Viel Erfolg.

Gruß
Markus
MfG
Markus
Thomas Rogge
Beiträge: 159
Registriert: Mi Mär 04, 2009 10:45 am

Beitrag von Thomas Rogge »

Moinsen Markus,

da sage ich mal danke :wink:
Funktioniert bestens....

Viele Grüße
Thomas
Software-Version: 6.6.10.0
DB-Version: AVERP2018.03
Server: Windows 10 Pro Intel Xeon E3-1230v6 - 16GB RAM
50 User
Antworten