Configuration de calculs de fenêtre
La configuration d'une fenêtre dynamique comporte deux étapes :
- Création d'un calcul qui renvoie une fonction de fenêtre pour un attribut dans Concepteur d'objet
- Conception de la fenêtre d'exécution du calcul à l'aide de Gestionnaire de fenêtre
Les deux procédures ci-dessous montrent comment rendre le champ Impact de la fenêtre Incident obligatoire si le champ Urgence est rempli. Vous utilisez des techniques similaires pour les autres fonctions de fenêtre. Vous trouverez plus loin d'autres exemples de calcul.
Pour créer le calcul :
- Démarrez Concepteur d'objet et ouvrez l'objet correspondant à la fenêtre.
Dans notre exemple, il s'agit de Gestion des incidents\Incident. - Créez un nouvel attribut de chaîne avec la valeur Longueur max. configurée sur -1 pour stocker le calcul.
Nous vous recommandons de faire commencer le nom de vos attributs de calcul par FenêtreDynamique, pour les retrouver plus facilement dans les concepteurs.
- Définissez la valeur Type de calcul du nouvel attribut sur Calcul de fenêtre.
La boîte de dialogue Modifier la formule s'affiche. - Désélectionnez la case à cocher Détection automatique des dépendances.
Vous allez définir vous-même les dépendances. - Créez un calcul qui définit la valeur sur « :SetMandatory(attribut, True) ».
Dans notre exemple, pour rendre obligatoire l'attribut Impact, entrez le calcul suivant :
import System
static def GetAttributeValue(Incident):
Value = ":SetMandatory(_Impact, True);"
return Value
Cet exemple de calcul ne sera sans doute jamais utilisé dans un système actif. Bien qu'il rende le champ Impact obligatoire si le champ Urgence est rempli, il ne gère pas la réinitialisation si le champ Urgence est à nouveau changé ultérieurement. Cet exemple n'est présenté que pour démontrer les procédures de définition de fenêtres dynamiques. Le calcul est décrit en détail plus loin.
Les lignes qui commencent par Value (Valeur) et par return (renvoyer) dans l'exemple ci-dessus porte une seule indentation. Si vous copiez des exemples depuis le présent document, veillez à bien conserver les indentations correctes lorsque vous les copiez dans l'éditeur de calculs.
:SetMandatory utilise uniquement le nom de l'attribut. N'insérez pas le nom de l'objet (par exemple, n'utilisez pas Incident._Impact). N'oubliez pas que, si l'attribut n'est pas un attribut système, il commence par le caractère souligné (par exemple, _Impact).
Vous pouvez mettre à jour plusieurs attributs cibles en les séparant par un point-virgule. Par exemple :
Value = “:SetMandatory(attribute1,True);:SetMandatory(attribute2,False);”
- Faites glisser l'attribut qui provoque l'exécution du calcul depuis l'arborescence Attributs vers le volet Dépendances.
Dans notre exemple, faites glisser Urgence de l'incident. Notez que le nom interne de base de données de l'attribut (_IncidentUrgency) s'affiche dans le volet Dépendances. - Cliquez sur OK.
La boîte de dialogue Modifier la formule se ferme. - Cliquez sur .
Les modifications apportées à l'objet sont enregistrées.
Maintenant que vous avez créé le calcul qui définit le champ comme obligatoire, vous pouvez configurer la fenêtre afin de l'utiliser.
Pour configurer la fenêtre :
- Dans Gestionnaire de fenêtre, ouvrez la fenêtre requise.
Dans notre exemple, il s'agit d'une fenêtre d'incident. - Ajoutez à la fenêtre l'attribut calculé créé ci-dessus.
L'attribut doit être ajouté à la fenêtre, mais vous pouvez le masquer en configurant la propriété ShowOnWindow sur False (Faux). Nous vous recommandons de définir ShowOnWindow sur True (Vrai) pendant la conception et le test du calcul.
- Sélectionnez le contrôle à utiliser pour déclencher le calcul.
Il s'agit de l'attribut que vous avez ajouté au volet Dépendances dans le calcul. Dans notre exemple, il s'agit d'Urgence. - Dans la grille des propriétés du contrôle, définissez Est calculé en cas de changement sur True (Vrai).
- Enregistrez les changements apportés à la fenêtre.
Lorsque l'utilisateur sélectionne une valeur Urgence dans la fenêtre Incident, le calcul se déclenche et la valeur de l'attribut calculé est définie sur :SetMandatory(_Impact, True);. Cette opération rend le champ Impact obligatoire.