Report mit temp. Tabelle bringt Schreibtransaktionsfehler

9. März 2017 14:41

Hallo zusammen,

ich hab einen Report der auf dem TransactionType Browse steht. Dieser Report hat Code für eine temporäre Tabelle (basierend auf der 27 Item), die auch geleert wird, also:

TempItem.DELETEALL;

Dadurch wird Codeunit 1550 "Record Restriction Mgt." Funktion "RemoveItemRestrictionsBeforeDelete" aufgerufen. Dies führt dazu, dass Funktion "AllowRecordUsage" aufgerufen wird:

RestrictedRecord.SETRANGE("Record ID",RecID);
RestrictedRecord.DELETEALL(TRUE);

Die zweite Zeile führt zum angehängten Fehler.

Man kann jetzt natürlich im Report den TransactionType anpassen. Aber ich frage mich, ob es denn richtig ist, dass bei einer temporären Tabelle mit einem DELETEALL(FALSE) überhaupt irgendein Trigger ausgeführt wird und dann auch noch irgendwo was löschen möchte.

Kann mir da mal jemand auf die Sprünge helfen, ob ich das was nicht richtig verstehe...

DANKE und Gruß
sas_fisch
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: Report mit temp. Tabelle bringt Schreibtransaktionsfehle

9. März 2017 16:31

sas_fisch hat geschrieben:Aber ich frage mich, ob es denn richtig ist, dass bei einer temporären Tabelle mit einem DELETEALL(FALSE) überhaupt irgendein Trigger ausgeführt wird und dann auch noch irgendwo was löschen möchte.

Die Funktionen der Codeunit 1550 sollten generell nicht für temporäre Records ausgeführt werden. Arbeitest du für einen Partner? Dann melde(t) das bitte selbst Microsoft.

Re: Report mit temp. Tabelle bringt Schreibtransaktionsfehle

9. März 2017 17:01

Welchen CU-Stand hast du?
Kannst du das Verhalten in einer DemoDB nachstellen? (ich probier es dann gleich selbst mal)

Re: Report mit temp. Tabelle bringt Schreibtransaktionsfehle

9. März 2017 19:40

Oh ja, ups. Ich hab den Stand NAV 2017 CU 2.1

Im Demo schau ich morgen gleich mal.

Re: Report mit temp. Tabelle bringt Schreibtransaktionsfehle

10. März 2017 09:51

Und nun auch noch das Feedback für die Demo Datenbank. Ich hab den Report 301 auf TransactionType Browse umgestellt. Danach konnte ich ihn noch ganz normal nutzen.

Dann habe im Vendor - OnPreDataItem() folgendes eingebaut:

ItemTemp."No." := 'TEST';
ItemTemp.INSERT;
ItemTemp.DELETEALL;

ItemTemp ist eine temporäre Tabelle auf Basis der Artikeltabelle.

Und ich bekomme den gleichen Fehler wie bei uns.

@Natalie: Ja wir sind zwar Partner, aber ich hab noch nie selbst was bei Microsoft gemeldet. Aber wenn Ihr Euch sicher seid, dass ich hier nichts über sehe, dann werde ich mich an Microsoft wenden.