[gelöst]:Felder von Sales Line nach Sa. Inv. Line übertragen

10. Februar 2013 17:08

Hallo zusammen,

Ich wäre Euch sehr verbunden für folgende Tip:

Ich habe 1 neues Feld in der Tabelle 'Sales Line' aufgesetzt, welches von den Benutzern beim Erfassen eines Verkaufsauftrages erfasst wird.

Wird jetzt dieser Verkaufsauftrag gepostet (liefern+buchen) werden ja (bin Newby) die "Sales Line" Zeilen in die Tabelle "Sales Invoice Line" VERSCHOBEN. Zumindest bin ich der Meinung die Tabelle "Sales Line" zeigt die Zeilen des Auftrages nicht mehr. Wäre soweit kein Problem. Nur wenn ich jetzt nen Report, basierend auf diesem neuen Feld machen will müsste ich die Daten wohl aus der Tabelle "Sales Invoice Line" analysieren. Aber da gibts das Feld ja nicht. Ich kann dieses wohl auch als Field hinzufügen, aber wann/wie/wo kopiere ich dann den Inhalt des custom Fields mit?

Oder nochmals einfach: Was muss ich tun, damit der Inhalt des neuen Felds beim buchen auch in die Sales Invoice Line Tabelle mitkopiert/verschoben wird.

Vielen Dank! Jede Hilfe wird herzlich geschätzt!
Zuletzt geändert von Izzy am 10. Februar 2013 18:30, insgesamt 2-mal geändert.

Re: Felder von Sales Line nach Sales Invoice Line übertragen

10. Februar 2013 17:38

Oder nochmals einfach: Was muss ich tun, damit der Inhalt des neuen Felds beim buchen auch in die Sales Invoice Line Tabelle mitkopiert/verschoben wird.

Wenn(!) die Feldnummer die gleiche ist, wird es von TRANSFERFIELDS erledigt. Dieser Befehl ist in Codeunit 80 mehrfach enthalten, um Belegköpfe und -zeilen zu versorgen. Es reicht also, das Feld identisch in der Zieltabelle anzulegen, aber i.d.R. ohne etwaigen Code im OnValidate-Trigger. Wichtig dabei: auch in allen anderen Tabellen für gebuchte Zeilendaten, unabhängig davon ob es da aktuell benötigt wird. Sonst kann diese Feldnummer in den anderen Tabellen später anderweitig verwendet werden und dann gibt es durch eben diese TRANSFERFIELDS-Funktion u.U. Fehlzuweisungen beim Buchen bzw. der Belegkopierfunktion.

Re: Felder von Sales Line nach Sales Invoice Line übertragen

10. Februar 2013 17:52

Hallo Kai,

Vielen Dank für Deine Hilfe!

Ich habs bereits ausprobiert und das funktioniert bestens! Ich hab mir noch gedacht das müsste auch automatisch gehen, wollte nicht versuchen manuell in die Zieltabelle nach dem posten zu schreiben.

Du erwähnst sinnvollerweise, dass ich alle betroffenen Tabellen erweitern soll. Welche gehören denn noch dazu?

Ich tippe auf:

- Tabelle 111 (Sales Shipment Line)

Kommen Dir noch weitere in den Sinn die ich idealerweise erweitern sollte?

Vielen herzlichen Dank!!

Re: Felder von Sales Line nach Sales Invoice Line übertragen

10. Februar 2013 18:23

Kommen Dir noch weitere in den Sinn die ich idealerweise erweitern sollte?

115 Sales Cr.Memo Line
5108 Sales Line Archive
6661 Return Receipt Line

Da es außerdem auch Bereiche in NAV gibt, wo Einkaufs- und Verkaufsmodul Daten transferieren (Direktlieferung, Spezialauftrag) muss man ggf. auch alle Einkaufstabellen mit versorgen.

P.S. Herzlich Willkommen im Forum!

Re: Felder von Sales Line nach Sales Invoice Line übertragen

10. Februar 2013 18:27

Vielen Dank Kai!

Das funktioniert tadellos.

Herzlichen Dank für Deine professionelle Hilfe und fürs willkommen heissen :)

Ich hoffe ich kann bald was zurückgeben..

Beste Grüsse!
Marc

Re: [gelöst]:Felder von Sales Line nach Sa. Inv. Line übertr

11. Februar 2013 15:25

Izzy hat geschrieben:Hallo zusammen,

Ich wäre Euch sehr verbunden für folgende Tip:

Ich habe 1 neues Feld in der Tabelle 'Sales Line' aufgesetzt, welches von den Benutzern beim Erfassen eines Verkaufsauftrages erfasst wird.

Wird jetzt dieser Verkaufsauftrag gepostet (liefern+buchen) werden ja (bin Newby) die "Sales Line" Zeilen in die Tabelle "Sales Invoice Line" VERSCHOBEN. Zumindest bin ich der Meinung die Tabelle "Sales Line" zeigt die Zeilen des Auftrages nicht mehr. Wäre soweit kein Problem. Nur wenn ich jetzt nen Report, basierend auf diesem neuen Feld machen will müsste ich die Daten wohl aus der Tabelle "Sales Invoice Line" analysieren. Aber da gibts das Feld ja nicht. Ich kann dieses wohl auch als Field hinzufügen, aber wann/wie/wo kopiere ich dann den Inhalt des custom Fields mit?

Oder nochmals einfach: Was muss ich tun, damit der Inhalt des neuen Felds beim buchen auch in die Sales Invoice Line Tabelle mitkopiert/verschoben wird.

Vielen Dank! Jede Hilfe wird herzlich geschätzt!


Hallöle, http://www.navision24.de hat eine recht umfangreiche Sammlung mit Programmierbeispielen.

Entweder TRANSFERFIELDS oder folgende Reihenfolge (falls ich einen Fehler drin hab, bitte ich die Entwickler hier um Korrektur)

Ggf. Filter setzen.
"Erfasster Beleg Tabelle".Feld_XYZ := Inhalt; //mit Tabelle ist gemeint Kopf- oder Zeilentabelle
z.B. Codeunit 80 (VK) oder 90 (EK) hat irgendwo ein INSERT; //insert bezogen auf die Kopf- oder Zeilentabelle
Eine Zeile vor diesem Insert schreibst du:
"Gebuchter Beleg Tabelle".Feld_XYZ := "Erfasster Beleg Tabelle".Feld_XYZ //ODER alternativ:
"Gebuchter Beleg Tabelle".VALIDATE(Feld_XYZ, "Erfasster Beleg Tabelle".Feld_XYZ); //VALIDATE falls ein Validate Trigger hinter dem Feld steht, der ausgeführt werden muss

Mit diesem Konstrukt müsste es klappen.
Immer an die Reihenfolge "Erfasster Beleg".Feld_XYZ => Codeunit zum Buchen => "Gebuchter Beleg".Feld_XYZ

Re: [gelöst]:Felder von Sales Line nach Sa. Inv. Line übertr

11. Februar 2013 15:39

Hallo freestyler und danke für Deine Hilfe!

So wie ich das von Kai verstanden habe wird die Codeunit 80 und damit TRANSFERFIELDS als Teil der Codeunit automatisch beim liefern/buchen durchgeführt, wodurch meine Daten automatisch transferiert werden. Dies, wie eben instruiert, falls die tabellen synchron geführt wurden (IDs).

So wies ausschaut klappt das bei mir wie geplant.

Nochmals herzlichen Dank!

ps: die navision24.de seite kenne ich schon, ist Klasse!