Questions & Answers

SOLVED
MichaelN
I'm new here

table template in FS5 holen

Jump to solution

Hallo,

ich benรถtige ein Methode, die mir das table template eines DatasetContainer liefert analog zu getDefaultContentNode.

Mein alter Code sah so aus:

DatasetEditorValue editor = ...

String templateName = editor.getDefaultContentNode().getName();

Mein Neuer Ansatz ist dieser:

DatasetContainer datasetContainer = (DatasetContainer) formField.get();

Dataset dataset = datasetContainer.getDataset();                       

String templateName = dataset.getTableTemplate().getName();

Allerdings ist schon dataset an dieser Stelle null.

Wie komme ich an das TableTemplate?

0 Kudos
1 Solution

Accepted Solutions

Ok, die Nutzung von FormFields deutet bei Templates auf die Auswertung der Default-Werte hin, ist das so richtig? รœber diesen Weg sehe ich aktuell keine Mรถglichkeit, an die gewรผnschte Informationen heranzukommen. Es wรคre aus fachlicher Sicht auch der falsche Ansatz, denn hier arbeitet man auf einer Instanz des Gadgets, die ja nicht alle Varianten der erlaubten Konfiguration wiederspiegelt.

Alternativ kรถnnte man รผber die Formulardefinition gehen (Template#getGomProvider()#forms()) und die GomDataset Instanzen auswerten. Das ist dort zwar vieles keine API, hat sich aber seit einigen Versionen fachlich nicht verรคndert. Mรถglicherweise lohnt sich eine Feature-Anfrage, um hierรผber einen zukunftssicheren Weg fรผr das Auswerten der Formulardefinitionsobjekte zu schaffen.

Beste GrรผรŸe

Stefan

View solution in original post

0 Kudos
7 Replies
thmarx
I'm new here

Hallo Michael,

du kannst mit datasetContainer.isEmpty prรผfen, ob ein DataSet vorhanden ist.

Versuch mal datasetContainer.getTemplateUid() und dann einfach TableTemplate tableTemplate = (TableTemplate) templateStore.getStoreElement(<uid>, TableTemplate.UID_TYPE);

Viele GrรผรŸe

Thorsten

0 Kudos

Erst mal schรถnen Dank Smiley Wink

datasetContainer.isEmpty() liefert in diesem Falle wirklich true und templateUid ist null, aber das ist auch immer so, da wir ja Content in ein leeres FS-Projekt importieren.

Ich benรถtige aber gerade auch fรผr leere Datasets den templateNamen. Die alte Logik (sieh oben) liefert das auch, aber die ist ja deprecated.

0 Kudos

Hi,

die Anfrage ist ein wenig verwirrend. Die Methode getDefaultContentNode() liefert (wie der Name schon sagt) kein TableTemplate sondern ein Content2-Element. Wenn der Name zufรคllig einer Tabellenvorlage entspricht, mag der (unbekannte) Code, der diesen nutzt, funktionieren. Generell jedoch ist es der falsche Name.

Dass ein leerer Datensatz kein Template hat, sollte einleuchten, denn ohne eine Auswahl ist auch keine Vorlage bekannt.

Obige Methode liefert auch nicht den aktuell zum Datensatz gehรถrenden Knoten, sondern den Knoten der ersten im GOM definierten, erlaubten Quelle (SOURCES-Tag). Das passt entsprechend nur dann zusammen, wenn lediglich ein Knoten erlaubt ist. Dies wรคre wohl auch der einzige Weg, um an dessen Namen zu kommen. Auch wenn sich das GOM des Dataset-Gadgets nicht in der API ist.

Am Besten wรคre, wenn der Kontext (also, von wo wird versucht auf den Templatenamen zuzugreifen) und Anwendungsfall (wofรผr wird der Name benรถtigt) hier beschrieben werden, um รผber eine Lรถsung nachzudenken.

Beste GrรผรŸe

Stefan

0 Kudos

Der Code ist dafรผr da, demjenigen, der รผber unsere Anwendung Daten in FirstSpirit Importieren mรถchte, die Information zu รผbermitteln, welche Daten in dieser Eingabekomponente erlaubt sind.

z.B. fรผr ein FS_DATASET

0 Kudos

Und in welchem Kontext wird dieser Code ausgefรผhrt? รœber welchen Pfad gelangt man im Code an besagten DatasetContainer?

0 Kudos

Es wird รผber die Templates Iteriert und dann รผber alle einzelnen EingabeKomponenten des Templates. Ist formField.getType() ein DatasetContainer, so werden halt die Infos dazu generiert. Unter anderm halt auch das gรผltige TableTemplate als Info.

0 Kudos

Ok, die Nutzung von FormFields deutet bei Templates auf die Auswertung der Default-Werte hin, ist das so richtig? รœber diesen Weg sehe ich aktuell keine Mรถglichkeit, an die gewรผnschte Informationen heranzukommen. Es wรคre aus fachlicher Sicht auch der falsche Ansatz, denn hier arbeitet man auf einer Instanz des Gadgets, die ja nicht alle Varianten der erlaubten Konfiguration wiederspiegelt.

Alternativ kรถnnte man รผber die Formulardefinition gehen (Template#getGomProvider()#forms()) und die GomDataset Instanzen auswerten. Das ist dort zwar vieles keine API, hat sich aber seit einigen Versionen fachlich nicht verรคndert. Mรถglicherweise lohnt sich eine Feature-Anfrage, um hierรผber einen zukunftssicheren Weg fรผr das Auswerten der Formulardefinitionsobjekte zu schaffen.

Beste GrรผรŸe

Stefan

0 Kudos

Type a product name