Search the FirstSpirit Knowledge Base
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?!
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.
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:
Poste doch bitte noch mal das komplette Skript.
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");
}
}
import firstspirit.access.store.mediastore.Store;
Der Import ist falsch. Store
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:
Wenn noch weitere Hilfe gewünscht, bitte das aktualisierte (vollständige) Skript wieder posten.
Um welche FirstSpirit-Version geht es hier?
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");
}
}
Die Klasse de.espirit.firstspirit.access.store.mediastore.Store gibt es nicht (Zeile 9).