[Gelöst] Übergabe TEMPORARY Table an Codeunit

Bild Microsoft Dynamics NAV 5.xx

[Gelöst] Übergabe TEMPORARY Table an Codeunit

Beitragvon beno » 7. Juni 2013 10:35

Hallo zusammen,

ich habe eine kleine Frage zur Ăśbergabe einer TEMPORARY Table an eine Codeunit.

Nach dem Verbuchen eines Journals sollte ich die schon verbuchten Journalzeilen nochmals verarbeiten.
Da sie nach dem Verbuchen nicht mehr in der entsprechenden Journalzeilen-Tabelle vorhanden sind,
schreibe ich die Journalzeilen unmittelbar vor dem Verbuchen in eine TEMPORĂ„RE Journalzeilen-Tabelle:

Code: Alles auswählen
IF Rec.FINDSET THEN
BEGIN
  JnlLineTEMPG.DELETEALL;
  REPEAT
    JnlLineTEMPG.TRANSFERFIELDS(Rec);
    JnlLineTEMPG.INSERT;
  UNTIL Rec.NEXT = 0;
  IF Rec.FINDFIRST THEN;
END;


Anschliessend wird die Verbuchung gestartet:

Code: Alles auswählen
CODEUNIT.RUN(CODEUNIT::"Sales-Post (Yes/No)",Rec);


Nach der Verbuchung rufe ich meine eigene Codeunit mit RUN auf:

Code: Alles auswählen
IF JnlLineTEMPG.FINDSET THEN
  JnlPostG.RUN(JnlLineTEMPG);


Wenn ich meine eigene Codeunit JnlPostG mit RUN aufrufe und die TEMPORĂ„RE Tabelle JnlLineTEMPG ĂĽbergebe,
dann kann ich innerhalb meiner eigenen Codeunit JnlPostG ALLE Datensätze der übergebenen TEMPORARY Table JnlTEMPG nochmals lesen.

Wenn ich aber meine eigene Codeunit JnlPostG anstelle mit RUN mit einer anderen Funktion (z.B. CodeG) aufrufe,
dann habe ich nur einen Datensatz im Zugriff:

Code: Alles auswählen
IF JnlLineTEMPG.FINDSET THEN
  JnlPostG.CodeG(JnlLineTEMPG);


Und dies auch wenn ich den Ăśbergabe-Parameter innerhalb dieser Codeunit als TEMPORARY definiere.

Kann ich demzufolge den gesamten Inhalt einer Tabelle (ob nun temporär oder nicht) nur über RUN

Code: Alles auswählen
JnlPostG.RUN(JnlLineTEMPG);


ĂĽbergeben?

Oder gibt es da mir (noch) nicht bekannte Möglichkeiten?

Vielen Dank, Beno
Zuletzt geändert von beno am 7. Juni 2013 10:55, insgesamt 1-mal geändert.
Benutzeravatar
beno
Microsoft Partner
Microsoft Partner
 
Beiträge: 130
Registriert: 26. September 2007 08:55
Wohnort: Schweiz
Realer Name: Bernhard Pulver
Arbeitsort: Lyss, Schweiz
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 3.70B,4.03,5.01,2009

Re: Ăśbergabe TEMPORARY Table an Codeunit

Beitragvon Natalie » 7. Juni 2013 10:42

beno hat geschrieben:Wenn ich aber meine eigene Codeunit JnlPostG anstelle mit RUN mit einer anderen Funktion (z.B. CodeG) aufrufe,
dann habe ich nur einen Datensatz im Zugriff:

Code: Alles auswählen
IF JnlLineTEMPG.FINDSET THEN
  JnlPostG.CodeG(JnlLineTEMPG);


Und dies auch wenn ich den Ăśbergabe-Parameter innerhalb dieser Codeunit als TEMPORARY definiere.

Temporary allein reicht nicht, es muss auch noch ein Var-Parameter (innerhalb von Funktion CodeG) sein.
GruĂź, Natalie

Frage beantwortet oder Problem von allein gelöst? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.

Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
Benutzeravatar
Natalie
Moderator
Moderator
 
Beiträge: 9257
Registriert: 31. Oktober 2006 19:51
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Re: Ăśbergabe TEMPORARY Table an Codeunit

Beitragvon beno » 7. Juni 2013 10:55

Wow, eine superschnelle Antwort und es funktioniert!
Du bist die Beste :!:

Vielen Dank, Beno 8-)
Benutzeravatar
beno
Microsoft Partner
Microsoft Partner
 
Beiträge: 130
Registriert: 26. September 2007 08:55
Wohnort: Schweiz
Realer Name: Bernhard Pulver
Arbeitsort: Lyss, Schweiz
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 3.70B,4.03,5.01,2009


ZurĂĽck zu NAV 5.xx

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast