- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Skript für Medienzugriff
Hallo,
ich möchte ein Skript schreiben welches über den Medienstore läuft und jene Medien mir rausschreibt welche nicht verwendet werden.
Der Aufruf schaut momentan wie folgt aus:
import firstspirit.access.store.mediastore.*;
import javax.Swing.JTextArea;
import firstspirit.access.store.Store;
ms = context.getUserService().getStore(Store.MEDIA_STORE,false); // Zugriff auf den Medienstore
mt = ms.getFilename().getChildren(Media.class,true); // Zugriff auf den Filename, laut API kann man das mit "getFilename() " machen
iter = mt.iterator();
while(iter.hasNext()) {
mst = iter.next();
try{
id = mst.getIncomingReferences()[0].getId();
}
catch(Exception e){
myArea.append("-> " + mst.getUid() + "\n");
}
}
Ich bekomm bei der Ausführung jedoch folgende Fehlermeldung:
de.espirit.firstspirit.access.script.ExecutionException: Error in method invocation: Method getFilename() not found in class'de.espirit.firstspirit.store.access.mediastore.MediaStoreRootImpl' at line ..
Durch den import von " ..mediastore.*; " müsste er doch die Methode finden oder täusche ich mich?!
- Labels:
-
Developers
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo,
Ich bekomm bei der Ausführung jedoch folgende Fehlermeldung:
de.espirit.firstspirit.access.script.ExecutionException: Error in method invocation: Method getFilename() not found in class'de.espirit.firstspirit.store.access.mediastore.MediaStoreRootImpl' at line ..
Durch den import von " ..mediastore.*; " müsste er doch die Methode finden oder täusche ich mich?!
Ja, da täuscht du dich
Wie die Fehlermeldung schon sagt existiert die Methode #getFilename() auf MediaStoreRoot nicht.
Dein Skript müsste ungefähr so aussehen:
ms = context.getUserService().getStore(Store.MEDIA_STORE,false); // Zugriff auf den Medienstore
mt = ms.getChildren(Media.class,true);iter = mt.iterator();
while(iter.hasNext()) {
media = iter.next();
if (media.getIncomingReferences().length == 0) {
context.logInfo("found unused media: " + media.getId());
}
}
Bitte diesen Hinweis beachten.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
danke, habs jetzt mal so modifziert wie angegeben und das was ich noch benötige hinzugefügt.
Jetzt schreibt er mir als Fehlermeldung:
Class or variable not found: Store.MEDIA_STORE
Der Import dafür wäre im Skript drin, jedoch steht hier dass es deprecated ist und man stattdessen Store.Type.MEDIASTORE verwenden soll.
So ganz versteh ich das jetzt nicht, vorallem wieso er da jetzt wegen dem MEDIA_STORE "schreit".
:smileyconfused:
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Poste doch bitte noch mal das komplette Skript.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hier mein Skript: (sind noch ein paar Imports drin, welche nicht benötigt werden)
import javax.Swing.JTextArea;
import javax.Swing.JDialog;
import firstspirit.access.store.Store;
import firstspirit.access.store.templatestore.Template;
import firstspirit.access.store.mediastore.*;
import firstspirit.access.store.mediastore.Media;
import firstspirit.access.store.mediastore.MediaStoreRoot;
import firstspirit.access.store.mediastore.Store;
JDialog myDialog = new JDialog();
JTextArea myArea = new JTextArea();
JScrollPane myPane = new JScrollPane(myArea);
JPanel panel = new JPanel(new BorderLayout());
panel.add(myPane);
myDialog.getContentPane().add(panel);
myDialog.setSize(600, 800);
myDialog.show();
ms = context.getUserService().getStore(Store.MEDIA_STORE,false);
mt = ms.getChildren(Media.class,true);
myArea.append("\nMedien:\n");
myArea.append("...davon aktuell nicht verwendet: \n");
iter = mt.iterator();
while(iter.hasNext()) {
media = iter.next();
if (media.getIncomingReferences().length == 0) {
// context.logInfo("found unused media: " + media.getId()+ "," + media.getUid());
myArea.append("----->" + media.getId() + "," + media.getUid() + "\n");
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
import firstspirit.access.store.mediastore.Store;
Der Import ist falsch. Store
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hab nun den Import geändert (und die anderen Importpfade auch angepasst), jedoch bekomm ich die selbe Fehlermeldung, dass er MEDIA_STORE nicht findet, noch immer. Was jetzt noch falsch sein könnte wüsst ich echt nicht mehr. :smileyconfused:
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Wenn noch weitere Hilfe gewünscht, bitte das aktualisierte (vollständige) Skript wieder posten.
Um welche FirstSpirit-Version geht es hier?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Verwenden die Version 4.2.219.38784
Das aktualisierte Skript mit den richtigen Imports wäre:
import javax.swing.*;
import javax.swing.JTextArea;
import javax.swing.JDialog;
import de.espirit.firstspirit.access.store.Store;
import de.espirit.firstspirit.access.store.templatestore.Template;
import de.espirit.firstspirit.access.store.mediastore.*;
import de.espirit.firstspirit.access.store.mediastore.Media;
import de.espirit.firstspirit.access.store.mediastore.MediaStoreRoot;
import de.espirit.firstspirit.access.store.mediastore.Store;
JDialog myDialog = new JDialog();
JTextArea myArea = new JTextArea();
JScrollPane myPane = new JScrollPane(myArea);
JPanel panel = new JPanel(new BorderLayout());
panel.add(myPane);
myDialog.getContentPane().add(panel);
myDialog.setSize(600, 800);
myDialog.show();
myArea.append("\nMedien:\n");
myArea.append("...davon aktuell nicht verwendet [Referenzname]:\n");
ms = context.getUserService().getStore(Store.MEDIA_STORE,false);
mt = ms.getChildren(Media.class,true);
iter = mt.iterator();
while(iter.hasNext()) {
media = iter.next();
if (media.getIncomingReferences().length == 0) {
// context.logInfo("found unused media: " + media.getId()+ "," + media.getUid());
myArea.append("----->" + media.getId() + "," + media.getUid() + "\n");
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Die Klasse de.espirit.firstspirit.access.store.mediastore.Store gibt es nicht (Zeile 9).

