ASpengler
I'm new here

FS5.2 Regeln: Abfrage ob jemals Freigegeben

Jump to solution

Hallo zusammen,

ich habe einen Imagepicker (FS_REFERENCE) bei dem ich gerne per Regel prüfen würde, ob ich das ausgewählte Bild noch nie freigegeben ist. Ich weiß grundsätzlich, dass das Medium über eine entsprechende Methode verfügt (foo.getReleaseStatus()==3), weiß aber nicht ob man da per Regeldefinition drauf zugreifen kann. Mein Ansatz ging in diese Richtung:

<RULE>

        <WITH>

            <EQUAL>

                <PROPERTY name="VALUE" source="imagepicker.getReleaseStatus()"/>

                <NUMBER>3</NUMBER>

            </EQUAL>

        </WITH>

    </RULE>

führt aber zu keinem Ergebnis. Ist es generell nicht möglich (bis auf die angegebenen) auf die Eigenschaften von Objekten in den Regeln zuzugreifen?

Danke und Grüße,

Andreas

0 Kudos
1 Solution

Accepted Solutions
mbergmann
Crownpeak employee

Hallo Andreas,

in den Regeln kannst du nur die festgelegten PROPERTIES nutzen, insbesondere keine Methoden aufrufen oder durch Objektverbindungen „wandern“.

Der Tipp von Marcel (ValueService) wird leider auch nicht funktionieren, da du dazu den Wert der FS_REFERENCE an diesen ValueService übergeben müsstest. Die Übergabe an einen ValueService funktioniert aber nur für „einfache“ Datentypen, siehe 

Online Dokumentation FirstSpirit - <SCHEDULE/>

Ich vermute, es geht dir darum, dass keine niemals freigegebenen Elemente ausgewählt werden. Solche Prüfungen erfolgen üblicherweise nicht im Formular sondern später im Rahmen des Freigabe-Workflows.

Viele Grüße

Michael

View solution in original post

0 Kudos
6 Replies
mscholz3
I'm new here

Hallo Andreas,

das kannst du bestimmt per ValueService umsetzten.

Du musst hierfür ein neues FSM Module erstellen bzw. ein vorhandenes Module erweitern.

Liebe Grüße

Marcel

0 Kudos
mbergmann
Crownpeak employee

Hallo Andreas,

in den Regeln kannst du nur die festgelegten PROPERTIES nutzen, insbesondere keine Methoden aufrufen oder durch Objektverbindungen „wandern“.

Der Tipp von Marcel (ValueService) wird leider auch nicht funktionieren, da du dazu den Wert der FS_REFERENCE an diesen ValueService übergeben müsstest. Die Übergabe an einen ValueService funktioniert aber nur für „einfache“ Datentypen, siehe 

Online Dokumentation FirstSpirit - <SCHEDULE/>

Ich vermute, es geht dir darum, dass keine niemals freigegebenen Elemente ausgewählt werden. Solche Prüfungen erfolgen üblicherweise nicht im Formular sondern später im Rahmen des Freigabe-Workflows.

Viele Grüße

Michael

0 Kudos
felix_reinhold
Returning Responder

Hi Andreas,

wenn es tatsächlich darum geht, dass nur freigegebene Medien ausgewählt werden sollen, dann kannst du das FS_REFERENCE auf nicht editierbar setzen und dann einen kleinen Button daneben packen, mit dem du es befüllst. Der Button führt dann nur ein Skript aus, über das sich nur freigegebene Medien auswählen lassen. Das ausgewählte Medium schreibst du dann ins FS_REFERNECE zurück:

OperationAgent agent = context.requireSpecialist(OperationAgent.TYPE);

SelectStoreElementOperation operation = agent.getOperation(SelectStoreElementOperation.TYPE);

operation.setTitle("Select media");

operation.addProject(null);

operation.addTypeToSelect(Media.class);

operation.setAllowLeafsOnly(true);

operation.setMultiSelect(false);

operation.setSelectFromRelease(true);

operation.perform();

Relevant ist hier das operation.setSelectFromRelease(true);

Medien mit Release-Status 3 werden dabei ausgeblendet. Wenn du noch Infos zur Integration mit dem Button brauchst einfach Bescheid sagen.

Ansonsten wie Michael geschrieben hat im Freigabeworkflow prüfen.

