[GELÖST] Die Variable ist kein Datensatz

1. September 2010 09:07

Hey,

ich bekomme beim programmieren eines Dataport folgende Fehlermeldung: "Die Variable ist kein Datensatz. Variable.Feld ist ungültig!". Nun weiß ich nichts damit anzufangen.
Habe als DataItem im Dataport Customer verwendet und wollte nun einen Setrange auf den Contact machen. Rec-Variable ist gesetzt. Contact.Setrange("No.","No."); und dann diese Fehlermeldung.


Ich habe keine Ahnung woran es liegt. Wenn ich ein zweites DateItem eingerückt hinzufügen möchte erzählt Navision mir etwas von einem UXML Format Feler! What´s going wrong?

THX

Chris
Zuletzt geändert von tac0211 am 1. September 2010 09:48, insgesamt 1-mal geändert.

Re: Die Variable ist kein Datensatz

1. September 2010 09:38

Gemeine Sache. Du sprichst nicht das Record mit dem Namen Contact an, sondern das Feld Customer.Contact. Nenn die Record-Variable einfach "Cont" und schon wird's gehen :)

Dataports können eigentlich nur ein DataItem haben. Man kann das allerdings austricksen und mehrere verwenden, wenn abschließend noch ein DataItem vom Typ Integer (Ganzzahl) eingesetzt wird. Ob man den Inhalt der erzeugten Datei dann benutzen kann, sei aber dahin gestellt.

Achso: an die zugehörigen Kontakte kommt normalerweise nicht über die Verknüpfung der Felder "No.". Das ginge nur, wenn ihr das absichtlich so eingerichtet habt.

Re: Die Variable ist kein Datensatz

1. September 2010 09:48

*DISCH*

Kennst Du diesen AHA-EFFEKT? Man man, manchmal sieht man den Weld vor Lauter Bäumen nicht!

Vielen lieben Dank! Bin ich doof :-) Aber nun geht es!

Vielen Dank

Chris

Re: [GELÖST] Die Variable ist kein Datensatz

1. September 2010 09:53

Alternativ hättest du auch eine lokale Variable "Contact" setzen können, glaube ich. Aber ein anderer Name als das Feld ist schon eindeutiger.

Re: [GELÖST] Die Variable ist kein Datensatz

15. Juli 2013 16:32

McClane hat geschrieben:Aber ein anderer Name als das Feld ist schon eindeutiger.

Feldbezeichnungen, die übliche Variablennamen enthalten, sollte man vermeiden. Ich habe hier aktuell einen Merge einer Kundendatenbank, wo in der Tabelle 23 Vendor ein Feld "Salesperson" angelegt wurde. Damit wird innerhalb dieser Tabelle bei Salesperson.GET(…), das eigentlich auf die Tabelle 13 Salesperson/Purchaser gehen soll, auch die obige Fehlermeldung erzeugt, weil der Feldname Priorität hat. Objekte, die normalerweise kompilierbar wären, müssen dann angepasst werden, wenn die Wurzel des Übels nicht geändert werden kann ( "Salesperson Code" wäre als Bezeichnung richtig).