[Gelöst] Daten aus Excel in NAV-Tabelle einlesen

10. März 2010 10:25

Hallo alle zusammen,

ich möchte Daten aus Excel in NAV-DB einlesen. Dafür habe ich eine Codeunit erstellt, die mir die Daten aus Excel in T370-Excel Buffer einliest und dann mit Zuordnung in meiner NAV-Tabelle einlesen soll!
Das Einlesen der Daten von Excel --> in der Excel Buffer-Tabelle klappt ganz gut :-? nur wenn ich das Teil mit dem Einlesen von der Excel Buffer --> in meiner Zieltabelle ausführe, kommt es zu einer Fehlermeldung :evil: , die ich mir nicht erklären kann:

"Die Verkaufspreise existiert bereits. identifizierende Felder und Werte: Art='Artikel',Nr.='' "

Dabei muss ich erwähnen, dass meine Zieltabelle „Verkaufspreise“ keine Daten beinhaltet also die Ziel-Tabelle ist LEER!!!

Könnt Ihr mit dieser Fehlermeldung was anfangen? bin für jede Hilfestellung sehr dankbar…
Zuletzt geändert von amouslih am 5. Mai 2010 08:41, insgesamt 2-mal geändert.

Re: Daten aus Excel in NAV-Tabelle einlesen

10. März 2010 10:49

Hallo amouslih,

zunächst einmal lässt sich Code besser lesen, wenn man sie mit, den "Code"- Tags einschließen, dann ist das besser zu lesen.

Aber nun zu deinem Problem:

  • Ist diese Tabelle eine eigene Tabelle, oder ist das die Tabelle "Sales Price" aus dem Standard?
  • Die Fehlermeldung deutet auf mindestens zwei fehlende Artikelnummern in deinem Excel- Buffer hin.

Eine kleine weitere Anmerkung zur Tabellenstruktur:

Du solltest die Felder, die aus dem Artikelstamm stammen, nicht als tatsächliche Felder anlegen, sondern als Lookup- Flowfields. Diese Vorgehensweise spart dir Arbeit
bei Änderungen an den Stammdaten, die dann nicht mehr in die anderen Tabellen nachgezogen werden müssen. Außerdem vermeidet man die Anlage von redundanten, was oft zu Problemen führt.

Gruß, Fiddi

Re: Daten aus Excel in NAV-Tabelle einlesen

10. März 2010 11:06

Hallo Fiddi,

danke für Deine Antwort. Also, es geht hier um eine andere Tabelle und nicht um die Tabelle "Sales Price" aus dem Standard!
Was meinst Du mit Code-Tags?

Was meinst Du damit, dass hier mindestens zwei Artikelnummern fehlen? Wird hier nicht versucht eine „Leere“ Zeile einzufügen?

Die Verwendung von FlowFields vermeide ich bewusst, da deren Verwendung Performance-Probleme nach sich zieht!

Danke & Gruß
Zuletzt geändert von amouslih am 7. September 2010 23:36, insgesamt 1-mal geändert.

Re: Daten aus Excel in NAV-Tabelle einlesen

10. März 2010 11:22

Hallo amouslih

Table “Sales Preis” hat Primary Key:

Item No.
Sales Type
Sales Code
Starting Date
Currency Code
Variant Code
Unit of Measure Code
Minimum Quantity

diesen Feldern muss eingefühlt sein

Wenn diesen Feldern sind Lehr, dann bei „Verkaufspreise.INSERT „ NAV die Fehler produziert

Zirka so:

Verkaufspreise." Item No.":=ExcelBuffer."Artikel Number";
…..
Und so waiter

PS:
Egal welche Table ist
die Feldern aus „Primary Key“ muss eingefühlt sein

Gruß

[Gelöst] Daten aus Excel in NAV-Tabelle einlesen

10. März 2010 11:25

Hallo fiddi,

Deine Bemerkung zu den 2 Artikelnummern war ausschlaggebend und zum Lösen des Problems geführt!
In der Excel-Tabelle waren bei mir die ersten 2 Zeilen als Überschrift-Zeilen definiert, die ich natürlich mit eingelesen habe und danach aus der Excel Buffer entfernt! Das hat dazu geführt, dass die erste Zeile in der Excel Buffer-Tabelle mit 3 anfängt und nicht wie es sein soll mit 1!!!

Ich habe zur Lösung des Problems die beiden Überschrift-Zeilen aus meiner Excel-Tabelle entfernt und ich könnte dann die Daten problemlos einlesen.

Re: Daten aus Excel in NAV-Tabelle einlesen

10. März 2010 11:33

amouslih hat geschrieben:danke für Deine Antwort. Also, es geht hier um eine andere Tabelle und nicht um die Tabelle "Sales Price" aus dem Standard!
Was meinst Du mit Code-Tags?
Oberhalb des Eingabeframes ist ein Button "Code". Der bewirkt, dass aus "SetRange(Bla,Blabla)" sowas wird:
Code:
SetRange(Bla,Blabla)
und lange Codestücke besser lesbar werden.

amouslih hat geschrieben:Wird hier nicht versucht eine „Leere“ Zeile einzufügen?
Jo. Und offensichtlich existiert schon eine komplett leere Zeile in deiner Tabelle, deswegen geht's auch nicht. Aber in der Hauptsache scheint es mir, als fehlte die Belegung des PK oder ein Insert(true).

amouslih hat geschrieben:Die Verwendung von FlowFields vermeide ich bewusst, da deren Verwendung Performance-Probleme nach sich zieht!
Kann man so pauschal nicht sagen. Hat wie alles seine Vor- und Nachteile ...

Re: Daten aus Excel in NAV-Tabelle einlesen

10. März 2010 11:35

Also die Felder sollten eigentlich keine Performance- Probleme mehr bereiten, da Sie NAV eigentlich immer aus dem Artikelstamm holt, und nicht aus irgendwelchen anderen Tabellen (es sei denn, man hat NAV komplett umprogrammiert), und nur für die Anzeige sollte das heute kein Problem mehr sein.

Die Fehlermeldung bedeutet nur das du versuchst, in deine Tabelle einen Datensatz mit Typ Artikel und Nr. = leer einzufügen. Das geht aber nicht, weil so ein Datensatz schon drin ist.

Eine weitere Anmerkung: Du solltest das Feld "Nr." in deiner Tabelle mit der Artikeltabelle verbinden, und dann das Feld per Validate füllen. Das verhindert das Einfügen nicht vorhandener Artikelnummern.

Gruß, Fiddi