When working with Data in Microsoft Dynamics NAV, there are some functions you do not need often, but if you need them, you will probably need to run them on many tables at once.

One example is truncating all the data in some tables. Yes, there is a function for that: DELETEALL.

But it is a lot of work to define a bunch of variables for the tables, name them in a speaking maner and use DELETEALL on the variable

Here is what you could do instead:

Use a new or existing Codeunit “Basic Functions” and include this function:

TruncateTable(TableID : Integer)
recRef : RecordRef

recRef.OPEN(TableID);
RecRef.DELETEALL;

Now you just need to run this function.

It could look like this:

Basics.TruncateTable(50000);

Basics.TruncateTable(50001);

Basics.TruncateTable(50002);

Basics.TruncateTable(50003);

Basics.TruncateTable(50004);

Beim Arbeiten mit Daten in Microsoft Dynamics NAV, gibt es immer wieder Momente in denen man eine bestimmte Funktion braucht die einem der Standard entweder nicht zur Verfügung stellt, oder die nicht ganz ausreichend ist.

Ein Beispiel dafür ist das leeren eine Tabelle. Ja, mir ist bewusst das der Standard hier schon etwas hat: DELETEALL.

Allerdings kann es ziemlich viel Arbeit sein alle benötigten Tabellen als  sprechende Variablen anzulegen und anschliessend mit DELETEALL auf zu rufen.

Alternativ kannst du eine Codeunit “Basic Functions” erstellen bzw. um folgende Funktion ergänzen:

TruncateTable(TableID : Integer)
recRef : RecordRef

recRef.OPEN(TableID);
RecRef.DELETEALL;

Jetzt brauchst du die Funktion nur noch aufzurufen (was genau eine Variable benötigt):

Basics.TruncateTable(50000);

Basics.TruncateTable(50001);

Basics.TruncateTable(50002);

Basics.TruncateTable(50003);

Basics.TruncateTable(50004);