177 lines
3.4 KiB
Markdown
177 lines
3.4 KiB
Markdown
# 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
|
|
<param type="suffix"/>
|
|
```
|
|
|
|
En YAML :
|
|
|
|
```yml
|
|
param:
|
|
- type: suffix
|
|
```
|
|
|
|
Dans l'exemple précédent la valeur de ce paramètre sera "val1".
|