[Gelöst] [CC] - Temporäre Tabelle f. Aufträge/Verkaufszeilen

19. Oktober 2012 10:00

Hi und guten morgen,

ich versuche noch immer irgendwie einen Auftrag Temporär zu behandeln ;-)

Folgender Code:
Code:
locTempSalesOrder.INIT;
locTempSalesOrder."Document Type" := locTempSalesOrder."Document Type"::Order;
locTempSalesOrder."No." := 'TESTAU';
locTempSalesOrder.VALIDATE("Sell-to Customer No.",'PETER');
locTempSalesOrder.INSERT;


locTempSalesLine.INIT;
locTempSalesLine."Document Type" := locTempSalesLine."Document Type"::Order;
locTempSalesLine."Document No." :=  'TESTAU';
locTempSalesLine."Line No." := 10000;
locTempSalesLine.Type := locTempSalesLine.Type::Item;
locTempSalesLine.VALIDATE("No.",'D67-7125');
locTempSalesLine.VALIDATE(Unit,1);
locTempSalesLine.INSERT;


funktioniert wenn locTempSalesOrder und locTempSalesLine nicht Temporär sind, wenn ich die beiden auf temporär = Ja setze, funktioniert es logischerweise nicht, weil spätestens / frühestens bei:

locTempSalesLine."Document No." := 'TESTAU';

kein passender Header gefunden wurde

Kann ich Temporäre Tabellen irgendwie "verknüpfen"?

Ich möchte die Temporären Sales Lines an eine Funktion in einer Codeunit weitergeben.

Danke
Zuletzt geändert von elTorito am 19. Oktober 2012 18:11, insgesamt 1-mal geändert.

Re: [CC] - Temporäre Tabelle f. Aufträge/Verkaufszeilen

19. Oktober 2012 10:14

Bitte mache dich mit den wichtigsten Regeln für temp. Records vertraut: viewtopic.php?p=74150#Umgang
Keine Trigger, dazu gehört auch VALIDATE!

Wie du schon festgestellt hast, sind TableRelations in Feldern bei temp. Records ein Hindernis.
Entweder, du suchst dir irgendeine andere Tabelle, die ähnlich definierte Felder (nur ohne TableRelations) aufweist, oder du erstellst dir selber eine neue Tabelle mit den gewünschten Eigenschaften.

Re: [CC] - Temporäre Tabelle f. Aufträge/Verkaufszeilen

19. Oktober 2012 10:43

Speziell für den Verkaufsauftrag bietet der Standard eine entsprechende Funktion, um zumindest das Problem mit dem nicht gefundenen SalesHeader zu lösen.
Da du dir ja schon einen temporären SalesHeader zusammengestellt hast, musst du diesen deinen temporären SalesLines nur bekannt geben.
Nutze hierzu einfach die Funktion SetSalesHeader der SalesLine:
Code:
locTempSalesLine.SetSalesHeader(locTempSalesOrder);

Re: [CC] - Temporäre Tabelle f. Aufträge/Verkaufszeilen

19. Oktober 2012 18:11

Timo Lässer hat geschrieben:
Code:
locTempSalesLine.SetSalesHeader(locTempSalesOrder);


PERFEKT!! Vielen Dank , auch an Natalie für den Temp Hinweis.

Habe dennoch eine Zusatztabelle machen müssen ;-)

Habe nun eine CU mit einer Funktion folgendes macht:
1. Daten werden über XMLPORT in die neue Tabelle geschaufelt,
2. Hole mir dann aus der neuen Tabelle die relevanten Daten
3. Mit den Relevanten Daten erstelle ich einen Temporären Sales Header/Sales Lines
4. Mit den Temporären Daten erstelle ich einige Berechnungen an
5. Das Ergebnis geht mit ein zweiten XMLPORT wieder zurück an die externe Anwendung.

Eine Sache geht rein, und eine andere raus, sehr schön. :mrgreen:

Feierabend verdient.
Wünsche euch auch ein schönes Wochenende.
Peter