Re: DataPort mit mehreren Tabellen

18. September 2009 15:02

Warum prüfst du den Description auf leer, die Abfrage ist dazu da, nur dann einen Record zu lesen, wenn das entsprechende Code- Feld im Basis- Record (hier Artikel) auch gefüllt ist.
Deshalb: Er soll die Artikeleinheit nur dann lesen, wenn in der Basiseinheit auch was drin steht. Ansonsten gibt er einen leeres Feld aus (deshalb der Clear am Anfang).

Gruß, Fiddi
Zuletzt geändert von fiddi am 18. September 2009 15:22, insgesamt 1-mal geändert.

Re: DataPort mit mehreren Tabellen

18. September 2009 15:19

fiddi hat geschrieben:@mikka,
manchmal ist Support die Kunst, das zu erahnen, was der Kunde sich gedacht hat, und nicht das was er gesagt hat. Man nennt das auch Erfahrung. :wink:


Tja, die erste Frage sah nur so schön definiert aus, und ich fühlte mich im stande zu helfen :cry:

@MisterElekro1981
Ich werde drüber hinwegkommen :wink:

Re: DataPort mit mehreren Tabellen

18. September 2009 15:35

Ich habe es wie beschrieben gemacht.

CLEAR(ItemCat);
CLEAR(ItemVend);
Clear(ItemUnit);
IF "Item Category Code" <> '' THEN
IF ItemCat.GET("Item Category Code") THEN;
IF "Vendor No." <> '' THEN
IF ItemVend.GET("Vendor No.","No.",'') THEN;
IF "Base Unit of Measure" <> '' THEN
IF ItemUnit.GET("No.","Base Unit of Measure") THEN;

gl.Var. ergänzt => ItemUnit

DataPort Feld ergänzt=> ItemUnit.Description

Wieso erscheint unter RUN die Fehelrmeldung: ERs wurden zu viele Schlüsselfelder spezifiziert, daher kann Einheit nicht geöffnet werden....

P.S.: ich möchte die Beschreibung aus der Table Unit of measure

Re: DataPort mit mehreren Tabellen

18. September 2009 15:38

Hallo MisterElektro1981,

dein Quelltext ist leichter zu lesen und zu verstehen, wenn du ihn zwischen so genannte Code-Tags setzt. Insbesondere deine Formatierungen werden so auch beibehalten.

Daher bitten wir dich, vor und nach deinem Quelltext diese Code-Tags einzufügen. Beispiel:


[code]Dein Quelltext[/code]

Gruß, Mikka
MSDynamics.de-Team

Re: DataPort mit mehreren Tabellen

18. September 2009 15:46

Hast du evtl. bei ItemUnit die Tabelle "Unit of Measure" angegeben oder "Item Unit of Measure", wenn du nur "Unit of Measure" als Tabelle angeben hast, dann musst du "No." als Parameter beim GET weglassen.

