[Gelöst] Debitorenbuchungsgruppe manuell zuweisen

21. März 2006 17:55

Hallo zusammen,

noch eine kurze Frage. In der Tabelle "Debitorenbuchungsgruppe" sind Debitorensammelkonten hinterlegt. Wenn ich versuche in meinem Report die Debitorenbuchungsgruppe zu ändern, funktioniert das nicht. Der Code lautet folgendermaßen:

Code:

SalesHeader_Rec.VALIDATE("Customer Posting Group", 'BH-PAUSCHA');



Kann es sein, dass man die Debitorenbuchungsgruppe nicht manuell geändert werde darf?

Und noch ne Frage. Ich habe auch versucht das Belegdatum manuell zu ändern. Auch dies funktioniert nicht.

Code:

SalesHeader_Rec.VALIDATE("Document Date",BuHaPauschale2005.Belegdatum);



Darf man auch das Belegdatum nicht ändern?

P.S.: Der Report läuft einwandfrei durch. Keine Fehlermeldungen. Nur die Änderungen werden einfach nicht durchgeführt.
Zuletzt geändert von mgerhartz am 10. April 2006 13:30, insgesamt 1-mal geändert.

21. März 2006 19:53

hast du denn einen SalesHeader_Rec.modify Befehl hinter die Änderungen eingefügt?
Wenn nicht werden die Änderungen verworfen.

22. März 2006 10:01

Guten Morgen Michael,

sobald ich SalesHeader_Rec.MODIFY hinter dem Befehl eingebe, erscheint eine Fehlermeldung, dass dieser Verkaufskopf nicht existiert UND mein Navision schmiert komplett ab und startet sich anschließend neu. Zum Glück ist das nur eine lokale Entwicklungsumgebung. Sehr seltsam!

22. März 2006 10:12

Übrigens hatte ich nach den ganzen Validate - Zeilen ein INSERT(TRUE). Dass sollte doch die Änderung einfügen? Trotzdem will er die Änderungen einfach nicht annehmen. Hier noch mal der betreffende Part:

Code:

IF (Customer_Rec.GET(BuHaPauschale2005.Gliederungsnummer)) THEN BEGIN
  SalesHeader_Rec.INIT;
  SalesHeader_Rec.VALIDATE("No.",'');
  SalesHeader_Rec.VALIDATE("Posting Date", 311205D);
  SalesHeader_Rec.VALIDATE("Document Date", 311205D);
  SalesHeader_Rec.VALIDATE("Customer Posting Group", 'BH-PAUSCHA');
  SalesHeader_Rec.INSERT(TRUE);
END;


Also das Posting Date wird geändert, jedoch das Document Date verwendet das aktuelle Tagesdatum und die Customer Posting Group bleibt unverändert.

22. März 2006 10:42

Hallo,

versuchs doch mal mit dem Debugger. Dort kannst du den Programmcode Schritt füt Schritt abarbeiten und den Inhalt einzelner Felder und Variablen an der jeweiligen Stelle prüfen bzw. herausfinden, warum der Validate auf ein Feld nicht korrekt funktioniert.

MfG
Josef Metz

22. März 2006 11:31

Hallo mgerhartz,

bei einem INSERT oder MODIFY würde ich dir Empfehlen, den Rückgabewert abzufangen.
Wenn der Datensatz nicht eingefügt oder geändert werden konnte, erscheint ansonsten eine Fehlermeldung!

Beispiel:
Code:
IF (Customer_Rec.GET(BuHaPauschale2005.Gliederungsnummer)) THEN BEGIN
  SalesHeader_Rec.INIT;
  SalesHeader_Rec.VALIDATE("No.",'');
  SalesHeader_Rec.VALIDATE("Posting Date", 311205D);
  SalesHeader_Rec.VALIDATE("Document Date", 311205D);
  SalesHeader_Rec.VALIDATE("Customer Posting Group", 'BH-PAUSCHA');
  IF NOT SalesHeader_Rec.INSERT(TRUE) THEN
    MESSAGE('Der Datensatz %1 konnte nicht eingefügt werden!',SalesHeader_Rec."No.");
END;


mgerhartz hat geschrieben:Übrigens hatte ich nach den ganzen Validate - Zeilen ein INSERT(TRUE). Dass sollte doch die Änderung einfügen? Trotzdem will er die Änderungen einfach nicht annehmen. Hier noch mal der betreffende Part:

Ein INSERT fürgt einen neuen Datensatzt ein, er Ändert keinen Vorhandenen!
Gruß Mikka

22. März 2006 12:44

Hi Mikka, danke für den Hinweis. Ich habe jetzt den Report auf die Testumgebung importiert. Die Geschäftsbuchungsgruppe wird jetzt komischerweise validiert, obwohl ich noch keine Änderungen am Code vorgenommen habe :?: Das Belegdatum allerdings nicht.

22. März 2006 13:35

Wenn die Geschäftsbuchungsgruppe jetzt geändert wird dann ist vorher wohl der SalesHeader schon da gewesen.

22. März 2006 16:46

Wichtig ist auch immer auf den Objekt-Cache zu achten !

Ist dieser beim Entwicklen ungleich Null, wird u.U. nicht das neu compilierte Objekt sondern das "alte, fehlerhafte" aus dem Cache.