TimoMeister
Returning Responder

Script: Spalten einer Datenquelle

Jump to solution

Hallo zusammen,

kann mir jemand sagen ob es die Möglichkeit gibt an die Spalten einer Datenquelle zu kommen?

p = context.getUserService().getStore("contentstore", false);

t = p.getContent2ByName("datenquelle");

columns = t.getTemplate().getMappings();

so komme ich ja an das Mapping ran. Ich hätte gerne alle Spaltennamen in einer Variable. Geht das?

Viele Grüße

Timo

0 Kudos
1 Solution

Accepted Solutions

Sorry hab mich geirrt, es geht doch über das Mapping:

bsh % context.getStoreElement().getMappings()[0].getDBAttribute("EN");

<type>

bsh % context.getStoreElement().getMappings()[6].getDBAttribute("EN");

<mediaList>

Viele Grüße

Dennis

View solution in original post

0 Kudos
4 Replies
warthds
I'm new here

Hallo,

ich behaupte das geht nicht über die offene API. Das Mapping gehört zur Definition des TableTemplates. Die Spalten stehen in der Tabelle, die dem Template zugeordnet ist.

de.espirit.or.schema.Table     getTable()

Diese Methode existiert in der API im EntityType der über das Mapping erreichbar ist. Jedoch ist die Methode und Klasse in der API theoretisch nicht erreichbar.

Viele Grüße

Dennis

0 Kudos

Sorry hab mich geirrt, es geht doch über das Mapping:

bsh % context.getStoreElement().getMappings()[0].getDBAttribute("EN");

<type>

bsh % context.getStoreElement().getMappings()[6].getDBAttribute("EN");

<mediaList>

Viele Grüße

Dennis

0 Kudos

Sehr gut, das klappt wunderbar.

ist dann getMappings() ein Array? Wie bekomme ich die Länge bzw. wieviele Spalten die Tabelle hat, sodass ich loopen kann?

0 Kudos

Hallo,

ja und auf Arrays gibts length() und es gibt in Java For-Schleifen:

bsh % context.getStoreElement().getMappings();

<[Lde.espirit.firstspirit.access.store.templatestore.TableTemplate$Mapping;@17bd678>

bsh % context.getStoreElement().getMappings().length();

<20>

bsh %

Viele Grüße

Dennis

0 Kudos