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:
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:
CODEUNIT.RUN(CODEUNIT::"Sales-Post (Yes/No)",Rec);
Nach der Verbuchung rufe ich meine eigene Codeunit mit RUN auf:
- Code:
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:
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:
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.