Search the FirstSpirit Knowledge Base
Hallo zusammen,
wir haben in unserem Projekt Kontaktdaten in einer Datenquelle hinterlegt. Um die Performance für die Eingabekomponenten zu erhöhen die auf diese Datenquelle zugreifen, würde ich gerne die verwendeten Datensätze mit einem Flag markieren.
Im Client bekomme ich über "Verwendungen anzeigen" auf einem Datensatz die Referenzen angezeigt.
Über die Beanshell Konsole habe ich versucht auf context.getSelectedRow().getReferences() auf sowas in der Art zuzugreifen. Hier bekomme ich jedoch ein Ergebnis, egal ob der Datensatz verwendet wird oder nicht.
Hat ggf. jemand einen Tipp für mich? 😉
Besten Dank und Gruß
peter
Hallo Peter,
so müßte es gehen (zumindest ermittel ich so die Verlinkungen):
ReferenceEntry[] incomref = schema.getIncomingReferences(entity);
Beim iterieren über incomref:
Entity referenceEntity = (Entity) incomref[n].getReferencedObject();
Grüße
Andreas
Hallo Peter,
könntest Du den genauen Code posten, den du verwendest?
Content2ScriptContext.getSelectedRow() liefert ein Entity zurück, welches die Methode getReferences() gar nicht bereitstellt.
Führst Du dazwischen noch Schritte aus, um zum Beispiel an ein StoreElement zu gelangen?
Viele Grüße
Rouven
Hi Rouven,
klar, sorry. Ich hol' mir zunächst das Projekt:
den Userservice:
das Storeelement:
die Entity:
und den Datensatz:
cndDataset.getReferences(); => <[]> (egal ob verwendet oder nicht)
cndDataset.getIncomingReferences(); => z.B: <[Lde.espirit.firstspirit.access.ReferenceEntry;@311550> (egal ob verwendet oder nicht)
cndDataset.getOutgoingReferences(); => z.B. <[Lde.espirit.firstspirit.access.ReferenceEntry;@8e7719> (egal ob verwendet oder nicht)
Viele Grüße
Peter
Hi Rouven,
ich habe die Situation grade mal in Eclipse nachgebaut und dort wird mir für den Datensatz tatsächlich kein getReferences() zur Verfügung gestellt:
// get userService
UserService us = project.getUserService();
// get Store
Store cs = us.getStore(Store.Type.forName("CONTENTSTORE"),false);
// get Datasource
Content2 datasource = (Content2) cs.getStoreElement(contacts, IDProvider.UidType.CONTENTSTORE);
// get Schema
Schema schema = datasource.getSchema();
// get Session
de.espirit.or.Session session = schema.getSession();
// get Datasets
List<? extends Entity> contactDatasets = datasource.getData();
Wie kann ich mir die Abhängigkeiten eines Datensatzes denn ausgeben lassen?
Danke und Gruß
peter
Hallo Peter,
so müßte es gehen (zumindest ermittel ich so die Verlinkungen):
ReferenceEntry[] incomref = schema.getIncomingReferences(entity);
Beim iterieren über incomref:
Entity referenceEntity = (Entity) incomref[n].getReferencedObject();
Grüße
Andreas
Hallo Andreas,
besten Dank für deine Antwort. Das Ganze auf dem Schema zu probieren, statt auf dem Datensatz selbst, da bin ich nicht drauf gekommen.
Ich ermittel jetzt über schema.getIncomingReferences(entity).length ob bzw. wieviele Referenzen bestehen.
Viele Grüße
Peter