TableRelation Felder beim Dataports überprüfen

17. September 2007 12:09

Hallo allerseits

In einer Datenbank will ich zwischen zwei Mandanten den Deitorenstamm per Dataport übernehmen. Also den Kundestamm aus Mandant 1 in den Mandant 2 übertragen.

Dazu habe ich einen normalen Dataport gemacht. Die Übernahme klappt zwar. Aber jetzt steht im Mandant 2 zum Beispiel bei einen Debitor eine Geschäftsbuchungsgruppe drin, die im Mandant 2 überhaupt nicht vorhanden ist.

Wie lass sich das beim Dataport abfangen? Also Fehlermeldung : Debitor kann nicht importier werden weil Geschäftsbuchungsgruppe des Debitors x im Mandant 2 nicht vorhanden ist.

Gruß

Dai
Zuletzt geändert von dai am 17. September 2007 13:15, insgesamt 2-mal geändert.

17. September 2007 12:23

Validiere im Dataport einfach (per Quelltext) das Feld Geschäftsbuchungsgruppe. Den Rest besorgt Navision dann automatisch.

17. September 2007 12:55

Hallo Natalie

Genau das habe ich auch gedacht. Aber irgendwie mach ich das falsch. Folgendenshabe ich im "OnAfterImportRecord"-Trigger des Dataport geschrieben

"Gen. Bus. Posting Group".validate

Wenn ich kompiliere sage, kommt folgende Fehlermeldung
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

17. September 2007 13:01

Wenn schon, dann aber so ;-) :
Code:
VALIDATE("Gen. Bus. Posting Group");

Könnte aber sein, dass dass auch noch nicht klappt ... Dann einfach nochmal melden.

17. September 2007 13:01

Ops. Ich habe den Code ganz falsch geschrieben. Es muss so lauten

Customer.VALIDATE("Gen. Bus. Posting Group");


Somit hat sich mein Problem gelöst.

Danke

17. September 2007 13:02

Ops in dem moment wo ich mein beitrag geschrieben habe, hast du deinen Beitrag schon geschrieben. Darum habe ich dein letzten Beitrag nicht gesehen. ;-)

Danke dir

Gruß Dai
Zuletzt geändert von dai am 17. September 2007 13:15, insgesamt 1-mal geändert.

17. September 2007 13:04

Oder - aus meiner Sicht noch etwas einfacher - du stellst die Dataport-Field-Eigenschaft CallFieldValidate auf Yes.

Gruß, Marc

17. September 2007 13:14

Hi Marc

Diese Eigenschaft kannte ich bis jetzt nicht. Sehr interessant. Vielen Dank

Nun im diesen Zusammnhang habe ich eine Folgefrage. Bis jetzt war die prüfung nur bei Geschäftsbuchungsgruppe. Muss ich das jetzt bei jeden Feld machen, das eine Tablerelation hat? Oder gibt es eine Komplettlösung, das alle Felder prüft die eine TableRelation hat.

Denn ich weiss ja nicht alle Felder, die TableRelation haben. (Mühsam rauszufinden)

17. September 2007 14:03

Du kannst auch alle Felder theoretisch alle Felder validieren (was heißt ,dass du die Eigenschaft CallFieldValidate überall auf JA stellst). Wenn in einem Feld kein Validierungscode hinterleg ist, dann macht das auch nichts.

Sinnvoller ist es allerdings, wenn du einfach mal selber in die Tabellenfelder schaust, was validiert wird (es geht dabei mehr als nur um die TableRelations!) - und ob du das möchtest.

17. September 2007 14:16

Nun das kann ich machen.

Mir geht es in erster Linie darum, ob Feldwerte in der hinterliegende Tabellen ( Tablerelation ) vorhanden sind oder nicht.