Viele Grüße

Felix

0 Kudos

Hallo  Andreas/Felix,

generell ist die Nutzung eines FS_BUTTON eine gute Idee - sozusagen ein eigener kleiner Wizard. Sowas nutzt man im allgemeinen ganz gerne für spezielle Fälle.

Soweit ich nichts verpasst habe (was ja durchaus auch möglich ist) wird die SelectStoreElementOperation im ContentCreator nicht unterstützt, siehe auch hier: Re: Verzeichnisauswahl via FS_Button im ContentCreator

Abweichend könnte ich mir - mit Felix Variante als Grundrezept (Button), verfeinert mit dem Alternativvorschlag im verlinkten Posting (FormsAgent + FS_REFERENCE) und gewürzt mit einer Prise eigener Logik - folgendes grob vorstellen: Button der ein Formular mit FS_REFERENCE öffnet.

Nach der Bestellung dort mit OK (vorher die Auswahl einschränken geht leider nicht) prüft der Koch - ähm Code - den Geschmack (Freigabestatus) des gewählten Gerichtes (Elementes) und lässt es ggf. zurück in die Küche gehen (=Fehlermeldung) oder dem Gast servieren (=Eintrag in die ReadOnly FS_REFERENCE).

Die Prüfung im Wokflow sollte meiner Meinung nach trotzdem erfolgen. Das macht man dort ja generell etwas allgemeiner (ausgehende Referenzen prüfen auf Freigabestatus).

Vorteil der Lösung im Formular: früherer Hinweis. Nachteil: Vielleicht zu früher Hinweis und ein paar Klicks mehr.

Es hängt halt auch viel vom gewünschten redaktionellen Prozess ab. Oft gibt man z.B. verlinkte Medien (bloß keine Seitenreferenzen, andere Küche) automatisch im Wokflow frei.

Als vegetarische Variante fiele mir noch ein, über den Button keinen „Wizard“ mit der eigentlichen Auswahl zu bauen sondern eine (ggf. optionale) Vorkosterfunktion, die ein eingetragenes Medium einfach nur prüft - beim Button kann man FS_REFERENCEs übergeben.

Es gibt da halt ein paar Varianten, welche du dann im Detail verfolgst ist letztlich Geschmackssache...

😉

Viele Grüße

Michael

0 Kudos

Hallo zusammen,

danke für die zahlenreichen Hinweise.

Ich denke dem Kunden geht es hauptsächlich darum, dass seine Redakteure Datensätze mit nie freigegebenen Bildern freigeben und diese dann nach dem Deployment einfach nicht da sein. Ein Workflow der einfach alles referenzierte freigibt wäre wohl hier das sinnigste...vor allem da der Redakteur, wenn er die Medien über den ContentCreator hochgeladen hat, ja eh keine andere Möglichkeit hat die Medien freizugeben - wenn ich den ContentCreator richtig verstanden habe.

Danke und Grüße,

Andreas

0 Kudos

Hallo Andreas,

letztlich hängt die tatsächliche Umsetzung an den fachlichen Anforderungen. Meistens passt es, wenn referenzierte Medien mit freigegeben werden. Dabei müsste man noch klären ob sich das nur auf noch nie freigegebene Medien beziehen soll oder auch auf geänderte (kann ja auch sein, dass zwischendurch Medien-Metadaten geändert wurden usw). In manchen Projekten ist mir auch schon die Anforderung begegnet, Bilder hier wiederum anders zu behandeln als Dokumente (PDFs).

Es muss also erstmal von der fachlichen Seite klar sein, ob eine Freigabe einer Seite/Datensatz (fachlich!) die Freigabe der dort genutzten Medien beinhaltet.

Vorsicht vor "alles referenzierte" - referenzierte Seitenreferenzen (also interne Links) werden (üblicherweise) nicht mit freigegeben, weil man das wieder rekursiv machen müsste, dadurch würde man dann oft durch die Freigabe einer Seite sehr viel mehr mitnehmen ohne es durch den WF zu schleusen. Darum prüft man das im WF eher nur und erzeugt eine Warnung für den Fall dass es ausgehende Referenzen auf noch nie freigegebene Seitenreferenzen gibt.

Viele Grüße

Michael

0 Kudos