- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Freigeben abhängiger Objekte bei Datenquellen
Hallo zusammen,
wir haben in einem Projekt einen Freigabe Workflow, der über ein Skript eine Seite in der Struktur und deren Abhängige Objekte freigibt.
In der entsprechenden Inhaltsseite wird neben verschiedenen Medien auch ein Datensatz aus einer Datenquelle referenziert. Die Inhaltsseite und nicht freigegebene Medien werden durch Ausführung dieses Workflows automatisch mit freigegeben. Der Datensatz hingegen nicht. Dies klappt aber auch nicht, wenn ich die Seite über Extras->Freigabe->Abhängige Objekte Freigeben freigebe.
Ist das ein Bug oder ist das bewusst so gemacht?
- Labels:
-
Developers
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Stefan,
Datensätze werden hier nicht einbezogen, siehe Kapitel 6.2.8 in der Doku:
"Weitere Fälle, in denen abhängige Objekte zwar im Referenzgraphen angezeigt werden, aber bei der abhängigen Freigabe nicht mit freigegeben werden.
...
- Seite→Datensatz: Seite mit der CONTENTLIST/FS_LIST/... -Komponente, in der Datensätze referenziert werden.
CS-Objekt wird nicht mit freigegeben."
D.h. Du musst hier über eine entsprechende Implementierung den Datensatz gesondert freigeben.
Viele Grüße
Michael
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Achso, das hatte ich eben vergessen. Die Freigabe über das Skript erfolgt mit dem DependentType IDProvider.DependentReleaseType.DEPENDENT_RELEASE_NEW_AND_CHANGED.
Wenn das bewusst so gemacht ist, wie kann ich am einfachsten den in der Seite referenzierten Datensatz freigeben? Muss ich mir diesen im Skript noch explizit holen und dann zusätzlich freigeben?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Weiß hier wirklich niemand was zu zu sagen? Ist dies eine so ungewöhnliche Anforderung?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Stefan,
Datensätze werden hier nicht einbezogen, siehe Kapitel 6.2.8 in der Doku:
"Weitere Fälle, in denen abhängige Objekte zwar im Referenzgraphen angezeigt werden, aber bei der abhängigen Freigabe nicht mit freigegeben werden.
...
- Seite→Datensatz: Seite mit der CONTENTLIST/FS_LIST/... -Komponente, in der Datensätze referenziert werden.
CS-Objekt wird nicht mit freigegeben."
D.h. Du musst hier über eine entsprechende Implementierung den Datensatz gesondert freigeben.
Viele Grüße
Michael
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ich weiß es nicht ob das dir Helfen kann, ich habe eine Funktion geschriben...
static public void releaseEntityRelations(Entity entity, UserService us) {
//release all Outgoing reference
ContentStoreRoot cs = (ContentStoreRoot) us.getStore(Store.Type.CONTENTSTORE, false);
Map<String, String> typemap = new HashMap<String, String>();
typemap.put("users", "ds_ext_users");
typemap.put("media", "content_ext_media");
typemap.put("downloads", "content_ext_downloads");
typemap.put("publications", "content_ext_publications");
EntityType entityType = entity.getEntityType();
if (typemap.get(entityType.toString()) != null) {
Content2 content = cs.getContent2ByName(typemap.get(entityType.toString()));
Logging.logInfo(entityType.toString(), LOGGER);
Schema schema = content.getTemplate().getSchema();
ReferenceEntry[] allInReference = schema.getOutgoingReferences(entity);
for (ReferenceEntry reference : allInReference) {
try {
Object element = reference.getReferencedObject();
if (!(element instanceof Entity)) {
if (((IDProvider) element).isReleaseSupported()) {
((IDProvider) element).setLock(true, false);
((IDProvider) element).release(false);
((IDProvider) element).setLock(false, false);
if (element instanceof Media) {
PageUtils.releaseParents((IDProvider) element);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hey, vielen Dank für die Antworten,
ich werde es mal mit einer eigenen Implementierung versuchen. Ich denke Antonios Lösung mit der Funktion könnte hilfreich sein.

