2021-02-10 08:19:33 +01:00
# Paramètre de type "variable"
2023-10-12 08:17:30 +02:00
Il est possible de spécifier le nom d'une variable qui peut ne pas exister :
2022-11-02 22:52:50 +01:00
2022-11-03 22:17:43 +01:00
```yml
2023-10-12 08:17:30 +02:00
---
version: '1.0'
my_variable:
default:
type: jinja
jinja: |+
{% if value %}
value
{% endif %}
params:
value:
type: variable
variable: rougail.unknown_variable
optional: true
2022-11-02 22:52:50 +01:00
```
2023-10-12 08:17:30 +02:00
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é.
2021-02-10 08:19:33 +01:00
## 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" :
2022-11-03 22:17:43 +01:00
```yml
2023-10-12 08:17:30 +02:00
---
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
2022-11-02 22:52:50 +01:00
```
2021-02-10 08:19:33 +01:00
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 :
2023-10-12 08:17:30 +02:00
```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_
2021-02-10 08:19:33 +01:00
```
2023-10-12 08:17:30 +02:00
```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
```
2022-11-02 22:52:50 +01:00
2022-11-03 22:17:43 +01:00
```yml
2023-10-12 08:17:30 +02:00
---
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
2022-11-02 22:52:50 +01:00
```
2023-10-12 08:17:30 +02:00
2021-02-10 08:19:33 +01:00
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 :
2022-11-03 22:17:43 +01:00
```xml
2021-02-10 08:19:33 +01:00
< param type = "suffix" / >
```
2022-11-02 22:52:50 +01:00
En YAML :
2022-11-03 22:17:43 +01:00
```yml
2022-11-02 22:52:50 +01:00
param:
- type: suffix
```
2021-02-10 08:19:33 +01:00
Dans l'exemple précédent la valeur de ce paramètre sera "val1".