[Gelöst] Table Property DataPerCompany

12. November 2008 17:50

Hallo zusammen,

ich weiss, dass es in meiner native Datenbank mehr als 140 Tables gibt, welche das Table Property "DataPerCompany = No" gesetzt haben.
Das heisst, es handelt sich um Tables, welche mandantenübergreifend funktionieren.

Nun möchte ich aber gerne genau wissen, wieviele Tables dieses Property gesetzt haben und um welche es sich handelt.
Mit dem Development Toolkit habe ich komischerweise trotz verschiedenen Suchen keine Resultate erziehlt.

In der native Datenbank werden mir über "Datei -> Datenbank -> Information -> Tabellen" zwar rund 90 Tables ohne Mandantenname angezeigt.
Das ist aber nur teilweise korrekt, da es wie schon gesagt mehr als 140 Tables sein sollten.
Ich habe dann gemerkt, dass Tables in dieser Übersicht nur angezeigt werden, wenn sie mindestens schon 1 Mal einen Datensatz inne hatten.
Alle anderen Tabellen werden überhaupt nicht und nie angezeigt!?!

Habt Ihr mir eine Lösung, wie ich alle Tables herausfinde, welche das Table Property "DataPerCompany = No" gesetzt haben?

Ich kann natürlich alle Objekte in eine ASCII-Textdatei auslesen und dann nach dem Begriff "DataPerCompany = No" suchen.
Das wäre aber wirklich die "Kreidezeit-Methode"...

Vielen Dank, Beno.
Zuletzt geändert von beno am 21. Januar 2009 10:11, insgesamt 1-mal geändert.

Re: Table Property DataPerCompany

12. November 2008 18:06

Im Object Designer eine Form für die Tabelle "Object" erstellen. Auf Feld "Type" mit Option "TableData" filtern. Dort wo "Company Name" fehlt, sind es Tabellen mit mandantenübergreifenden Tabellendaten.

Table Property DataPerCompany

12. November 2008 18:19

Hallo Kai,

vielen Dank für den Hinweis. Das habe ich aber schon versucht. Dynamics NAV verhält sich aber wie ich schon beschrieben habe:

"Ich habe dann gemerkt, dass Tables in dieser Übersicht nur angezeigt werden, wenn sie mindestens schon 1 Mal einen Datensatz inne hatten.
Alle anderen Tabellen werden überhaupt nicht und nie angezeigt!?!"

Erstelle mal eine Table 50'000 mit dem Table Property "DataPerCompany=NO".
Erfasse KEINEN Datensatz und schau Dir dann mal die Table Object an.
Du wirst die Tabelle 50'000 erst finden, wenn Du einen Datensatz erfasst hast.
Von da an wird die Tabelle immer angezeigt, auch wenn Du den Datensatz wieder löschst.

Aber, dann müsste ich ja bei allen Tabellen mindestens 1 Datensatz erfassen lassen...

Andere Idee?

Viele Grüsse aus der Schweiz, Beno.

Re: Table Property DataPerCompany

12. November 2008 18:54

Leere Systemtabellen sollten da schon erscheinen ( tun sie jedenfalls bei mir :wink: ), andere aber leider nicht, da hast du recht.
Im Development Toolkit steht für solche Tabellen aber doch normalerweise bei Properties immer "DataPerCompany=No" (siehe Bild).
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: Table Property DataPerCompany

12. November 2008 20:41

Tja Beno,

ist wohl wirklich etwas tricky :)

Vorschlag: Exportiere alle Tabellenobjekte als Text, lass den NavObjSplitter (siehe Signatur) drüber laufen und trenne die Objekte auf. Danach suchst du in dem Verzeichnis nach "DataPerCompany=No", markierst alle gefunden Dateien, Rechtsklick und benutzt "Copy As Path" (Vista) oder unter XP Send To Clipboard (alte Powertoys).

Damit hast du dann zumindest eine Liste. Alternativ kannst du über ein Stück Code per RecordRef in leere Tabellen einen Dummy Datensatz schreiben und wieder löschen :)

Gruß,
Carsten

Re: Table Property DataPerCompany

13. November 2008 08:17

Hallo zusammen,

zuerst zu Kai:
Da hast Du schon Recht. Im Development Toolkit wird das Property angezeigt. Hast Du aber schon mal versucht im Development Toolkit nach diesem Property zu suchen?
Ich habe es auf x-Varianten versucht. Aber das Development Toolkit fand kein einziges Objekt! Wird wohl noch ein Bug in der Suchfunktion sein.

zu Carsten:
Das habe ich mir (leider) fast gedacht. Ich habe schon eine riesige ASCII-Textdatei und habe darin schon gesucht. Darum ist mir auch aufgefallen, dass mir eigentlich mehr Objekte angezeigt werden müssten. Ich werde Deine Lösung auf jeden Fall versuchen, da wir mit dem NavObjSplitter schon arbeiten (hätte ich eigentlich auch drauf kommen sollen...!!!). Die Aufteilung verwenden wir, um die einzelnen Objekte jeweils im VSS (Visual Source Safe) einlesen zu können.

Ich melde mich, sobald Carstens Lösung getestet wurde.

Andere Lösungen gibt es wohl nicht mehr, oder?

Ich wünsche allen ein fröhliches Erwachen und Aufstehen...
Beno.