[gelöst] Problem mit Getbefehl

13. März 2007 10:37

Moin,
ich habe ein seltsames Problem.
Bei meinem get auf eine Tabelle bekomme ich kein Ergebis, obwohl die Schlüsselwerte korrekt sind, der Schlüssel angelegt ist usw. Aber trotzdem findet es den Datensatz nicht. :-(
Code:

    if TempJnlLineDim3.GET(TableID3,GnTmpName,GenJnlLine."Journal Batch Name",
      GenJnlLine."Line No.",GenJnlAllocation."Line No.",CISInstFunc.GetDimCode(i)) then
        CASE i OF
          3: GLEntry."Shortcut Dimension 3 Code" := TempJnlLineDim3."Dimension Value Code";
          4: GLEntry."Shortcut Dimension 4 Code" := TempJnlLineDim3."Dimension Value Code";
          5: GLEntry."Shortcut Dimension 5 Code" := TempJnlLineDim3."Dimension Value Code";
          6: GLEntry."Shortcut Dimension 6 Code" := TempJnlLineDim3."Dimension Value Code";
          7: GLEntry."Shortcut Dimension 7 Code" := TempJnlLineDim3."Dimension Value Code";
          8: GLEntry."Shortcut Dimension 8 Code" := TempJnlLineDim3."Dimension Value Code";
        END;


Wenn ich das Get nicht mehr mit If...then abfange bekomme ich die Fehlermeldung, die ich euch als Anhang beigelegt habe.

Im übrigen befindet sich das Get innerhalb einer Codeunit, die fürs Buchen zuständig ist. In den ersten Durchläufen funktioniert es auch, aber dann irgendwann findet es die geforderten Werte nicht mehr, obwohl sie vorhanden sind.
Datensatz in der Tabelle:
Tabellen ID:221
Buch.-Blatt Vorlagenname:WIEDERK.
Buch.-Blatt Name:STANDARD
Buch.-Blattzeilennr.:20000
Verteilungszeilennr.:20000
Dimensionscode:HAVARIE
Dimensionswertcode:03/05
Neuer Dimensionswertcode:
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von Holzer am 13. März 2007 14:07, insgesamt 1-mal geändert.

13. März 2007 10:50

Wenn ein Get-Befehl nicht funktioniert, fallen mir auf Anhieb zwei Sachen ein:

1. In dem Moment, wo er ausgeführt wird, ist der betreffende Datensatz nicht mehr vorhanden oder verändert worden

2. Einer der Variablen für den Get-Befehl enthält einen falschen Wert

13. März 2007 10:56

Sowas hatte ich ja auch gedacht, deshalb habe ich ja auch die Fehlermeldung mit angehängt. Dort sieht man, das die Variablen, den richtigen Wert haben.
Das die Tabelle innerhalb der Codeunit manipuliert wird, und danach wieder zurückgesetzt wird ist doch auch unwarscheinlich....

Ergibnis soll übrigens der Eintrag der Dimensionswerte in die Sachposten sein. Wenn ich nur eine Zeile Buche geht das wunderbar, nur wenn es mehrere Zeilen sind werden die Datensätze nicht mehr gefunden.....
Sehr merkartig :-?

13. März 2007 14:02

kann es vielleicht sein das er "irgendwann" in eine Routine springt die dir den gewünschten datensatz herausfiltert das du ihn mit get nicht mehr bekommst?
schau doch mal im debugger welcher Filter gerade verwendet wird

13. März 2007 14:06

Ich habe eben mal nachgesehen und das get geht an eine temporäre Record Variable. Diese hat zum Zeitpunkt der Abfrage aber nur den Inhalt, der bei der ersten Buchungszeile relevant war.....
Danke für die Denkanstöße