Eine Bitte: Record- Variablennamen sollten sich möglichst nahe an den Tabellennamen anlehnen. Bei "Unit of Measure" z.B. "UnitOfMeasure" oder UOM, dann weiß jeder was gemeint ist. Wenn du deine Variable ItemUnit nennst, dann gehe ich davon aus, dass du "Item Unit of Measure" meinst, die andere Schlüssel hat.
Aber in Anlehnung was ich vorher schrieb: Manchmal nützt auch Erfahrung nichts :-(

Gruß, Fiddi

Re: DataPort mit mehreren Tabellen

18. September 2009 15:48

Alles klar jetzt läuft es. Eine kleine bitte habe ich noch.
Wie bekomme ich die richtigen Keys heraus, die ich dort einfügen muss?

Re: DataPort mit mehreren Tabellen

18. September 2009 15:57

Wenn du Zugriff auf den Tabellendesigner hast (Lizenz), kannst du im Objektdesigner eine Tabelle designen und dann unter Ansicht/Keys den ersten Eintrag anschauen. Das ist der Primärschlüssel.
Alternativ kannst du dir eine neue Tabular- Form bauen, die die Tabelle 'Key' als Tabelle hat. Dort sind alle Einträge mit "No." =1 Primärschlüssel.

Gruß, Fiddi

Re: DataPort mit mehreren Tabellen

18. September 2009 16:02

Das lustige iost, das ich das bisher immer gemacht habe.

Jetzt gehe ich z.B. in die Unit of Measure. öffen diese über designen. Das erste Feld (Feld Nr. 1, Feld Name Code) üner Ansicht => Keys. Hier steht als Key Code.
Wier kann ich das vesrtehen und warum hast du Base Unit of Measure geschrieben???

Re: DataPort mit mehreren Tabellen

18. September 2009 16:09

Hast du dir schon mal die Hilfe zum GET- Befehl angeschaut?
Du wolltest doch die Beschreibung für den "Basiseinheitencode" des jeweiligen Artikels haben oder nicht? Dann musst du diesen auch als Parameter beim GET angeben.

Gruß, Fiddi

Re: DataPort mit mehreren Tabellen

18. September 2009 16:12

Habe ich gemacht.

Aber wie bekomme ich jetzt den richtigen Key heraus. Deine (Base Unit of measure) finde ich garnicht in der Table Unit of measure.

Re: DataPort mit mehreren Tabellen

18. September 2009 16:28

Ich mach mal den Erklärbär :wink:, in der Hoffnung dein Problem verstanden zu haben :
Code:
IF "Base Unit of Measure" <> '' THEN
IF ItemUnitOfMeasure.GET("No.","Base Unit of Measure") THEN;

Das würde man verwenden um den Datensatz mit der Artikelbasiseinheit zu finden :greenarrow: in der Tabelle 5404 Item Unit of Measure
Jeder Artikel kann beliebig viele Einheiten haben, deswegen ist das ein zweifeldriger Primärschlüssel. Jeder Artikel hat aber nur eine Basiseinheit (das ist die Einheit in der der Lagerbestand geführt wird).
Der Einheitencode selber ist eindeutig, deshalb hat die Tabelle 204 nur ein Primärschlüsselfeld. Von da kann man die über ein GET mit dem entsprechenden Code die Beschreibung holen.
Code:
UnitOfMeasure.GET("Base Unit of Measure");
Basiseinheitenbeschreibung := UnitOfMeasure.Description;

Re: DataPort mit mehreren Tabellen

21. September 2009 07:56

Vielen Dank für die Hilfe des Erklärbären :-)

Ich habe das jetzt vesrtanden wieso man den ein- bzw. zweifeldrigen Schlüssel braucht.

Jedoch konnte ich immer noch nicht nachvollziehen, wie ich ´diese Schlüssel auslese.

Beispiel:
Table 5404: ein zweifeldriger Sprachschlüssel ist notig, das ist klar: in Ansicht=>Keys steht bei mir dann => Item No.,Code. Wie kommt man jetzt von hier auf "No.","Base Unit of Measure"?

Re: DataPort mit mehreren Tabellen

21. September 2009 11:04

misterelektro1981 hat geschrieben:Table 5404: ein zweifeldriger Sprachschlüssel ist notig, das ist klar: in Ansicht=>Keys steht bei mir dann => Item No.,Code. Wie kommt man jetzt von hier auf "No.","Base Unit of Measure"?

Sprachschlüssel gibt es nicht. Schlüssel werden auch nicht ausgelesen, sondern beim GET wird genau ein Datensatz gesucht, der die Feldwerte der Parameter des GET-Befehls hat. Für die Beschreibung ist diese Tabelle auch unnötig. Die Beschreibung steht ja nicht hier, sondern in der Einheitentabelle (204). In der Tabelle 5404 würde man z.B. den Datensatz für die Basiseinheit suchen, wenn durch Erweiterungen weitere Informationen zur Basiseinheit des Artikels dort hinterlegt sind (Gewicht , Abmessungen etc.), und man diese für den Export benötigt.

Re: DataPort mit mehreren Tabellen

21. September 2009 11:25

Vielen Dank für die Antwort. Ich tue mich ehrlich gesagt mit dem Thema Schlüssel noch etwas schwer.

Re: DataPort mit mehreren Tabellen

21. September 2009 11:54

misterelektro1981 hat geschrieben:Vielen Dank für die Antwort. Ich tue mich ehrlich gesagt mit dem Thema Schlüssel noch etwas schwer.


1. Tabelle im Design öffenen
2. -->Ansicht --> Keys
3. Oberste Zeile in die Zwischenablage kopieren und im Code einfügen

Die erste Zeile enthält immer den Primary Key, den du für ein GET benötigst!
(BTW: Die vorhandenen Key´s niemals ändern, es sei den "Du" weist was du tust)
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.