2021-02-06 17:36:43 +01:00
|
|
|
# Paramètre de la fonction
|
|
|
|
|
|
|
|
## Paramètre positionnel
|
|
|
|
|
|
|
|
Déclarons un calcul avec paramètre :
|
|
|
|
|
|
|
|
```
|
|
|
|
<constraints>
|
|
|
|
<fill name="return_value" target="my_calculated_variable">
|
|
|
|
<param>no</param>
|
|
|
|
</fill>
|
|
|
|
</constraints>
|
|
|
|
```
|
|
|
|
|
|
|
|
Créons la fonction correspondante :
|
|
|
|
|
|
|
|
```
|
|
|
|
def return_value(value):
|
|
|
|
return value
|
|
|
|
```
|
|
|
|
|
|
|
|
La variable aura donc "no" comme valeur puisque le paramètre aura la valeur fixe "no".
|
|
|
|
|
|
|
|
## Paramètre nommée
|
|
|
|
|
|
|
|
Déclarons une contrainte avec un paramètre nommée :
|
|
|
|
|
|
|
|
```
|
|
|
|
<constraints>
|
|
|
|
<fill name="return_value" target="my_calculated_variable">
|
|
|
|
<param name="valeur">no</param>
|
|
|
|
</fill>
|
|
|
|
</constraints>
|
|
|
|
```
|
|
|
|
|
|
|
|
Dans ce cas la fonction return_value sera exécuté avec le paramètre nommé "valeur" dont sa valeur sera "no".
|
|
|
|
|
|
|
|
## Paramètre de type texte
|
|
|
|
|
|
|
|
Dans l'exemple précédent :
|
|
|
|
|
|
|
|
```
|
|
|
|
<constraints>
|
|
|
|
<fill name="return_value" target="my_calculated_variable">
|
|
|
|
<param>no</param>
|
|
|
|
</fill>
|
|
|
|
</constraints>
|
|
|
|
```
|
|
|
|
|
|
|
|
Le paramètre est de type texte (ou "string").
|
|
|
|
|
|
|
|
## Paramètre de type nombre
|
|
|
|
|
|
|
|
Déclarons un calcul avec paramètre avec un nombre :
|
|
|
|
|
|
|
|
```
|
|
|
|
<constraints>
|
|
|
|
<fill name="return_value_with_number" target="my_calculated_variable">
|
|
|
|
<param type="number">1</param>
|
|
|
|
</fill>
|
|
|
|
</constraints>
|
|
|
|
```
|
|
|
|
|
|
|
|
Créons la fonction correspondante :
|
|
|
|
|
|
|
|
```
|
|
|
|
def return_value_with_number(value):
|
|
|
|
if value == 1:
|
|
|
|
return 'no'
|
|
|
|
return 'yes'
|
|
|
|
```
|
|
|
|
|
|
|
|
La variable aura donc "no" comme valeur puisque le paramètre aura la valeur fixe "1".
|
|
|
|
|
|
|
|
## Paramètre de type variable
|
|
|
|
|
|
|
|
Créons deux variables avec une contrainte de type variable qui contient le nom de la variable dont sa valeur sera utilisé comme paramètre :
|
|
|
|
|
|
|
|
```
|
|
|
|
<variables>
|
|
|
|
<family name="family">
|
|
|
|
<variable name="my_calculated_variable"/>
|
|
|
|
<variable name="my_variable" type="number" description="My variable">
|
|
|
|
<value>1</value>
|
|
|
|
</variable>
|
|
|
|
</family>
|
|
|
|
</variables>
|
|
|
|
<constraints>
|
|
|
|
<fill name="return_value_with_number" target="my_calculated_variable">
|
|
|
|
<param type="variable">my_variable</param>
|
|
|
|
</fill>
|
|
|
|
</constraints>
|
|
|
|
```
|
|
|
|
|
|
|
|
Si l'utilisateur laisse la valeur 1 à "my_variable", la valeur par défault de la variable "my_calculated_variable" sera "no".
|
|
|
|
Si la valeur de "my_variable" est différent de 1, la valeur par défaut de la variable "my_calculated_variable" sera "yes".
|
|
|
|
|
2021-02-08 17:46:58 +01:00
|
|
|
[Les variables meneuses ou suiveuses](../variable/leadership.md) peuvent être utilisé sans soucis commme paramètre.
|
|
|
|
|
2021-02-06 17:36:43 +01:00
|
|
|
### Paramètre avec variable potentiellement non existante
|
|
|
|
|
|
|
|
Suivant le contexte une variable peut exister ou ne pas exister.
|
|
|
|
|
|
|
|
Un paramètre de type "variable" peut être "optional" :
|
|
|
|
|
|
|
|
```
|
|
|
|
<variables>
|
|
|
|
<family name="family">
|
|
|
|
<variable name="my_calculated_variable"/>
|
|
|
|
</family>
|
|
|
|
</variables>
|
|
|
|
<constraints>
|
|
|
|
<fill name="return_value" target="my_calculated_variable">
|
|
|
|
<param type="variable" optional="True">unknow_variable</param>
|
|
|
|
</fill>
|
|
|
|
</constraints>
|
|
|
|
```
|
|
|
|
|
|
|
|
Dans ce cas la fonction "return_value" est exécuté sans paramètre.
|
|
|
|
|
|
|
|
Si maintenant on créé un nouveau dictionnaire en créant cette variable, la fonction sera exécuté avec le paramètre.
|
|
|
|
|
|
|
|
### Paramètre avec variable potentiellement désactivée
|
|
|
|
|
2021-02-08 17:46:58 +01:00
|
|
|
Si une variable est désactivé, l'utilisation de cette variable peut poser problème.
|
2021-02-06 17:36:43 +01:00
|
|
|
|
2021-02-08 17:46:58 +01:00
|
|
|
Il est possible de ne pas générer d'erreur si une variable est désactivé en utilisant le paramètre "propertyerror" :
|
2021-02-06 17:36:43 +01:00
|
|
|
|
2021-02-08 17:46:58 +01:00
|
|
|
```
|
|
|
|
<variables>
|
|
|
|
<family name="general">
|
|
|
|
<variable name="condition">
|
|
|
|
<value>no</value>
|
|
|
|
</variable>
|
|
|
|
<variable name="variable1" disabled="True"/>
|
|
|
|
<variable name="variable2"/>
|
|
|
|
</family>
|
|
|
|
</variables>
|
2021-02-06 17:36:43 +01:00
|
|
|
|
2021-02-08 17:46:58 +01:00
|
|
|
<constraints>
|
|
|
|
<fill name="calc_val" target="variable2">
|
|
|
|
<param type="variable" propertyerror="False">variable1</param>
|
|
|
|
</fill>
|
|
|
|
</constraints>
|
|
|
|
```
|
2021-02-06 17:36:43 +01:00
|
|
|
|
2021-02-08 17:46:58 +01:00
|
|
|
Dans ce cas, le paramètre n'est jamais donnée à la fonction de destination.
|
2021-02-06 17:36:43 +01:00
|
|
|
|
|
|
|
### 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 :
|
|
|
|
|
|
|
|
```
|
|
|
|
<variables>
|
|
|
|
<family name='family'>
|
|
|
|
<variable name='suffixes' type='string' description="Suffixes of dynamic family" multi="True">
|
|
|
|
<value>val1</value>
|
|
|
|
<value>val2</value>
|
|
|
|
</variable>
|
|
|
|
<variable name="my_calculated_variable" type="string" description="My calculated variable"/>
|
|
|
|
</family>
|
|
|
|
<family name='dyn' dynamic="suffixes">
|
|
|
|
<variable name='vardyn' type='string' description="Dynamic variable">
|
|
|
|
<value>val</value>
|
|
|
|
</variable>
|
|
|
|
</family>
|
|
|
|
</variables>
|
|
|
|
<constraints>
|
|
|
|
<fill name="return_value" target="my_calculated_variable">
|
|
|
|
<param type="variable">vardynval1</param>
|
|
|
|
</fill>
|
|
|
|
</constraints>
|
|
|
|
```
|
|
|
|
|
|
|
|
Dans ce cas, valeur du paramètre de la fonction "return_value" sera la valeur de la variable "vardyn" avec le suffix "val1".
|
|
|
|
|
|
|
|
## Paramètre de type information
|
|
|
|
|
|
|
|
Le paramètre peut être la valeur est issue d'une information de la configuration.
|
|
|
|
|
|
|
|
Créons une variable et la contrainte :
|
|
|
|
|
|
|
|
```
|
|
|
|
<variables>
|
|
|
|
<family name="family">
|
|
|
|
<variable name="my_calculated_variable" type="string" description="My calculated variable"/>
|
|
|
|
</family>
|
|
|
|
</variables>
|
|
|
|
<constraints>
|
|
|
|
<fill name="return_value" target="my_calculated_variable">
|
|
|
|
<param type="information">server_name</param>
|
|
|
|
</fill>
|
|
|
|
</constraints>
|
|
|
|
```
|
|
|
|
|
|
|
|
Dans ce cas, l'information de la configuration "server_name" sera utilisé comme valeur de la variable "my_calculated_variable".
|
|
|
|
Si l'information n'existe pas, la paramètre aura la valeur "None".
|