Con el Generador de Expresiones, puede crear expresiones o condiciones que realicen cálculos en los valores de datos proporcionados por el diccionario de datos o por usuarios finales. Correspondence Management utiliza el resultado de la evaluación de expresiones para seleccionar recursos como texto, imágenes, listas y condiciones e insertarlos en la correspondencia según sea necesario.
El Generador de Expresiones utiliza de forma interna bibliotecas JSP EL, por lo que la expresión se ajusta a la sintaxis JSPEL. Para obtener más información, consulte expresiones de ejemplo.
Los operadores disponibles para su uso en expresiones están disponibles en la barra superior del generador de expresiones.
Estos son algunos ejemplos de JSP EL que puede utilizar con frecuencia en su solución de administración de correspondencia:
Puede encontrar más información en la especificación JSP EL. El administrador de expresiones del lado del cliente no admite determinadas variables y funciones en la especificación JSP EL, específicamente:
Los índices de recopilación y las claves de asignación (mediante la notación []) no son compatibles con los nombres de variables para expresiones evaluadas en el lado del cliente.
A continuación se indican los tipos de parámetro o los tipos de devolución de funciones utilizados en las expresiones:
Las funciones remotas permiten utilizar la lógica personalizada en expresiones. Puede escribir la lógica personalizada que se usará en la expresión como método en Java y se puede usar la misma función dentro de las expresiones. Las funciones remotas disponibles se muestran en la ficha "Funciones remotas", en la parte izquierda del Editor de Expresiones.
Puede crear un paquete personalizado para exportar sus propias funciones remotas y utilizarlas dentro de expresiones. Para crear un paquete personalizado y exportar sus propias funciones remotas, realice las siguientes tareas. Muestra cómo escribir una función personalizada que pone en mayúscula su cadena de entrada.
Defina una interfaz para el servicio OSGi que contenga métodos que se exportan para su uso por parte del Administrador de Expresiones.
Declare los métodos en la interfaz A y anótelos con la anotación @ServiceMethod (com.adobe.exm.expeval.ServiceMethod). El Administrador de expresiones ignora todos los métodos no anotados. La anotación ServiceMethod tiene los siguientes atributos opcionales que también se pueden especificar:
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);
}
Los parámetros de los métodos también se pueden anotar de forma opcional mediante la anotación @ServiceMethodParameter (com.adobe.exm.expeval.ServiceMethodParameter). Esta anotación solo se utiliza para especificar nombres legibles por el usuario y descripciones de parámetros de método para su uso en la interfaz de usuario de creación. Asegúrese de que los parámetros y valores de retorno de los métodos de interfaz pertenecen a uno de los siguientes tipos:
Defina la implementación de la interfaz, configúrela como un servicio OSGI y defina las siguientes propiedades de servicio:
@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)})
La entrada exm.service=true indica al administrador de Expresiones que el servicio contiene funciones remotas que se pueden usar en expresiones. El valor <service_id> debe ser un identificador Java válido (alfanumérico,$, _ sin ningún otro carácter especial). Este valor, con el prefijo REMOTE_ palabra clave, forma el prefijo que se utiliza dentro de las expresiones. Por ejemplo, se puede hacer referencia a una interfaz con un método anotado bar() y el ID de servicio en las propiedades del servicio dentro de expresiones mediante 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();
}
}
A continuación se muestran archivos de muestra para utilizar:
GoodFunctions.jar.zip