Fonctionnalités des maps DSQL
quelques fonctionnalités dans les maps DSQL, en plus des fonctions existantes.
Vous pouvez consulter la documentation des autres fonctions dans le Guide de référence de .
@emit
L'annotation @emit est placée avant une instruction d'attribution dans un bloc SELECT. Elle vous permet de produire des champs de sortie de manière conditionnelle en fonction de l'évaluation d'une expression de condition.
Si la condition est évaluée sur true, le champ de sortie est produit. Si la condition est évaluée sur false, le champ est omis de la sortie.
Syntaxe
@emit ( condition = <expression> )
<field_name> = <value>Arguments
L'annotation @emit nécessite un argument obligatoire :
- condition : expression booléenne qui détermine si le champ est produit ou non.
Exemple
Dans cet exemple, le champ rating est inclus dans la sortie uniquement lorsqu'il a une valeur :
FROM customer
SELECT {
name = name,
@emit ( condition = hasValue(rating) )
rating = rating
}Cela produit des enregistrements de sortie avec le champ name toujours présent, alors que le champ rating apparaît uniquement lorsque le client a une valeur rating (évaluation).
getContextVariable
Vous pouvez utiliser la fonction getContextVariable pour appeler une variable de contexte définie dans votre Job dans le .
Arguments
Nom de la variable de contexte.
getMapProperty
Vous pouvez utiliser la fonction getMapProperty pour récupérer la valeur d'une propriété d'exécution. Cette fonction est particulièrement utile dans les Routes Camel (y compris le composant cMap) pour accéder aux en-têtes d'échanges entrants.
Arguments
Nom de la propriété d'exécution sous forme de littéral de chaîne de caractères.
Exemples
getMapProperty('propertyName')Si la propriété spécifiée n'existe pas, la fonction retourne null.
java:call
Vous pouvez utiliser la fonctionnalité java:call pour appeler une méthode Java. Vous pouvez également l'utiliser pour appeler des beans et des routines disponibles dans le , par exemple.
Arguments
Paramètres Java.
- Appel d'une méthode statique : java:call(<class_name>, <method_name>, <arguments>)
- Appel d'une méthode non statique : java:call(java:new(<class_name>, <constructor_arguments>), <method_name>, <arguments>)
- Appel d'une méthode non statique d'un objet Java retourné par une autre méthode d'un objet Java : java:call(java:call(<class_name>, <method_name>, <arguments>), <method_name>, <arguments>)