Object Metadata C#-Code

8. Juni 2009 22:46

In der Tabelle "Object Metadata" sollten sich für alle Objekte entsprechende Einträge finden lassen.
Kompiliere bitte einmal alle Objekte durch, dann sollten die Einträge erzeugt werden.


Ich hab das mal hier in einen separaten Thread ausgelagert. Also, auch nach dem Kompileiren aller Objekte fand ich in der Tabelle keine weiteren Einträge. Ich nutze den klassischen Client mit SQL. Ich hab aber nicht mit einer vorhandenen Datenbank angefangen sondern wirklich mittels Datenbank->Neu eine neue erstellt. Ich hab mittlerweile 3 Tabellen und 4 Forms oder so. Also erstmal wirklich nur ein paar Kontakte verwalten. Mehr nicht. In einigen Tabellen stehtn auch ein wenig C-Side-Code. Aber in der Metadata-Tabelle, steht nichts weiter drin... Soll ich dir mal ne Datensicherung schicken oder so? Oder haste noch ne Idee, wo mein C#-Code hin sein könnte????

Re: Object Metadata C#-Code

8. Juni 2009 22:57

Kann es sein, dass nur dann etwas in dieser Tabelle abgelegt wird, wenn der rollenbasierte Client auch tatsächlich verwendet (dh. installiert und lauffähig) ist?
Läuft der RTC bei dir?

Re: Object Metadata C#-Code

8. Juni 2009 23:00

Es gibt unter Datei -> Datenbank -> ändern im Classic Client unter Optionen glaube ich unten rechts ein Feld für "NAV Server" irgendwas. Das ist soweit ich weiß dafür zuständig, die Metadaten auf dem neusten Stand zu halten, muss also bei Nutzung des NAV Servers eingeschaltet sein.

Re: Object Metadata C#-Code

8. Juni 2009 23:09

SilverX hat geschrieben:Es gibt unter Datei -> Datenbank -> ändern im Classic Client unter Optionen glaube ich unten rechts ein Feld für "NAV Server" irgendwas.


... gemeint ist "Für Microsoft Dynamics NAV Server aktivieren", Lage passt ;-)

Re: Object Metadata C#-Code

8. Juni 2009 23:37

Ja, der Rollenclient läuft, aber der andere Tipp war nun der eigentliche. Ich habe diese Option angemacht "Für Server aktivieren". Dazu muss ich aber gleichzeitig die Option "Einzelbenutzermodus" aktivieren, sonst geht es nicht. Nun habe ich in der Tabelle "Object Metadata" viele Einträge, aber im Feld "Metadaten" steht nur ein * drin. Wie kann ich denn da nun den C#-Code sehen?

Kann einer nochmal kurz einige Worte verlieren zu den Hintergründen? Was genau macht nun diese Option? Was ist der Einzelmodus und warum muss er aktiviert sein? Und warum brauch ich das, um nun in dieser Tabelle die C#-DAten zu erzeugen???

Danke und gute Nacht

Nico

Re: Object Metadata C#-Code

9. Juni 2009 07:18

Dosihris hat geschrieben:Nun habe ich in der Tabelle "Object Metadata" viele Einträge, aber im Feld "Metadaten" steht nur ein * drin. Wie kann ich denn da nun den C#-Code sehen?

Bei diesem Feld handelt es sich um den Datentyp BLOB (Binary Large Object).
Der * zeigt dir nur an, dass dieses Feld Daten enthält.
Du könntest versuchen, den Inhalt des Feldes mittels C/AL-Code zu exportieren, jedoch befürchte ich, dass du nichts gescheites zu sehen bekommst. (Zumindest war es bisher in allen ähnlich gelagerten Fällen so, da die Inhalte in kompilierter Form gespeichert sind.)
Der C/AL-Code muss ungefähr so aussehen:
Code:
ObjectMetaData.CALCFIELDS(Metadaten);    // Inhalt berechnen
IF ObjectMetaData.HASVALUE THEN          // Nur, wenn etwas in dem Feld steht
  ObjectMetaData.EXPORT(Metadaten, ...); // Inhalt in eine Datei exportieren