# Paramètre de type "variable" Il est possible de spécifier le nom d'une variable qui peut ne pas exister : ```yml --- version: '1.0' my_variable: default: type: jinja jinja: |+ {% if value %} value {% endif %} params: value: type: variable variable: rougail.unknown_variable optional: true ``` La variable "rougail.unknown_variable" n'existant, `value` sera égal à `None` et la valeur de la variable "rougail.my_variable" sera aussi égale à `None`. Si "rougail.unknown_variable" est créé dans un autre dictionnaire, sa valeur sera ainsi copié. ## Paramètre avec variable potentiellement désactivée Si une variable est désactivé, l'utilisation de cette variable peut poser problème. Il est possible de ne pas générer d'erreur si une variable est désactivé en utilisant le paramètre "propertyerror" : ```yml --- version: '1.0' disabled_variable: disabled: true my_variable: default: type: jinja jinja: |+ {% if value is defined and value %} value {% endif %} params: value: type: variable variable: rougail.disabled_variable propertyerror: false ``` Dans ce cas, si la variable est désactivé, le paramètre n'est jamais donnée à la fonction de destination. ## Paramètre avec variable dynamique Il est possible de faire un calcul avec comme paramètre [une variable d'une famille dynamique](../family/auto.md) mais pour une suffix particulier. Par exemple : ```yml --- version: '1.0' varname: multi: true default: - val1 - val2 my_dyn_family_: type: dynamic variable: rougail.varname description: 'Describe ' my_dyn_var_: type: string default: "val" my_variable: multi: true unique: false default: type: jinja jinja: |+ {% for val in value %} {{ val }} {% endfor %} params: value: type: variable variable: rougail.my_dyn_family_.my_dyn_var_ ``` ```yml --- version: '1.0' varname: multi: true default: - val1 - val2 my_dyn_family_: type: dynamic variable: rougail.varname description: 'Describe ' my_dyn_var_: type: string default: "val" my_variable: default: type: jinja jinja: |+ {% if value is defined and value %} {{ value }} {% endif %} params: value: type: variable variable: rougail.my_dyn_family_val1.my_dyn_var_val1 ``` ```yml --- version: '1.0' varname: multi: true default: - val1 - val2 my_dyn_family_: type: dynamic variable: rougail.varname description: 'Describe ' my_dyn_var_: type: string default: type: jinja jinja: '{{ value }}' params: value: type: suffix ``` PAS LE BON FICHIER : ```yml --- version: '1.0' varname: multi: true default: - val1 - val2 my_dyn_family_: type: dynamic variable: rougail.varname description: 'Describe ' my_dyn_var_: type: string default: type: suffix ``` Dans ce cas, la valeur du paramètre de la fonction sera la valeur de la variable "vardyn" pour la famille ayant le suffix "val1". Il peut être utile de récupérer la valeur du suffix dans la fonction, pour cela il suffit de mettre un paramètre de type suffix : ```xml ``` En YAML : ```yml param: - type: suffix ``` Dans l'exemple précédent la valeur de ce paramètre sera "val1".