[Gelöst] Gebietszuständikeit aktualisieren

13. März 2009 14:30

Hallo allerseits

da wir die Gebietszuständigkeiten für unsere Verkäufer geändert haben, möchte ich dass diese Änderung bei den Debitoren wirksam wird, d.h. für ein bestimmtes Gebiet soll der Verkäufer XY zuständig sein. Im Table Territory habe ich das dementsprechened geändert. Im Table Cutomer ist für das Feld Territory Code unter dem Trigger OnValidate eine Funktionalität implemtiert, die für einen bestimmten Gebietscode den zusändigen Verkäufer zuweist.
Leider wird Navision aufgrund der Ereignissteureung es nicht von selbst merken, dass nun ein neuer Verkäufer da ist. Es müsste also der Gebietscode erneut eingegeben werden. Da es bei hunderten Debitoren mühselig werden kann, wäre meine Idee, diesen Job einer Codeunit zu überlassen.

Meine Idee wäre eine REPEAT-Schleife, die den Table Customer durchläuft und für jede Rec in das Feld "Territory Code " genau denselben Gebietscode nocheinmal einsetzt(MODIFY), dann könnte der Trigger OnValidate ausgelöst werden.
Ich bräuchte hierzu ein paar Tipps, wie ich soetwas angehen könnte, genaue Implemtierungsdetails müssen wir aber nicht gegeben werden.Ich will ja noch Spass am Finden einer eigenen Lösung haben.

Vielen Dank
Alex
Zuletzt geändert von NAVGATOR am 17. März 2009 14:30, insgesamt 1-mal geändert.

Re: Gebietszuständikeit aktualisieren

13. März 2009 14:57

Ein validate auf das Feld reicht völlig aus :)

Re: Gebietszuständikeit aktualisieren

13. März 2009 16:38

McClane hat geschrieben:Ein validate auf das Feld reicht völlig aus :)

Wir man denken, vor allem wenn man in die Doku sieht:

Record.VALIDATE(Field [, NewValue])

Zitat:
If you omit NewValue, the function validates the current value


Bei mir passiert hier nichts

Meine Codeunit macht folgendes:

Code:
IF Debitor.FINDFIRST THEN BEGIN
 
 REPEAT
 
  Debitor.VALIDATE("Territory Code");
 
 UNTIL
 
  Debitor.NEXT=0;

  MESSAGE(text001);
 
 END;


Im OnValidate Trigger steht folgendes:

Code:
Territory Code - OnValidate()
IF gebiet.GET("Territory Code") THEN BEGIN
"Salesperson Code" := gebiet."Zuständiger Verkäufer";
Vertriebsbüro := gebiet."Zuständiges Vertriebsbüro";
END;

IF "Country Code" = 'US' THEN BEGIN
  City := City + ' ' + gebiet.Bundesregion;
END;


Der Witz ist, wenn ich einen neuen Debitor anlege, und einen Gebietscode eingebe funktioniert das.
Warum leistet bei mir das die VALIDATE Funktion nicht?
In der Doku steht

VALIDATE first checks any TableRelation Property and then executes the OnValidate (Fields) Trigger of the field.


Es ist nach wie vor der alte Verkäfercode drinnen, wenn ich die Codeunit durchlaufen lasse

MfG
NAVGATOR

Re: Gebietszuständikeit aktualisieren

13. März 2009 17:26

Hab's missverstanden, tschuldigung. Validate und dann modify.

Re: Gebietszuständikeit aktualisieren

17. März 2009 10:02

kein Problem!

Re: Gebietszuständikeit aktualisieren

17. März 2009 14:30

danke, passt jetzt!