[gelöst] Problem bei Budget auf Konten mit Kontoart Summe

22. Mai 2007 10:10

Hallo allerseits

Ein Kunde von uns will folgendes machen.

Er hat im Kontenplan ein Konto x mit Kontoart Summe angelegt. In der Spalte Zusammenzählung trägt er verschiedende Konten ein. Und zwar mit Pipe da die Konten aus verschiedene Kontenklassen sind. Also Zum Beispiel 3001|3002 usw.

Jetzt will er im Fenster Budget auf diesesn Konto x ein Budgetwert eingeben. Dies klappt nicht. Unten angezeigteFehlermeldung erscheint dann.

Ist es im Standard möglich auch auf Konto mit Kontoart Summe zu budgetieren, wenn in der Spalte Zusammenzählung Konten mit Pipe zusammegezählt werden? Wenn ich mit ".." arbeite geht es ja. Nur nicht wenn man mit Pipe arbeitet.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von dai am 29. Mai 2007 09:42, insgesamt 1-mal geändert.

22. Mai 2007 10:59

Hallo Dai!

Die Fehlermeldung die du da bekommst, ist eine vom System erstellte, also keine die irgendwo im Programmcode per C/AL-Befehl ERROR erzeugt wird. Somit hast du da keinen Einfluss drauf.

Die Budgets sind eine von sehr wenigen Stellen im gesamten Navision, wo über ein FlowField Daten eingegeben werden (sonst werden per FlowField lediglich Daten angezeigt). Und dabei sind halt nur Filterbereiche (von/bis) in den FlowFilter-Fields erlaubt.

Gruß, Marc

22. Mai 2007 11:25

Hallo Marc

Das ist ja eine interessante Information. Das heiss, das mein Vorhaben systembedingt nicht möglich ist? Also auch nicht durch programmiertechnische Anpassungen realisierbar?

Gruß

22. Mai 2007 11:59

dai hat geschrieben:Das heiss, das mein Vorhaben systembedingt nicht möglich ist? Also auch nicht durch programmiertechnische Anpassungen realisierbar?

Wenn man bei der FlowField-Technik bleibt, denke ich nicht, dass man es durch eine programmiertechnische Anpassung hinbekommen kann.

Natürlich bleibt noch die Möglichkeit, dass ohne die FlowFields zu realisieren, aber dann müsste man schon gut programmieren.

Gruß, Marc

22. Mai 2007 18:54

@dai
ich habs nicht probiert, aber vielleicht kannst du zwei neue aufeinanderfolgende Summenkonten erzeugen, denen im Feld Zusammenzählung dann jeweils genau eins der tatsächlich zu verwendenden Konten zuweisen und in deinem bisherigen Summenfeld die Range genau auf die beiden Dummykonten setzen.
Ich weiß aber nicht, ob Navision bei derartigen Tricks mitspielt, theoretisch müsste es gehen.

Problem bei Budgetierung auf Konten mit Kontoart Summe

23. Mai 2007 10:24

Hallo,

also ich habe das mal nachgestellt und im Debugger angeschaut: die Fehlermeldung wird in folgender Zeile im Form 113 im Matrixteil, auf OnValidate erzeugt:

Code:
LogInsertion :=  ChangeLogMgt.GetTableTriggerMask(DATABASE::"G/L Budget Entry") MOD 2 <> 0;
IF LogInsertion THEN
  IF GLBudgEntry2.FIND('+') THEN
    LastEntryNo2 := GLBudgEntry2."Entry No.";
GLAccBudgetBuf.CALCFIELDS("Budgeted Amount");

//hier gehts schief
GLAccBudgetBuf.VALIDATE("Budgeted Amount",BudgetedAmount - GLAccBudgetBuf."Budgeted Amount");

Amount := CalcAmount(FALSE);
BudgetedAmount := CalcAmount(TRUE);
IF LogInsertion THEN
  IF GLBudgEntry2.FIND('+') THEN
    IF LastEntryNo2 < GLBudgEntry2."Entry No." THEN BEGIN
      RecRef.GETTABLE(GLBudgEntry2);
      ChangeLogMgt.LogInsertion(RecRef);
    END;


Das Feld "Budgeted Amount" der Tabelle 374 "G/L Acc. Budget Buffer" ist ein Flowfield, welches bei Eingabe eines Wertes automatisch in der verbundenen Tabelle (Budgetposten) ein Record erzeugt. Das funktioniert in diesem Fall nicht, weil getrangemax() auf einen Fehler bei der Zusammenzählung läuft. Für diesen Fehler kann man aber einen Workaround finden: anstatt den Budgetposten automatisch zu erzeugen muss man ihn komplett im Code (an dieser Stelle) füllen und einfügen, und dann gehts.

Gruß

Jens

Re: Problem bei Budgetierung auf Konten mit Kontoart Summe

23. Mai 2007 10:56

jglathe hat geschrieben:Für diesen Fehler kann man aber einen Workaround finden: anstatt den Budgetposten automatisch zu erzeugen muss man ihn komplett im Code (an dieser Stelle) füllen und einfügen, und dann gehts.

Aber dafür kannst du doch nicht das FlowField nutzen, oder versteh ich das jetzt falsch?

Gruß, Marc

Re: Problem bei Budgetierung auf Konten mit Kontoart Summe

23. Mai 2007 11:55

Marc Teuber hat geschrieben:Aber dafür kannst du doch nicht das FlowField nutzen, oder versteh ich das jetzt falsch?


Naja, ich würde sagen eigentlich doch :) Das Problem ist ja, dass die auf GLAccBudgetBuf gesetzten Filter in diesem Fall nicht so wirklich zu getrangemax() passen. Wenn man dafür sorgt, dass diese passen, gehts. Das muss halt nur vor dem validate erledigt werden, und eigentlich für jedes in Frage kommende Feld, also auch für die ganzen Dimensionsfilter. Der Code dafür sieht dann ungefähr so aus:

Code:
GLAccBudgetBuf.copyfilter("G/L Account Filter",TestGLAcc."No.");
TestGLAcc.find('+');
GLAccBudgetBuf.setrange("G/L Account Filter",TestGLAcc."No.");


und dann validieren, dass sollte gehen. Habs gerade mal testweise eingefügt, geht wirklich :) Also für alle kritischen Filter diesen Code einfügen, und dann sollte es gehen.

Gruß

Jens

29. Mai 2007 09:41

Vielen Dank für eure Beiträge.

Wir konnten den Kunden überreden, diese Problem anders zu lösen. Und zwar bei den Budget nicht das Summenkonto zu budgetieren sondern die einzelen Konten selber. Die Budgets der einzelnen Konten selber werden dann ja im Summenkonto zusammengezählt.

Gruß

Dai