rhb
I'm new here

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?!

0 Kudos
10 Replies
gockel
Crownpeak employee

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 Smiley Happy

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:

0 Kudos

Poste doch bitte noch mal das komplette Skript.

Peter
0 Kudos

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");

         }

}

0 Kudos
gockel
Crownpeak employee

import firstspirit.access.store.mediastore.Store;

Der Import ist falsch. Store

0 Kudos

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:

0 Kudos
gockel
Crownpeak employee

Wenn noch weitere Hilfe gewünscht, bitte das aktualisierte (vollständige) Skript wieder posten.

Um welche FirstSpirit-Version geht es hier?

0 Kudos

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");

         }

}

0 Kudos

Die Klasse de.espirit.firstspirit.access.store.mediastore.Store gibt es nicht (Zeile 9).

Peter
0 Kudos