AEM 6.4 a atteint la fin de la prise en charge étendue et cette documentation n’est plus mise à jour. Pour plus d’informations, voir notre période de support technique. Rechercher les versions prises en charge here.
Avec le Générateur d’expression, vous pouvez créer des expressions ou des conditions qui effectuent les calculs des valeurs de données fournies par le dictionnaire de données ou par les utilisateurs. Correspondence Management utilise le résultat de l’évaluation de l’expression pour sélectionner des actifs (par exemple, texte, images, listes, conditions) et les insérer dans la correspondance selon les besoins.
Comme le Générateur d’expression utilise en interne les bibliothèques EL JSP, l’expression adhère à la syntaxe JSPEL. Pour plus d’informations, voir Exemples d’expressions.
Les opérateurs pouvant être utilisés dans les expressions sont disponibles dans la barre supérieure du générateur d’expression.
Voici quelques exemples d’EL JSP couramment utilisés que vous pouvez utiliser dans votre solution Correspondence Management :
Vous trouverez plus d’informations dans Spécification de l’EL JSP. Le gestionnaire d’expression côté client ne prend pas en charge certaines variables et fonctions de la spécification de l’EL JSP, plus précisément :
Les index de collection et clés de mappage (utilisant la notation []) ne sont pas pris en charge dans les noms de variable pour les expressions évaluées côté client.
Voici une liste des types de paramètre ou types de retour de fonctions utilisées dans les expressions :
Les fonctions distantes offrent la possibilité d’utiliser une logique personnalisée dans les expressions. Vous pouvez écrire une logique personnalisée à utiliser dans l’expression comme méthode dans Java et la même fonction peut être utilisée dans les expressions. Les fonctions distantes disponibles sont répertoriées sous l’onglet "Fonctions distantes" sur le côté gauche de l’éditeur d’expression.
Vous pouvez créer un regroupement personnalisé pour exporter vos propres fonctions distantes à utiliser dans les expressions. Pour créer un lot personnalisé afin d’exporter vos propres fonctions distantes, effectuez les tâches suivantes. Il indique comment écrire une fonction personnalisée qui capitalise sa chaîne d’entrée.
Définissez une interface pour le service OSGi contenant les méthodes qui sont exportées pour utilisation par Expression Manager.
Déclarez les méthodes sur l’interface A et annotez-les au moyen de l’annotation @ServiceMethod (com.adobe.exm.expeval.ServiceMethod). Expression Manager ignore les méthodes non annotées. L’annotation ServiceMethod présente les attributs facultatifs suivants, qui peuvent également être définis :
package mergeandfuse.com;
import com.adobe.exm.expeval.ServiceMethod;
public interface RemoteFunction {
@ServiceMethod(enabled=true,displayName="Returns_all_caps",description="Function to convert to all CAPS", familyId="remote")
public String toAllCaps(String name);
}
Les paramètres des méthodes peuvent également être annotés de manière facultative au moyen de l’annotation @ServiceMethodParameter (com.adobe.exm.expeval.ServiceMethodParameter). Cette annotation n’est utilisée que pour spécifier des noms lisibles par l’utilisateur et des descriptions des paramètres de méthode à utiliser dans l’interface utilisateur de création. Assurez-vous que les paramètres et les valeurs renvoyées des méthodes d’interface appartiennent à l’un des types suivants :
Définissez l’implémentation de l’interface, puis configurez-la comme un service OSGi et définissez les propriétés de services suivantes :
@org.apache.felix.scr.annotations.Properties({
@org.apache.felix.scr.annotations.Property(name = "connectors.jsoninvoker", boolValue = true),
@org.apache.felix.scr.annotations.Property(name = "connectors.jsoninvoker.alias", value = "<service_id>"),
@org.apache.felix.scr.annotations.Property(name = "exm.service", boolValue = true)})
L’entrée exm.service=true indique à Expression Manager que le service contient des fonctions distantes dont il peut se servir dans les expressions. La valeur <service_id> doit être un identifiant Java valide (contenant uniquement des caractères alphanumériques ainsi que les symboles _ et $). Cette valeur, précédée du mot-clé REMOTE_, forme le préfixe utilisé au sein des expressions. Par exemple, une interface avec une méthode annotée bar() et l’ID de service foo dans les propriétés du service peut être référencée dans les expressions à l’aide de REMOTE_foo:bar().
package mergeandfuse.com;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Service;
@Component(metatype = true, immediate = true, label = "RemoteFunctionImpl")
@Service(value = RemoteFunction.class)
@org.apache.felix.scr.annotations.Properties({
@org.apache.felix.scr.annotations.Property(name = "connectors.jsoninvoker", boolValue = true),
@org.apache.felix.scr.annotations.Property(name = "connectors.jsoninvoker.alias", value = "test1"),
@org.apache.felix.scr.annotations.Property(name = "exm.service", boolValue = true)})
public class RemoteFuntionImpl implements RemoteFunction {
@Override
public String toAllCaps(String name) {
System.out.println("######Got######"+name);
return name.toUpperCase();
}
}
Vous trouverez ci-dessous des exemples d’archives à utiliser :
GoodFunctions.jar.zip