Boutons intelligents
Contrôles/éléments XML
Gérer la collection <ManageCollection>
Ce contrôle peut :
-
Extraire un élément spécifique d’une collection (nombre minimum, nombre maximum, dernier élément, premier élément).
-
Calculez le nombre d’éléments d’une collection ou la moyenne de tous les éléments numériques de la collection (count).
-
Filtrez à partir d’une collection pour n’inclure que les éléments uniques.
Configuration
Vous pouvez configurer ManageCollection dans l’éditeur de boutons intelligents à l’aide du générateur XML Manage Collection ou XML.
Configuration à l’aide du générateur XML de boutons Smartpoint
Pour configurer avec le générateur XML de boutons intelligents :
-
Ouvrez l’éditeur de boutons intelligents pour créer un script.
-
Cliquez sur Gérer la collection <ManageCollection> pour afficher l’éditeur de gestion de collection.
-
Configurez les attributs.
Ces exemples de collections d’éléments sont utilisés dans les descriptions suivantes :
-
Collection1
Collecte simple : ABC; 30; 50; 80; 2; ABC; 2; HK90 -
Collection2
Type de collection Valeur**Clé : IBM**49 ; Mats**80 ; Cola**36 ; Trax**390 ; Mats**7 ; Cola**36 -
Collection3
Type de collection Valeur**Clé : 2**Lufthansa ; 1**Autrichien ; 0**Aeroflot ; 5**AmericanAirlines
Attribut
Description
Nom de la variable Champ obligatoire. Entrez le nom de la variable qui stockera le résultat du contrôle.
Type d’action Cliquez sur la flèche pour sélectionner l’action à effectuer sur la collection.
Les exemples suivants s’appliquent aux descriptions d’action :
-
Collection1
Collecte simple : ABC; 30; 50; 80; 2; ABC; 2; HK90 -
Collection2
Type de collection Valeur**Clé : IBM**49 ; Mats**80 ; Cola**36 ; Trax**390 ; Mats**7 ; Cola**36
Types d’actions disponibles :
-
Compter
Renvoie le nombre d’éléments de la collection. Par exemple, Collection1 renvoie un nombre de « 8 ». -
Dernier
Renvoie le dernier élément de la collection. Par exemple, Collection1 renvoie « HK90 ». -
Premier
Renvoie le premier élément de la collection. Par exemple, Collection1 renvoie « ABC ». -
Somme
Renvoie la somme de tous les éléments qui sont des nombres. (Les éléments de texte sont ignorés.) Par exemple, Collection1 renvoie « 164 » (30+50+80+2+2). -
Maximum
Renvoie le nombre le plus élevé de la collection. (Les éléments de texte sont ignorés.) Par exemple, Collection1 renvoie « 80 ». -
Minimum
Renvoie le nombre le plus élevé de la collection. (Les éléments de texte sont ignorés.) Par exemple, Collection1 renvoie « 2 ».
-
Moyenne
Renvoie la moyenne de tous les nombres de la collection. (Les éléments de texte sont ignorés.) Par exemple, Collection1 renvoie « 32,8 » ((30+50+80+2+2) :5). -
Opérer
Si la collection est de type Key**Value, vous pouvez utiliser uniquement Value ou Key uniquement. Par exemple, pour trouver un nombre maximum, mais uniquement dans la partie Valeur des éléments. Par défaut, l’élément complet est pris en compte.Plus d’informations
Cet attribut ne fonctionne pas avec certains ActionTypes, car il n’a pas de sens logique (voir le tableau ci-dessous
Value – operate uniquement sur la valeur de l’élément, par exemple, dans Collection3 ActionType-Maximum +OperateOn- Value renverra 5 (le nombre maximum dans la partie Valeur parmi tous les éléments est 5)
Key- operate only on element Key, par exemple, dans Collection2 ActionType-Sum +OperateOn-Key renverra 598 (49+80+36+390+7+36)
L’attribut « OperateOn » ne fonctionnera que si l’attribut « ActionType » est configuré (voir le tableau ci-dessous quels ActionTypes fonctionnent avec l’attribut OperateOn). Si « ActionType » n’est pas configuré, l’attribut « OperateOn » sera ignoré. ***
L’attribut « OperateOn » ne fonctionnera que pour la collection de clés Value**. Pour la collecte simple, il sera ignoré***
Rendre En cas de collecte de clés Value**, sélectionnez pour revenir à la variable :
-
ValueKey : tous les éléments de l’agent (ValueKey)
-
Valeur : Valeurs uniquement
-
Clés : Touches uniquement
Remarque : @Return ne fonctionne que pour les collections de clés Value**. Pour les collections simples, il est ignoré.
Clé de valeur
Renvoie l’intégralité de l’élément à la variable. Par exemple dans Collection2 :
ActionType-Maximum +OpérationActivé- Touche + Return-ValueKey renvoie Trax**390. La clé la plus élevée (maximale) est 390, elle renvoie donc l’élément entier Trax**390.
Valeur
Renvoie à la variable Value. Par exemple, dans Collection2 :
ActionType-First + Return-Value renvoie IBM. Le premier élément de la collection est IBM**49, de sorte que la partie Valeur de l’élément, IBM, est renvoyée.
Clé
Renvoie à la variable Key. Par exemple, dans Collection3 :
ActionType-Minimum +OperateOn-Value+ Return- Retours de clé Aeroflot. L’élément avec la partie de valeur la plus basse (minimale) est 0**Aeroflot, de sorte que la clé associée est renvoyée : Aeroflot.
FiltreUnique Filtre la collection et renvoie uniquement les éléments uniques. Dans la Collection1 :
-
Les éléments uniques sont : 30 ; 50; 80; 2; ABC; HK90
-
« ABC » et « 2 » s’affichent deux fois dans la collection et sont filtrés.
NoChanges
S’il est installé, aucune filtration ne sera effectuée. Pour obtenir le même résultat, vous pouvez également supprimer l’attribut « FilterUnique » du code.
Élément
Filtrer et renvoyer la collection d’éléments uniques (dans le cas de Value**La collection de clés lira l’ensemble de l’élément Value+Key), par exemple. dans la collection 1, ce serait : 30 ; 50; 80; 2; ABC; HK90 (un « 2 » et un « ABC » ont été filtrés)
Clé
Dans le cas de collections de clés Value**, vous pouvez filtrer de votre collection uniquement les éléments qui ont la même clé, par exemple. Collection originale : 1 ** KELLY ; 2**KELLY ; 2**JEAN ; 3; KATE
Collecte après filtration par clé : 1**KELLY ; 2**JEAN ; 3; KATE (Le deuxième élément 2**KELLY a été filtré car la partie clé est la même que dans le premier élément)
Valeur
dans le cas de Value**Key collections, vous pouvez filtrer de votre collection uniquement les éléments qui ont la même valeur, par exemple. Collection originale : IBM**49 ; Mats**80 ; IBM**54654 ;
Collecte après filtration : IBM**49 ; Mats**80 (le dernier élément IBM**54654 a été filtré car il a la même partie Valeur (IBM) que le premier élément de la collection)
Important à retenir !
Si vous utilisez à la fois @FilterUnique et @ActionType, @FilterUnique s’exécute toujours en premier pour filtrer la collection d’origine. @ActionType s’exécute ensuite sur la collection déjà filtrée. Par exemple:
Collection : POMMES ; POIRES, KIWI ; POMMES
Type d’action :Dernier
+
FilterUnique :Élément
=
Résultat : KIWI
Une fois la première filtration (@FilterUnique) terminée, le dernier élément, POMMES, est filtré comme dupliqué, et la collecte est remplacée par POMMES ; POIRES, KIWI. Ensuite, ActionType filtre le dernier élément, et le dernier élément de la collection filtrée est KIWI.
-
Important!
@ActionType ne peut être utilisé avec « Retour » et « Opérateur » que comme indiqué.
Par exemple, ActionType :Last et Return peuvent être utilisés ensemble, mais ActionType :Count et Return ne peuvent pas être utilisés ensemble (@Return est ignoré).
Configuration avec XML
Si vous souhaitez saisir le code XML directement dans l’éditeur de boutons intelligents, utilisez la structure suivante pour l’élément XML.
<ManageCollection VarName="" ActionType="First" OperateOn="" Return="" FilterUnique="">
Pourboire! Vous pouvez ajouter le code XML directement à l’éditeur en faisant glisser et en déposant le bouton bleu de ce contrôle.
Exemples
Les exemples suivants utilisent l’élément XML ManageCollection dans le script.
Exemple 1
Extrait le nombre le plus bas d’une collection.
La collection est de type Simple et les valeurs sont statiques.
<ManageCollection VarName="LowestElement" ActionType="Minimum"> 213;10;8788;2902;892;ABC7</ManageCollection>
Étant donné que l’option ActionType-Minimum est sélectionnée, le contrôle renvoie le nombre le plus bas (10) et ignore les éléments qui ne sont pas des nombres. Dans cet exemple, l’élément : ABC7 est du texte, et non un chiffre, car il contient à la fois des lettres et des chiffres.
Exemple 2
Demande le nombre de remarques uniques du bloc-notes dans un fichier de réservation.
Le script suivant crée une collection de toutes les remarques du bloc-notes avec le contrôle GetString , puis filtre les éléments uniques (en premier) et le nombre d’éléments dans collection (2) avec le contrôle ManageCollection.
<ButtonConf ButtonName="Notepads" Description="" QuickCommand="">
<RunCommand>*NP</RunCommand>
<GetString VarName="AllNotepads"><![CDATA[\d\. (.*) (?:.{2} \d{2}[A-Z]{3} [0-9]{4}Z)]]></GetString>
<ManageCollection VarName="NumberOfUniqueNotepads" ActionType="Count" FilterUnique="Element">[AllNotepads]</ManageCollection>
<ShowMessage>The number of unique notepads in this PNR is: [NumberOfUniqueNotepads]</ShowMessage>
</ButtonConf>
Dans cet exemple, il y a cinq remarques du bloc-notes, mais deux d’entre elles (4 et 5) ont la même valeur. Par conséquent, la dernière remarque (5) est filtrée et le nombre final d’éléments uniques dans la collection est de quatre.
Exemple 3
Lit le nom du client et le solde du client à partir d’un fichier Excel (type de collection Valeur**Clé) et affiche le nom du client avec le « solde client » le plus bas.
Le fichier Excel :
Le script lit le fichier Excel et sélectionne le client dont le solde client est le plus bas :
<ButtonConf ButtonName="Manage collection" Description="" QuickCommand="">
<ShowMessage>[CustNumAndCustbalance]</ShowMessage>
<ManageCollection VarName="CustomerWithLowestBalance" ActionType="Minimum" OperateOn="Key" Return="Value">[CustNumAndCustbalance]</ManageCollection>
<ShowMessage>[CustomerWithLowestBalance]</ShowMessage>
</ButtonConf>
Tout d’abord, le script lit le fichier Excel avec l’élément XML ReadFromExcel , puis affiche la collection dans une boîte de message avec l’élément XML ShowMessage .
Étant donné qu’il s’agit d’une collection de clés Value**, chaque élément de la collection contient deux parties :
-
Valeur - Nom du client
-
Clé - Solde client.
Ensuite, l’élément ManageCollection détermine l’article sur lequel opérer (@OperateOn). Pour fonctionner uniquement sur le solde client (calculer le solde client minimum), OperateOn="Key » est utilisé. Dans ce contrôle, pour renvoyer le nom du client (valeur) avec le solde le plus bas, au lieu du montant du solde du client, Return="Value » est sélectionné.
Le dernier contrôle est ShowMessage, qui affiche le résultat final : le nom du client avec le solde client le plus bas :